-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
M876 not being force-sent while printing #3699
Comments
FYI: This is a BUG report follow up to my Feature Request as from everything I have found and read thus far indicates this should be working and Marlin is fully up-to-date with no outstanding Issues related to this. |
Here is a detailed sequence of events with screen shots and corresponding log file:
Links to OctoPrint Log file of this test: https://drive.google.com/file/d/1JU-G3zcCujw1v2sovHdxDao0o69EFnno/view?usp=sharing Let me know if you need anything further. P.S. Updated links so anyone can use them...Sorry! |
I think it might be important to enable serial logging, restart octoprint and try the process again. You could of course move the M600 command to a different spot to avoid wasting a bunch of filament. Then share your serial.log, just in case there is something being reported back to octoprint that's not displayed in the terminal tab. BTW, your google drive links are not public. You can actually drag your log files here into a comment to upload. |
Its a small 20mm cube, but probably a waste of serial logging, so I set an M600 at layer 10. serial.log.2020-08-22_13-38-47.log P.S. Thanks for pointing out my goof on the Google Drive docs. I updated those links so they should be public now |
So, just for grins, I tried it with OctoPrint in Safe Mode. Anyway, here's the Serial Log of that non-event. Looks the same as when OctoPrint running in Normal Mode (not Safe Mode). |
The problem is that the printer signals to OctoPrint that it currently won't except commands as it's |
Bummer. Still no joy. I enabled this in Marlin configuration_adv.h, compiled, uploaded and init-ed EEPROM and it still behaved the same:
I will enable the serial logging and capture the results again and post them here. Hopefully it will provide more clues. P.S. Enjoy your break. |
Here's the serial log from the latest test. Still not working as described. Thanks for everyone's help! |
Am I supposed to add M601 and M602 to the Emergency Commands list in the 'Serial Connection Octoprint settings??? |
This is driving me batty. I can't figure out why its not working. In the Action Command Prompt Settings in OctoPrint:
In the dialog boxes created on behalf of the My Printer reports:
OctoPrint Sends: To tell the printer it can handle M876 prompts. The Action Command Prompt Plugin / _answer_prompt should be creating a What am I missing?!?!? |
I think this PR might fix this issue? Looking at the current Marlin 2.0.6 release it appears the change was included, but not sure if that change made it into your specific fork or not. |
I have that fix in my code. Just checked at it was there already:
Plus, I don't have an LCD hooked up, and so can't dismissed the message on it instead of OctoPrint. Thanks anyway! I do appreciate it!! |
Best as I can determine at this point, OctoPrint won't send the But I think it should send the |
OK, so I disabled LCD everything in Marlin (my plan was to put in a hybrid LCD / Graphical Display, but currently have nothing attached anyway). So, I disabled all display types in Marlin thinking that without a display to provide input from the M600 prompts, it might change the behavior over USB to OctoPrint and allow it to send M876 Sx commands in response to its Action Prompts. Short Answer: No. Still broken I captured a Serial Log, but there does not appear to be any differences from before. So, again, I really think OctoPrint is supposed to send M876 Sx commands when the printer is giving a status of Then again, I could be totally wrong and not have a clue what I'm talking about...(highly probable) |
Ok, this is really odd: I disabled the busy protocol in Marlin as Gina said OctoPrint would never send anything back to the printer if it was 'busy'. But I noticed I could send M108 commands to do things like Reheat the nozzle when it prompted me to do so. But I could NOT send any M876 command myself through the Terminal Tab. OctoPrint just ate them. So I added M876 to the Emergency Commands in Serial Connection -> Firmware & Protocol :
Saved, Rebooted, tried again. Still would NOT let me send M876 commands from the Terminal Tab! WTH is going on? FYI: All the M108 commands you see in the serial Log are manually entered by ME. OctoPrint sent Nothing back: |
And....IT WORKS!!! But I not going to tell you what I did! https://docs.octoprint.org/en/master/bundledplugins/action_command_prompt.html States:
Note that above that is states:
So I assumed So, why would that field be defaulted to something that doesn't work? Further, in There is this function:
Which looks like if the There's a bug in there somewhere, I'm just not smart enough to see it... |
P.S. But ONLY if
Does not matter if the Busy protocol is enabled or not in Marlin. Last serial log attached. Summary: |
So this doesn't have the S in the M876 command, is that what made this work or is the S suppose to be there? Based on the if statement above if the S isn't there, then I also find this part of your serial.log interesting.
It looks like it happened during startup and I'm wondering if the command being sent to the printer to tell it the host supports prompts is not correct in action command startup code maybe. |
OUCH! My Bad that should have the 'S' in there. I updated my comment above to include that now. Sorry!
Thanks for finding that! So, yes, I needed to put
What should be sent to the printer is So, yeah, the interesting part is that it appears the code is written such that if just
|
So problem appears to be twofold.
|
Fixed on If you want, you can checkout the |
Thank you!!! I will try it out soon! 👍👍👍 |
This issue has been mentioned on OctoPrint Community Forum. There might be relevant details there: https://community.octoprint.org/t/m600-in-octoprint-how-to/23349/10 |
@ZhuDaHai Think I have same issue as yours before. As you I did this changes :
Do I need also uncomment this fonctions in marlin code ? Think yes but not sure now :
Is there a way to activate host_action_commands with a gcode/without recompile all Marlin code... ? Thanks for your help ! |
Hey all! I'm having problems with M600 and Octoprint, which lead me to this thread. I'm using Marlin 2.0.5.3 and I have HOST_ACTION_COMMANDS and HOST_PROMPT_SUPPORT enabled. I have a BTT TFT70 and sure, I could wire up the EXP1 and EXP2 and use the Marlin mode in the screen, but I'd rather not and it would be cool to get it to work. Regards, |
It might be that you need to wait for the fix to be released in OctoPrint 1.5.0 (starting RC shortly) - I am not sure that it was working properly without the fixed implementation |
I have no problems with waiting, but I thought that if Da Hai was able to get it to work so would I. |
1.5.0rc1 is out, so you could change your release channel to maintenance RCs and then update to the new version and see. |
Yeah, I saw that. I'm going to upgrade and see if it works and hope the rc is stable enough for use. |
So I updated to 1.5.0rc1 and it still will not work. Maybe it has not been implemented yet or there is something that I am missing or have done wrong. |
@chrstrvs What is in the box of the dialog command to send? It should just be Edit: Seems to work against virtual for me. Let me know what you have in the box. |
I changed to M876 S{choice} as that is what worked for Da Hai, but I will change back to just M876 and see if that works. |
Nope, still doesn't work for me after changing Dialog command from M876 S{choice} to just M876. |
@chrstrvs Could you enable |
For the record, cannot reproduce, Will not be able to look into this unless I get a
|
Sure, I can log the serial communication and post it here. Is EMERGENCY_PARSER required to get this to work? I don't think that is supported for STM32 yet, which I have. |
Yes. Without it signaled as available, OctoPrint must not send commands to the printer when it is busy. |
I was wrong, EMERGENCY_PARSER is available for STM32. I will try to upload a log later this week if it still doesn't work. |
Okay, so when M600 i sent I get the option to load new filament and press Continue. This works and the new filament gets loaded, but when I press Purge more the printer resets. |
That sounds to me, like a FW bug. Since OctoPrint is sending the right thing ( |
I totally agree that this is due to the printer firmware. |
This issue has been mentioned on OctoPrint Community Forum. There might be relevant details there: https://community.octoprint.org/t/octopi-disconnect-when-changing-filament/19374/6 |
What were you doing?
A) The main Printing button is depressed
B) The Pause button is disabled
C) the Cancel button is disabled
D) The State is Pausing
E) No controls on the Control Tab are enabled
I am using OctoPrint version 1.4.2
OctoPi version 0.17.0
Marlin 2.0.6 from the MakerBase fork of Marlin, as support for the MKS SGENL V2.0 mainboard is not yet integrated into Marlin's release branch (there is a pull request for it, but its not made it into a release as of 2.0.6 of Marlin)
I have check all closed Issues in Marlin for anything related to M600 support, and even the latest fix #18565 (Broadcast Host Actions) is integrated in my Marlin Release, including all the closed issues.
There are no current open issues in Marlin related to M600 and Host Commands
In Marlin configuration_adv.h, i have enabled these lines to enable Host Actions and Host Prompt Support:
What did you expect to happen?
I expected to behave as the M600 was written:
Basically, as I understand it M600 Host Action Commands and Host Prompt Support was implemented in Marlin for 'Smart' Host controllers, like OctoPrint, as it is stated on the RepRap Wiki found here and referenced in Marlin configuration_adv.h:
https://reprap.org/wiki/G-code#Action_commands
And that these commands allow smart host controllers to handle M600 Filament change commands just like dumb LCD displays, like the RepRap Discount Smart Controller with a text display and push button wheel.
What happened instead?
The Print Paused and the Head Parked and the Filament was unloaded, but none of the prompts appearing in OctoPrint allowed the new filament to be extruded or the print to be resumes (as described multiple times above)
Did the same happen when running OctoPrint in safe mode?
If I try this in Safe Mode, that disables all Plugins, including 'Action Command Notification Support' and 'Action Command Prompt Support', both by Gina Häußge, which is required for this to work. Both of these plugins are up-to-date and active.
Now, if that means I need to submit a bug report for those plugins, then I apologize and will do so.
Version of OctoPrint
OctoPrint version 1.4.2
Operating System running OctoPrint
OctoPi version 0.17.0
Printer model & used firmware incl. version
JGMaker A6 running Marlin 2.0.6 MakerBase fork for the MKS SGENL V2.0 mainboard.
Browser and version of browser, operating system running browser
Chrome v84.0.4147.137
Link to octoprint.log
https://drive.google.com/file/d/1Tk9ueh6iqRkbmMe2Z2F3h78-OGJ9AsBw/view?usp=sharing
Link to contents of terminal tab or serial.log
And the Terminal tab just shows:
Link to contents of Javascript console in the browser
Screenshot(s)/video(s) showing the problem:
I have read the FAQ.
P.S. Updated the Google Drive link so anyone can use it. Sorry!
The text was updated successfully, but these errors were encountered: