Octoprint will not respond to any commands after the M501 is sent

Hi

After using the Klipper firmware for some months, I just went back to Marlin. I have started using an LPC1768-based controller and I therefore use Marlin 2.0.

My problem is, if I send an M501 command via octoprint, I get the expected output, but I can't send any more commands. I can't even activate the hot end or start the cooling fan. I only get the control back if I reset octoprint. I can't just reload the page.

I tested it directly on my computer using pronterface, and the system reacts normally and does not freeze. I have also tried to run octoprint in safe mode without luck.

It seems to be a problem with OctoPrint, but I can't see anything out of the ordinary in either serial.log or octoprint.log. I even turned on debug in octoprint.log, but still nothing abnormal.

I use OctoPi version 0.15.1 on a Raspberry Pi 3B and OctoPrint version 1.3.8

OK.

I just want to correct myself. I can also get the control back by disconnecting and connecting again. I don't need to reset octoprint.

By the way, here's the output from M501:

Send: M501
Recv: echo:V64 stored settings retrieved (591 bytes; crc 37358)
Recv: Unified Bed Leveling System v1.01 inactive.
Recv:
Recv: Unified Bed Leveling initialized.
Recv:
Recv: UBL System reset()
Recv: echo: G21 ; Units in mm (mm)
Recv:
Recv: echo:Filament settings: Disabled
Recv: echo: M200 D1.75
Recv: echo: M200 D0
Recv: echo:Steps per unit:
Recv: echo: M92 X100.00 Y100.00 Z800.00 E407.61
Recv: echo:Maximum feedrates (units/s):
Recv: echo: M203 X300.00 Y300.00 Z20.00 E25.00
Recv: echo:Maximum Acceleration (units/s2):
Recv: echo: M201 X3000.00 Y3000.00 Z100.00 E10000.00
Recv: echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
Recv: echo: M204 P3000.00 R3000.00 T3000.00
Recv: echo:Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> J<junc_dev>
Recv: echo: M205 B20000.00 S0.00 T0.00 J0.02
Recv: echo:Home offset:
Recv: echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:Unified Bed Leveling:
Recv: echo: M420 S0 Z10.00
Recv:
Recv: Unified Bed Leveling System v1.01 inactive.
Recv:
Recv: Active Mesh Slot: -1
Recv: EEPROM can hold 5 meshes.
Recv:
Recv: echo:PID settings:
Recv: echo: M301 P13.90 I0.92 D52.59
Recv: echo:Z-Probe Offset (mm):
Recv: echo: M851 Z-1.56
Recv: echo:Stepper driver current:
Recv: echo: M906 X500 Y500 Z500
Recv: M906 T0 E600
Recv:
Recv: echo:Driver stepping mode:
Recv: echo:ok

Tried updating to 1.3.10?

After I looked at the output from the M501 again, I realized that Octoprint never gets a correct "ok" as a conclusion. The last line is "echo: ok". Thus, octoprint waits for the command to end and does not allow me to continue.

This is a bug in Marlin 2.0 (Marlin forgets to make a line break before sending an ok) and I will report this on Marlin's github page.

1 Like