Octopi ignores commands sent from printer

What is the problem?
So, recently I installed SKR Mini E3 V1.2 with freshly built Marlin 2.0.5.3 in my Ender 3 and problem started. When I hit Pause print or Stop print from printer LCD, it seems like Octopi ignores it and continues printing. But status on printer LCD actually changes to Print Paused and etc. During Stop my extruder goes to XY home and returns back to the model and continues printing one layer higher. During "Pause" nothing happens, except status on LCD screen.

What did you already try to solve it?
I've tried changing USB cables, changing baud rates. Also I enabled in Marlin FW HOST_ACTION_COMMANDS and HOST_PROMPT_SUPPORT. After that everything the same, but now printer during Stop printer drops down nozzle temperature and print fails because of cold extrusion prevention. Sometimes Octoprint throws print paused or print stopped UI, but nothing actually happens.

Logs https://pastebin.com/CDNh2UX2

Additional information about your setup
Ender 3, SKR Mini E3 V1.2, Marlin 2.0.5.3, Raspberry Pi 3 B+, OctoPrint 1.4.0, OctoPi 0.17.0

Your printer is not sending a pause action command, so how should OctoPrint know to pause?

See here on what the firmware should be sending:

https://docs.octoprint.org/en/master/features/action_commands.html

The only things I'm seeing are some notification prompts, which are merely prompts, they don't magically instruct OctoPrint to pause just because they contain the word pause. The firmware needs to be modified to send the correct action commands on a pause and resume triggered by the controller.

But it sends, isn't it? I'm not very familiar with it.

2020-04-16 18:10:09,420 - Recv: echo:busy: processing
2020-04-16 18:10:11,420 - Recv: echo:busy: processing
2020-04-16 18:10:12,044 - Recv: //action:prompt_end
2020-04-16 18:10:12,064 - Recv: //action:prompt_begin UI Pause
2020-04-16 18:10:12,070 - Recv: //action:prompt_button Resume
2020-04-16 18:10:12,074 - Recv: //action:prompt_show
2020-04-16 18:10:12,082 - Recv: //action:notification Print Paused
2020-04-16 18:10:12,088 - Recv: ok
2020-04-16 18:10:12,097 - Send: N786 M105*46
2020-04-16 18:10:12,099 - Recv: ok
2020-04-16 18:10:12,107 - Send: N787 G1 X119.387 Y132.589 E40.28388*86
2020-04-16 18:10:12,109 - Recv: ok T:205.00 /205.00 B:59.90 /60.00 @:57 B@:38

That's only for showing stuff in OctoPrint and allowing the user to interact. There's neither //action:pause nor //action:paused which would tell OctoPrint to actually pause the print.

Those two things there, prompt and notification, are merely for displaying stuff. There's no actions associated with these commands other than "display something to the user" and in the case of the prompt stuff also "and allow the user to click a button". The firmware can send anything in these messages, that doesn't mean OctoPrint (or any host implementing the prompt or notification protocol for that matter) will have to and actually MUST do anything with it other than display it and in the case of the prompt stuff also spawn some buttons which if pressed then generate an M876 S<button number>.

It's as if someone expected you to answer your door because they rang you once on your mobile but didn't use the actual door bell. Two completely different things.

Hey

Have you configured the pause / resume scripts? https://docs.octoprint.org/en/master/features/gcode_scripts.html

I also believe you need the "Advanced park" enabled in Marlin

Here it is! I've enabled "Advanced Park" and now everything works perfectly! Thank you!

Im having the same issue...how do you enable "Advanced Park" in Marlin

1 Like

did you find any solutions, still stuck here?

Enabling ADVANCED_PARK or maybe it is named slightly different in Marlin will get you where you need to be. You would have to change that in the configuration and then rebuild and update it.

Edited: it is ADVANCED_PAUSE_FEATURE:

1 Like

But this pause is not detected in octoprint. Is there a way to get octopi notified about a pause achieved with lcd controls?

^^ In the original post

1 Like