Octopint connects to printer and detects firmware but cannot quite control it

What is the problem?
I have been using Octoprint with a Prusa i3 clone and it has been working like a champ. Recently I got a cheap CR10 clone and setup a new Octopi server on a Raspberry Pi 3B.

Octoprint seems to detect the printer, connect to it, but after that, fails with errors like the following

Recv: Error:No Line Number with checksum, Last Line: 0
Send: N1 M115*39
Recv: echo:SD card ok
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N2 M20*19
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N3 M105*36
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N4 M105*35
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N5 M105*34
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N6 M105*33
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N7 M105*32
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N8 M105*47

What did you already try to solve it?

  • I've tried different baud rates, it fails with all other ones except for the one it auto detects.

  • I've tried swapping USB cable (with the one that was working for the i3 clone), no dice.

  • If I start print from SD Card it prints (kind of, currently clogged itself up because the fan wasn't working, that's a different story).

-I don't think it is an Octoprint bug, could be the USB serial chip has a weirdness because the SD card that came with it has some drivers which I am sure don't work for Linux.

Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, octoprint.log, serial.log or output on terminal tab, ...)

Octoprint version: 1.3.9
OctoPi version: 0.15.1
Printer: A generic Chinese printer called Lymstar E10
Firmware: Marlin 1.1.4

Here is what the connection looks like

Changing monitoring state from "Offline" to "Detecting serial port"
Serial port list: ['/dev/ttyUSB0', '/dev/ttyUSB0']
Trying /dev/ttyUSB0
Connecting to: /dev/ttyUSB0
Changing monitoring state from "Detecting serial port" to "Opening serial port"
Connected to: Serial<id=0x6ca0cb30, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Starting baud rate detection...
Changing monitoring state from "Opening serial port" to "Detecting baudrate"
Trying baudrate: 115200
Send: N0 M110 N0*125
Recv: echo:SD card ok
Recv: start
Changing monitoring state from "Detecting baudrate" to "Operational"
Recv: echo: External Reset
Send: N0 M110 N0*125
Recv: Marlin 1.1.4
Recv: 
Recv: echo: Last Updated: 2017-07-04 12:00 | Author: (none, default config)
Recv: Compiled: Jan  8 2018
Recv: echo: Free Memory: 2153  PlannerBufferBytes: 1264
Recv: Here=0
Recv: echo:EEPROM version mismatch (EEPROM=? Marlin=V05)
Recv: echo:Hardcoded Default Settings Loaded
Recv: echo:  G21    ; Units in mm
Recv: echo:  M149 C ; Units in Celsius
Recv: 
Recv: echo:Filament settings: Disabled
Recv: echo:  M200 D3.00
Recv: echo:  M200 D0
Recv: echo:Steps per unit:
Recv: echo:  M92 X80.00 Y80.00 Z400.00 E402.00
Recv: echo:Maximum feedrates (units/s):
Recv: echo:  M203 X300.00 Y300.00 Z5.00 E25.00
Recv: echo:Maximum Acceleration (units/s2):
Recv: echo:  M201 X3000 Y3000 Z100 E10000
Recv: echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
Recv: echo:  M204 P800.00 R800.00 T1000.00
Recv: echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
Recv: echo:  M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E5.00
Recv: echo:Home offset:
Recv: echo:  M206 X11.20 Y14.20 Z0.00
Recv: echo:Material heatup parameters:
Recv: echo:  M145 S0 H200 B60 F0
Recv:   M145 S1 H240 B80 F0
Recv: echo:PID settings:
Recv: echo:  M301 P20.00 I1.00 D95.00
Recv: echo:LCD Contrast:
Recv: echo:  M250 C32
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N1 M115*39
Recv: echo:SD card ok
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N2 M20*19
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N3 M105*36
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N4 M105*35
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N5 M105*34
Recv: Error:No Line Number with checksum, Last Line: 0
Send: N6 M105*33
Recv: Error:No Line Number with checksum, Last Line: 0

I would like to upgrade to the latest Marlin, only if I could find all the custom settings for the printer. I've asked the vendor and waiting for response.

Any pointers or guidance, much appreciated. Thanks.

You might try editing the serial settings to tell it that it shouldn't expect line numbers and checksums.

Thanks @OutsourcedGuru and sorry for being a noob about this... but which settings are we referring to here?

I could have sworn that it was there under an Advanced link but I'm not seeing it.

Here's the information about the ~/.octoprint/config.yaml configuration file. I'm not seeing what I'm looking for.

You may want to verify that your printer profile settings in your slicer to make sure that it's set to the correct firmware flavor.

1 Like

The slicer has nothing to do at this point, it's the firmware that apparently doesn't properly pass a simple line numbered M105 here.

To disable sending checksums you'll need to disable "automatic firmware detection" first, then you can tell it to never send checksum with a command.

However that will mean that no error correction at all will be possible to take place anymore, which depending on the reliability of your serial connection might get you into trouble.

In any case, this looks once again like some firmware vendor who has no idea what they are doing and broke their firmware in new and exciting way. Way to go.

2 Likes

Thanks @foosel,

That was spot on. I am able to use OctoPrint3D again.

I don't intend to keep this version for very long, once I have the printer stable mechanically, I'll upgrade with latest stock Marlin. That should fix this right?

In the mean time, I'll proceed with extreme caution when I disable the checksum.

OctoPrint is such a natural part of my 3D Printing workflow I find it extremely disorienting swapping SD cards. Just need the new setup to print it's first 3DBenchy :smiley:

Cheers.

1 Like

Yeah... that was confusing me. The bottom part was grayed-out or missing because I didn't first toggle that detection checkbox. <_<