Communications Timeout after several hours of printing.
I have been having timeout issues with a Tevo printer using the MKS-Base 1.5 board. Prints will run for 15 min to an hour or two before timing out with no communications errors in the logs at all, until the timeout issue occurs. I have tested with firmware version 0.92 that shipped with the printer, and 1.0.1, same errors on both.
The printer is connected to a Raspberry Pi 3, running repetier server version 0.86.2, and for testing octoprint for rasberry pi has also been tried with the exact same results.
The printer also has issues printing from SD card, it will get part way though the file and hang up and fail to complete the print.
The confusing part is that the printer will print flawlessly when connected to a windows 10 laptop running Repetier-host and printing over USB.
What has been tried:
All testing in repeteir-server, octoprint, and the windows 10 laptop have been done with the exact same Gcode file. Since it works without error on the windows 10 laptop, i don't think its a code issue with the file. It also errors out at different places each time also leading me to think there is not a problem with the file since that should cause the errors at the exact same completion percentage each time.
3 different USB cables including two with ferite cores. All three cables worked flawlessly with the windows laptop.
Multiple COM port speeds between 250000, 115200, and 9600.
Two different power supplies for the printer, and two different power supplies for the Raspberry. The most recent test was using a quite large ATX power supply, the 12 volt rail driving the printer, and the RaspberryPi connected to the 5 volt rail so that the printer, and rasberry Pi had a common negative to avoid any voltage differences from separate PSU's.
Timeout values have been increased in the printer firmware, but these timeouts are occurring on very short commands, on small parts. Most commands are a fraction of a second to actually complete as you will be able to see form the logs.
Log file showing the errors that I am getting. This is around line 80,000 in the log file, and around layer 100ish in the print so it gets quite far before acting up.
Any suggestions to try would be appreciated, I have been working on this for several weeks now and its driving me nuts.
> 18:48:07.067: ok 38427
< 18:48:07.067: N38433 G1 X99.301 Y104.022 E668.81946
> 18:48:07.146: ok 38428
< 18:48:07.146: N38434 G1 X99.04 Y103.963 E668.82836
> 18:48:07.210: ok 38429
< 18:48:07.210: N38435 G1 X98.612 Y103.834 E668.84323
> 18:48:07.242: ok 38430
< 18:48:07.242: N38436 G1 X98.297 Y103.704 E668.85456
> 18:48:07.302: T:221.49 /220 B:70.41 /70 B@:0 @:70 T0:221.49 /220 @0:70 T1:29.19 /0 @1:0
> 18:48:07.316: ok 38431
< 18:48:07.316: N38437 G1 X98.108 Y103.614 E668.86152
> 18:48:07.333: ok 38432
< 18:48:07.333: N38438 G1 X97.681 Y103.353 E668.87817
> 18:48:07.364: ok 38433
< 18:48:07.364: N38439 G1 X97.463 Y103.192 E668.88718
> 18:48:07.428: ok 38434
< 18:48:07.429: N38440 G1 X97.243 Y103.007 E668.89674
> 18:48:07.508: ok 38435
< 18:48:07.508: N38441 G1 X96.939 Y102.697 E668.91118
> 18:48:07.556: ok 38436
< 18:48:07.556: N38442 G1 X96.631 Y102.302 E668.92784
> 18:48:38.564: Warning: Communication timeout - resetting communication buffer.
> 18:48:38.564: Connection status: Buffered:114, Manual Commands: 1, Job Commands: 5000
> 18:48:38.564: Buffer used:114 Enforced free byte:19 lines stored:6
< 18:48:38.564: N38443 M117 ETA 22:32:54 day 6
< 18:48:38.564: N38444 G1 X96.536 Y102.154 E668.93369
< 18:48:38.564: N38445 G1 X96.463 Y102.017 E668.93885
< 18:48:38.564: N38446 G1 X96.393 Y101.908 E668.94316
< 18:48:38.564: N38447 G1 X96.281 Y101.682 E668.95155
< 18:48:38.564: N38448 G1 X96.165 Y101.401 E668.96166
> 18:49:09.571: Warning: Communication timeout - resetting communication buffer.
> 18:49:09.572: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:49:09.572: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:49:09.572: N38449 M117 ETE 03:44:37
< 18:49:09.572: N38450 G1 X96.042 Y101.008 E668.97536
< 18:49:09.572: N38451 G1 X95.983 Y100.734 E668.98468
< 18:49:09.573: N38452 G1 X95.941 Y100.46 E668.9939
< 18:49:09.573: N38453 G1 X95.922 Y100.257 E669.00068
< 18:49:09.573: N38454 G1 X95.913 Y100.011 E669.00887
> 18:49:40.580: Warning: Communication timeout - resetting communication buffer.
> 18:49:40.581: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:49:40.581: Buffer used:118 Enforced free byte:19 lines stored:6
< 18:49:40.581: N38455 M117 ETA 22:33:53 day 6
< 18:49:40.581: N38456 G1 X95.917 Y99.813 E669.01546
< 18:49:40.582: N38457 G1 X95.96 Y99.372 E669.03019
< 18:49:40.582: N38458 G1 X96.035 Y99.003 E669.04272
< 18:49:40.582: N38459 G1 X96.079 Y98.835 E669.0485
< 18:49:40.582: N38460 G1 X96.177 Y98.549 E669.05855
> 18:50:11.588: Warning: Communication timeout - resetting communication buffer.
> 18:50:11.589: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:50:11.589: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:50:11.589: N38461 M117 ETE 03:44:37
< 18:50:11.589: N38462 G1 X96.259 Y98.359 E669.06543
< 18:50:11.589: N38463 G1 X96.357 Y98.176 E669.07234
< 18:50:11.590: N38464 G1 X96.444 Y98.043 E669.07762
< 18:50:11.590: N38465 G1 X96.594 Y97.867 E669.08531
< 18:50:11.590: N38466 G1 X96.672 Y97.798 E669.08878
> 18:50:42.595: Warning: Communication timeout - resetting communication buffer.
> 18:50:42.595: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:50:42.595: Buffer used:118 Enforced free byte:19 lines stored:6
< 18:50:42.595: N38467 M117 ETA 22:34:52 day 6
< 18:50:42.595: N38468 G1 X96.732 Y97.763 E669.09109
< 18:50:42.596: N38469 G1 X97.039 Y97.682 E669.10165
< 18:50:42.596: N38470 G1 X97.28 Y97.647 E669.10975
< 18:50:42.596: N38471 G1 X97.645 Y97.625 E669.12191
< 18:50:42.596: N38472 G1 X97.976 Y97.651 E669.13295
> 18:51:13.605: Warning: Communication timeout - resetting communication buffer.
> 18:51:13.605: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:51:13.605: Buffer used:124 Enforced free byte:19 lines stored:6
< 18:51:13.606: N38473 M117 ETE 03:44:36
< 18:51:13.606: N38474 G1 X98.066 Y97.677 E669.13607
< 18:51:13.606: N38475 G1 X98.341 Y97.733 E669.1454
< 18:51:13.607: N38476 G1 X99.077 Y98.021 E669.17169
< 18:51:13.607: N38477 G1 X99.395 Y97.894 E669.18308
< 18:51:13.607: N38478 G0 F7200 X97.338 Y97.823
> 18:51:44.613: Warning: Communication timeout - resetting communication buffer.
> 18:51:44.613: Connection status: Buffered:118, Manual Commands: 1, Job Commands: 5000
> 18:51:44.613: Buffer used:118 Enforced free byte:23 lines stored:6
< 18:51:44.613: N38479 M117 ETA 22:35:52 day 6
< 18:51:44.613: N38480 G1 F300 X96.242 Y98.919 E669.23463
< 18:51:44.614: N38481 G1 X96.172 Y98.989
< 18:51:44.614: N38482 G0 F7200 X96.117 Y99.609
< 18:51:44.614: N38483 G1 F300 X97.902 Y97.824 E669.31859
< 18:51:44.615: N38484 G1 X97.972 Y97.754
> 18:52:15.621: Warning: Communication timeout - resetting communication buffer.
> 18:52:15.621: Connection status: Buffered:124, Manual Commands: 1, Job Commands: 5000
> 18:52:15.622: Buffer used:124 Enforced free byte:19 lines stored:6
You still should have a look at /var/log/syslog if there are any hints on the usb serial connection doing weird things.
It looks like linux still thinks printer is connected, but does not get any response from the printer side. My guess is that in communication somethings goes wrong that does not happen with windows. You could try if a usb hub in between makes any difference, but otherwise I have no more ideas if the log does not show more.
I assume firmware it self is still working and heating as supposed.
You could try printing in dry run mode so voltage stays more constant. Or even in communication only mode so no hardware is used at all:
activates that. Do not wonder how fast it prints. As I said it is communication test only.
What I think is that a windows pc better stabilizes usb voltage then the pi does and that could make the difference. In that case communication only should be stable on pi as well.