-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[BUG] printer does not send busy: processing
after Tx
gcode is issued with MMU2S.
#3411
Comments
There is no issue with the Tx command. Octoprint is the one that is not handling it correctly by not waiting for "ok" before continuing to the next command.
The "wait for target temperature for hotend/bed" commands never had "echo:busy: processing" in them. This is because the printer does in fact respond by reporting the temperatures. This is correct and has been like this for at least 4 years.
|
@leptun you are correct. thank you for your time on this. Im closing this issue. |
Copying this from the other thread...
To add on to that, if the latter behaviour so far has not caused issues with Prusa FW, and now is in the latest version, and also correlates with a wrong implementation of the busy protocol in the FW, then this doesn't sound like an OctoPrint issue and maybe |
@foosel I've checked a much older Prusa-Firmware version and it never sent busy messages while waiting for a heater, just the periodic unprompted temperature reports. I pointed at octoprint because there wasn't any change in the past year to Tx and the heating commands. And to be perfectly honest, when I saw octoprint not wait for "ok" on Tx I thought it was a bug recently introduced because that was the first time I saw it and assumed it wasn't something on our side (and also wrongly assumed that the single material MMU2 gcodes worked with octoprint in the first place). I'm sorry I blamed octoprint so quickly. |
@leptun about this bug being undetected, this was exacly also my thought process. Obviously no problems when using multi MMU2 profile. Still, enabling the line number and checksum for unknown commands fixes the issue. |
Apology accepted. It's sadly all too common that OctoPrint gets blamed when it does everything according to spec (well, the closest to a spec that we have in this space) and the problem actually lies with a misinterpretation of the protocol on side of the FW in question. The way I see it, we are probably looking at a corner case here then that is caused in single extruder MMU usage and I'm equally surprised it only now popped up. As I said, OctoPrint's behaviour re If I may suggest to stick more closely to established standards for future new commands instead of going outside of the GCODE value range, and in general to sync up from time to time with the spec and also mainline Marlin, that would reduce the likelihood of such situations from cropping up again. I'm also happy to get looped into vendor-additions to the protocol so I can react to and possibly advise against them before they cause issues after a roll-out with things like OctoPrint or other hosts. Mainline Marlin has taken to dropping a mention at the host dev team on every protocol extension or modification, and it has done wonders for cooperation and interoperability 😉 |
@foosel The capabilities approach should work great for features like the extended T commands. Adding busy handling to the heater commands should be straightforward, but it will take a while before it will reach the public as right now almost all the work I'm doing goes into release 3.12 (3.11 isn't even released yet, but it will be very soon). |
Sub codes (
Here's the GCODE regex that determines whether something is recognized as a GCODE command or not: |
@foosel I was thinking of sending About the D codes, @DRracer suggested that a Dcodes capability line is added as well. Would you implement also that or not? |
@foosel Oh, and before I forget, can the Prusa-Firmware detection be added as well? I'm asking this because the older firmware versions will have issues with the |
Please understand that I will not add individual support for printer manufacturer specific firmware forks to OctoPrint core. I'll do my best to do autodetection to work around any issues with general configuration settings (as here, by detecting Prusa Firmware and then setting the aforementioned flags for the user and for the connection session, which will cover everything you so far mentioned here, so no need on my part to parse additional capability lines, however, they are certainly welcome), but I won't start the endless circle of adding more and more vendor specific exceptions, processing steps, parsing or anything like that, and slowing down maintenance, debugging and processing time for everyone for the sake of a select few. That's what almost killed browsers in the late 90s and early 00s and it simply doesn't scale with regards to development. Try to keep things in line to the spec please. If push comes to shove, there's always the option of a community maintained compatibility plugin but in general your goal should be to run with the spec and not break out of it left and right and demand hosts to adapt, as you surely can understand. It simply doesn't scale. |
That already has been added and will be in 1.8.0, sorry if that was unclear before. See OctoPrint/OctoPrint#4423 |
Didn't see that OctoPrint/OctoPrint#4423 was already implemented. That is great. |
I'm not sure what else you expect OctoPrint to do based on this capability line however. It will in general just happily forward any commands to the printer that is in printed files or entered manually, and also do the needful regarding line numbers and checksums and such if it's GCODE commands we are talking about. It's not like OctoPrint limits the subset of commands that may be sent through it, or anything like this. |
This issue has been flagged as stale because it has been open for 60 days with no activity. The issue will be closed in 7 days unless someone removes the "stale" label or adds a comment. |
This issue has been closed due to lack of recent activity. |
Printer type - MK3S+
Printer firmware version - 3.10.1
MMU upgrade - MMU2S
MMU upgrade firmware version - 1.0.6
SD card or USB/Octoprint
Octoprint
Describe the bug
Printer stops sending
busy: processing
status afterTx
and user input gcode. Effect: timeout in octoprint and M112 issued to the printer. This is the 3rd thread im describing this error, both in prusa github and in octoprint repo, as end user and end reciver of this weird behavior i dont have any energy to fight your both teams so you guys fight it out on yourself.Related urls:
#3180
OctoPrint/OctoPrint#4422
To Reproduce
octoprint serial log of the behavior here: serial.log
Expected behavior
busy: processing
issued while heating extruder and bed.G-code
10.cm.bag.clip_0.2mm_PETG_MK3SMMU2S_1h16m.zip
The text was updated successfully, but these errors were encountered: