Filament change (or runout) cause 112 command from octoprint

What is the problem?

After update marlin and octoprint Filament runout (m600) causes timeout in octoprint.
When change filament print fail for M112 command.

Before in terminal I had Recv: echo:busy: paused for user

and everything worked

Now I don't have the message anymore
What did you already try to solve it?

Reinstall Marlin with host action command enabled. No success
Reboot Rpi. No success.
Reinstall Octoprint at latest version. Not success

Logs (octoprint.log, serial.log or output on terminal tab at a minimum, browser error console if UI issue ... no logs, no support!)

TERMINAL TAB

When the filament run outs or M600 command

[...]
Recv: ok
Send: N129 M117 ETL 08h46m37s*11
Recv: //action:notification 0.22p  complete
Recv: ok
Send: N130 M117 ETA 22 13 31 Day 29*33
[...]
Send: N131 M117 Good accuracy*25
[...]
Send: N132 M117 0.22p  complete*99
[...]
Send: N133 M117 ETL 08h46m37s*0
[...]
Send: N134 M117 ETA 22 14 11 Day 29*32

// From here the head was in parking position waiting for filament change (before,when the runout senser worked correctly i had a message in octoprint which requeest user action but now i dont have anymore)

[...]
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
[...]
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
[...]
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
[...]
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.

//At this point the filament is reloaded


[...]
Recv: ok
Send: N154 M117 Good accuracy*26
[...]
Send: N155 M117 0.22p  complete*98
[...]
Send: N156 M117 ETL 08h46m37s*3
[...]
Send: N157 M117 ETA 22 14 51 Day 29*33
[...]
Send: N158 M117 Good accuracy*22
[...]
Send: N159 M117 0.22p  complete*110
[...]
Send: N160 M117 ETL 08h46m37s*6
Recv: Error:checksum mismatch, Last Line: 100
Recv: Resend: 101
Printer requested line 101 but no sufficient history is available, can't resend
Changing monitoring state from "Printing" to "Error: Printer requested line 101 but no sufficient history is available, can't resend"
Send: M112
Send: N161 M112*39
Send: N162 M104 T0 S0*36
Send: N163 M140 S0*97
Changing monitoring state from "Error: Printer requested line 101 but no sufficient history is available, can't resend" to "Offline (Error: Printer requested line 101 but no sufficient history is available, can't resend)"
Connection closed, closing down monitor
Closing down send loop

octoprint.log (65.6 KB)

SERIAL LOG
serial(1).log (99.1 KB)

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible)

Octoprint Latest Version,Octopi Latest Version, Ender 3 With SKR motherboard, Marlin 2.0.5.3 , Mac Os, Windows 10, Tried with different browser.

The issues happen also with M600 command from LCD printer(change filament)
In the log i triggered 2 times the runout. First time i mantained runout triggered (no filament load) end octoprint not send M112 but (correctly) try to change filament another time)

The second time i simulate the sensor loaded and at the moment of resume printing Octoprint Send M112.
If i try to command M600 when not in printing M112 not appears

no advice for this? someone have this feature working?

Hello @ciapamusche!

For it Happens in marlin, it should be a case for a marlin forum. However.
Something wired happened within the firmware of the printer:

2020-04-29 13:34:23,683 - Recv: Error:checksum mismatch, Last Line: 100
2020-04-29 13:34:23,685 - Recv: Resend: 101
2020-04-29 13:34:23,687 - Printer requested line 101 but no sufficient history is available, can't resend
2020-04-29 13:34:23,689 - Changing monitoring state from "Printing" to "Error: Printer requested line 101 but no sufficient history is available, can't resend"
2020-04-29 13:34:23,712 - Send: M112

It requests a resend of a line that was sent 6 minutes ago.

The whole mess starts at 13:26.29,191 when the filament runout was indicated. The printer did not send the correct message to OctoPrint to pause.

It should look like this:

Recv: echo:busy: paused for user

It also appears that the printer itself does not react to it's own filament runout sensor:

2020-04-29 13:26:29,191 - Recv: //action:prompt_end
2020-04-29 13:26:29,196 - Recv: //action:prompt_begin FilamentRunout T0
2020-04-29 13:26:29,201 - Recv: //action:prompt_show
2020-04-29 13:26:29,211 - Recv: //action:paused filament_runout 0
2020-04-29 13:26:31,058 - Recv:  T:225.21 /225.00 B:60.00 /60.00 @:50 B@:33
2020-04-29 13:26:33,058 - Recv:  T:225.62 /225.00 B:60.05 /60.00 @:5 B@:0
2020-04-29 13:26:33,517 - Recv: echo:busy: processing
2020-04-29 13:26:35,058 - Recv:  T:225.62 /225.00 B:60.00 /60.00 @:52 B@:33
2020-04-29 13:26:37,058 - Recv:  T:225.62 /225.00 B:60.00 /60.00 @:93 B@:30
2020-04-29 13:26:38,518 - Recv: echo:busy: processing
2020-04-29 13:26:38,915 - Recv: ok

You may have a look here: https://marlinfw.org/docs/configuration/configuration.html#host-keepalive

Yes.marlin change something in his last firmware. i tried to downgrade.

The walkaround is downgrade to Marlin 2.0. With the same configuration file (same settings) the M600 Command works correctly.

The printer react at his function. Nozzle come back in position after filament change but Octoprint send a M112 while the nozzle resume the printing action.

If i mantain disconnected octoprint everything works
If i change the filament when not in printing status everything works

So. with new marlin 2.5.0 Octoprint doesn't work for this function.