Communication Issues causing printer to set high temperatures
I awoke this morning to find a failed print, I couldnt figure out why until I looked at the logs...
My print should have been printing at 215c on the hotend and 55c on the bed, but looking at this section of the log:
My print should have been printing at 215c on the hotend and 55c on the bed, but looking at this section of the log:
Recv: 6:03:57.276: T:215.57 /215.00 B549 /5500 @41 B@:22
Recv: 6:03:58.281: T:15.36 /215.00 B:54.99 55.00 @44 B@:22
Recv: 6:03:59.280: T:215.62 /215.00 B:55.03 /5500 @:41 B@:17
Recv: 6:04:00.280: :215.57 /215.00 B:55.03 /55.00 @:41 B@17
Mesg: 6:04:01.110: Warning: Communication timeout - resetting communication buffer.
Mesg: 6:04:01.110: Connection status: Buffered:82, Manual Commands: 2, Job Commands: 5000
Mesg: 6:04:01.110: Buffer used:82 Enforced free byte:22 lines stored:2
Send: 6:04:01.111: N6237 M104 S285 T0
Send: 6:04:01.111: N6238 M140 S110
Send: 6:04:01.111: N6239 G1 X73.256 Y112.854 E2349.35695
Recv: 6:04:01.124: Error:Line Number is not Last Line Number+1, Last Line: 6236
Recv: 6:04:01.126: Resend: 6237
Recv: 6:04:01.127: Ignore due to resend: ok
Recv: 6:04:01.131: Ignore due to resend: echo:Unknown command: "~"
Recv: 6:04:01.132: Ignore due to resend: ok
Send: 6:04:01.213: Resend: N6237 M104 S285 T0
Recv: 6:04:01.215: ok
Send: 6:04:01.215: Resend: N6239 G1 X73.256 Y112.854 E2349.35695
Recv: 6:04:01.228: Error:Line Number is not Last Line Number+1, Last Line: 6237
Recv: 6:04:01.231: Resend: 6238
Recv: 6:04:01.231: Ignore due to resend: ok
Recv: 6:04:01.280: Ignore due to resend: T:215.52 /285.00 B:55.00 /55.00 @:42 B@:21
Send: 6:04:01.321: Resend: N6238 M140 S110
I can see its setting the hotend to its max temp (285c) and the bed to its max (110c)
I've scoured the Gcode and its definitely not setting the temps in there which leads me to believe that a communication error caused this. This is worrying because it means theres no sort of checking done on the commands that are sent.
It could be a grounding issue on the printer causing the comms to drop out, but I thought repetier would have some sort of error checking in there. I'm on 1.0.4 at the moment and im concerned about continuing to use it.
Send: 6:04:01.321: Resend: N6238 M140 S110
I can see its setting the hotend to its max temp (285c) and the bed to its max (110c)
I've scoured the Gcode and its definitely not setting the temps in there which leads me to believe that a communication error caused this. This is worrying because it means theres no sort of checking done on the commands that are sent.
It could be a grounding issue on the printer causing the comms to drop out, but I thought repetier would have some sort of error checking in there. I'm on 1.0.4 at the moment and im concerned about continuing to use it.
Comments
Send: 6:04:01.111: N6237 M104 S285 T0
Same with bed
Send: 6:04:01.321: Resend: N6238 M140 S110
That is what has set the temperature. All send commands end with checksum so printer can verify there are no com errors.
From the small part of log it is unclear where it came from. Can be in gcode you send or you selected it in manual controls. But from the fast sequence it does not look like manual action.
Temp offsets are set to 0 already. I've updated to the latest version of repetier server now. I wonder if intererence on the USB could have caused this?
Ive made sure everything is grounded now, but it does point to it being a server error:
Send: 6:04:01.213: Resend: N6237 M104 S285 T0
Why would it ever send that when theres no instruction to do so in the gcode?
There is one thing you should know - when you send a temperature too high or printer sets it on it's own server would reduce it to max. temperature. If this happens frequently you should enable logging so it is easier to see what happens at that point. In your log most of the communication especially the crucial part how that happened is missing, so all is just speculation.
I have enabled logging and this is the output
Send:1:47:42.567: N14760 M104 S285 T0
I dont understand why the server would be doing that all of a sudden.
Recv:1:47:36.475: T:215.26 /21500 B:65.97 /110.00 @:37 B@127
Printer reported a temperature 21500°C so it took that value. Now when the knob in webbrowser gets that it sees it is > max temp. and reduces it to set max. temperature which seems to be 285°C.
As this does not make sense I will modify server temperature handling and prevent assuming temperatures > max temperature when reported from firmware. Should at least fix obvious errors that are impossible. Here from missing dot.
I kinda feel like there should be some validation of the commands. As I understand it, the server reads the gcode line by line, and sends it and looks for an ok.
But I guess this is the stuff that needs to be done on firmware on the printer. To validate the communication it was sent was valid.
I solved this by basically wrapping the screen and USB cable in non conductive material, problem gone. (For reference the printer is an ender 5 with SKR Mini).
I appreciate the update though for limiting the temperature, it certainly has saved messy cleanups on the hotend. I think ill raise a bug report on the marlin github.
But it is from com errors and better shielding is often a solution here.