3D printer freeze with some commands using checksum

What is the problem?

Hello,

my printer freeze receiving commands with the checksum at the end. For Example:

Send: N129906 M105*18

Recv: ok T:184.0 /190.0 B:60.8 /60.0 F:100 R:100 @:0 B@:0

Send: N129907 G92 E0*115

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.

Send: N129908 M105*28

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.

Send: N129909 M105*29

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.

Send: N129910 M105*21

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.

Send: N129911 M105*20

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.

Send: N129912 M105*23

No response from printer after 6 consecutive communication timeouts, considering it dead. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.

Changing monitoring state from "Printing" to "Offline after error"

Connection closed, closing down monitor

There is any way to disable the checksum? Thanks a lot

What did you already try to solve it?

Sending the commands in terminal not appending the checksum everything works

Have you tried running in safe mode?

Yes

Did running in safe mode solve the problem?

No

Systeminfo Bundle

You can download this in OctoPrint's System Information dialog ... no bundle, no support!)
octoprint-systeminfo-20211124201040.zip (211.2 KB)

Additional information about your setup

OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible

OctoPrint Version 1.7.2
Geeetech A30 Pro
Firmware Smartto
V1.02.04

logs? Systeminfo bundle? Safe mode?
You chose to delete those parts of the template which is fine but you forgot to append the required info by yourself.

Sorry! Just fixed my post :slight_smile:

1 Like

There are plenty of errors thrown by the telegram plugin. Do you use that?
I just noticed that at least 3 of the Communication timeout events are immediately followed by telegram plugin errors.


2021-11-24 00:43:32,539 - werkzeug - INFO - 127.0.0.1 - - [24/Nov/2021 00:43:32] "e[37mGET /?action=snapshot HTTP/1.1e[0m" 200 -
2021-11-24 00:43:43,133 - werkzeug - INFO - 127.0.0.1 - - [24/Nov/2021 00:43:43] "e[37mGET /?action=snapshot HTTP/1.1e[0m" 200 -
2021-11-24 00:43:48,247 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2021-11-24 00:43:50,254 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2021-11-24 00:43:52,257 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2021-11-24 00:43:53,443 - werkzeug - INFO - 127.0.0.1 - - [24/Nov/2021 00:43:53] "e[37mGET /?action=snapshot HTTP/1.1e[0m" 200 -
2021-11-24 00:43:54,262 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2021-11-24 00:43:56,269 - octoprint.util.comm - INFO - Communication timeout while printing, trying to trigger response from printer.
2021-11-24 00:43:58,275 - octoprint.util.comm - INFO - No response from printer after 6 consecutive communication timeouts, considering it dead.
2021-11-24 00:43:58,318 - octoprint.util.comm - INFO - Changing monitoring state from "Printing" to "Offline after error"
2021-11-24 00:43:58,438 - octoprint.plugins.telegram - ERROR - Caught an exception in loop chatId for key: 141364274 => 'Error'
Traceback (most recent call last):
  File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_telegram/__init__.py", line 1640, in send_msg
    self.chats[key]["notifications"][kwargs["event"]]
KeyError: 'Error'

So this is one thing to try, temporarily disable that plugin.

Then, as this is about serial connection issues, enabling the Serial.log and, with that enabled, repro the error situation and then upload a new Systeminfo bundle may help.

Other things to try:

  • use a different USB cable
  • get an high quality usb data cable (shielded)
  • keep the cable away from sources of electro-magnetic interference or HF-fields, eg air con, fluorescend light bulbs, steppers, LCD display
  • tape the 5V contact of the USB plug
  • check your raspi for undervoltage issues

I doubt it is the checksums that are causing the issue - your printer is up to 130k lines before it reaches an error and the checksums will have been sent with all of them.

Thank you for your help. I tried to:

  • Disable Telegram plugin
  • use a different USB cable
  • get an high quality usb data cable (shielded)
  • keep the cable away from sources of electro-magnetic interference or HF-fields, eg air con, fluorescend light bulbs, steppers, LCD display
  • check your raspi for undervoltage issues

Tomorrow I will try to: * tape the 5V contact of the USB plug

It's strange I know but using the terminal I sent the command G92 E0*115 printer froze instantly:

Send: G92 E0*115
Communication timeout while idle, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.

Sending G92 E0 the printer reply with "ok":

Send: G92 E0
Recv: ok

I would like to disable the checksum just for test but seems impossible :frowning:

What you've sent there is, in a way, an invalid command/communication error. Checksums usually go along with the line number, and are generated for the whole line.

The line G92 E0 needs a checksum of 25, not 115. 115 is the checksum of N129907 G92 E0.

You usually need line numbers to make checksums useful, so that when there is a communication error the printer can request a resend and communication does not collapse.

However, your experiment and the original issue suggests to me that your printer firmware can't handle a checksum mismatch properly. What firmware is it, where's it from and when did you flash it? An update might be needed that fixes the bugs.

Line numbers and checksums can be disabled, but I'm not sure if it's in the serial settings. I think my theory above is more likely right. In the config.yaml file it would be:

serial:
  neverSendChecksum: true

Though that's not in the docs or the UI. Hidden away!

1 Like

It' at the end of the first post, smartto on geetech A30

1 Like

It is in the UI, but you have to disable firmware detection :slight_smile:

1 Like