Connection problem after upgrading 0.80.0

I have two equal printers with Rumba motherboard + Marlin firmware. 

I have been printing  two printers with version 0.75.1 for a long time without any problems. After upgrading to 0.80.0 I got problems.

Symptom: Connection to printers just cut without any warning.
I have reinstalled the software but didn't help. I have log files of both printers if you need. There are errors like;

> 17:00:34.347: Warning: Communication timeout - resetting communication buffer.
> 17:00:34.347: Connection status: Buffered:44, Manual Commands: 2, Job Commands: 5000
> 17:00:34.347: Buffer used:44 Enforced free byte:21 lines stored:3

17:01:10.936: Error:No Checksum with line number, Last Line: 110

I remember similar problems in earlier version and you managed to solve the problem. Now the problem is back.

After downgrading back to 0.75.1 the problem disappear.
 

Comments

  • I need a longer log to see what is happening. Only to show the result is not enough. We are planning a new version for tomorrow, so that error gets tight:-)
  • I'm just trying to print from the UI for the first time since upgrading to .80.  I've been printing from SD card because I've been trying to track down other problems.  After I started the print while the bed and hotend were heating, I saw similar errors in the console and when I turned on the Commands switch, I was surprised to see it was already attempting to send print commands to the printer.  The end result was that after the hot end was heated, it started printing in completely the wrong place.  The nozzle was several mm above the bed and it just started spitting out filament all over the place.

    Here's some of my log with the Commands switch turned on.  At this point the bed was still getting up to temp.

    22:58:13.701: T:33.1 /0.0 B:122.2 /130.0 @:0 B@:127 W:?
    22:58:15.699: T:33.1 /0.0 B:122.4 /130.0 @:0 B@:127 W:? (2)
    22:58:16.754: Warning: Communication timeout - resetting communication buffer.
    22:58:16.755: Connection status: Buffered:67, Manual Commands: 1, Job Commands: 5000
    22:58:16.755: Buffer used:67 Enforced free byte:49 lines stored:3
    22:58:20.765: Warning: Communication timeout - resetting communication buffer.
    22:58:20.766: Connection status: Buffered:77, Manual Commands: 2, Job Commands: 5000
    22:58:20.766: Buffer used:77 Enforced free byte:39 lines stored:3
    22:58:20.766: M117 ETA 23:47:38 day 3
    22:58:20.767: N1165 M105
    22:58:20.767: N1166 M105
    22:58:20.767: N1167 G1 X170.087 Y78.204 E11.20943
    22:58:24.771: Warning: Communication timeout - resetting communication buffer.
    22:58:24.772: Connection status: Buffered:91, Manual Commands: 1, Job Commands: 5000
    22:58:24.772: Buffer used:91 Enforced free byte:39 lines stored:4
    22:58:24.773: N1168 M105
    22:58:24.774: N1169 M105
    22:58:24.774: N1170 G1 X172.351 Y79.505 E11.41018
    22:58:28.782: Warning: Communication timeout - resetting communication buffer.
    22:58:28.782: Connection status: Buffered:67, Manual Commands: 2, Job Commands: 5000
    22:58:28.783: Buffer used:67 Enforced free byte:39 lines stored:3
    22:58:28.783: M117 ETE 00:49:21
    22:58:28.783: N1171 M105
    22:58:28.783: N1172 M105
    22:58:28.783: N1173 G1 X174.119 Y81.426 E11.61092
    22:58:32.792: Warning: Communication timeout - resetting communication buffer.
    22:58:32.792: Connection status: Buffered:85, Manual Commands: 1, Job Commands: 5000
    22:58:32.792: Buffer used:85 Enforced free byte:39 lines stored:4
    22:58:32.792: N1174 M105
    22:58:32.793: N1175 M105
    22:58:32.794: N1176 G1 X175.226 Y83.791 E11.81167
    22:58:36.803: Warning: Communication timeout - resetting communication buffer.
    22:58:36.804: Connection status: Buffered:67, Manual Commands: 1, Job Commands: 5000
    22:58:36.804: Buffer used:67 Enforced free byte:39 lines stored:3
    22:58:36.806: N1177 M105
    22:58:36.806: N1178 M105
    22:58:36.807: N1179 G1 X175.571 Y86.200 E11.99878
    22:58:40.810: Warning: Communication timeout - resetting communication buffer.
    22:58:40.810: Connection status: Buffered:67, Manual Commands: 2, Job Commands: 5000
    22:58:40.811: Buffer used:67 Enforced free byte:41 lines stored:3
    22:58:40.811: M117 Layer 1/48
    22:58:40.812: N1180 M105
    22:58:40.812: N1181 M105
    22:58:40.812: N1182 G1 X175.571 Y104.700 E13.42117
    22:58:44.818: Warning: Communication timeout - resetting communication buffer.
    22:58:44.818: Connection status: Buffered:85, Manual Commands: 1, Job Commands: 5000
    22:58:44.819: Buffer used:85 Enforced free byte:41 lines stored:4
    22:58:44.819: N1183 M105
    22:58:44.820: N1184 M105
    22:58:44.820: N1185 G1 X175.174 Y107.280 E13.62192
    22:58:48.830: Warning: Communication timeout - resetting communication buffer.
    22:58:48.830: Connection status: Buffered:69, Manual Commands: 2, Job Commands: 5000
    22:58:48.830: Buffer used:69 Enforced free byte:40 lines stored:3
    22:58:48.831: M117 ETA 23:48:08 day 3
    22:58:48.831: N1186 M105
    22:58:48.832: N1187 M105
    22:58:48.832: N1188 G1 X174.018 Y109.622 E13.82266

  • What firmware are you using?
    Was ACK enabled as I do not see any responses from firmware in the log except the 2 temperatures in a strange format (no ok but with W: at end)
    Can you show also part before where it was working so we see when it happens. Best is to enable logging in context menu and then take parts from that log as it contains really all data.


    You could try next release development version for pi
    where we fixed a nasty bug when sending jobs but this looks a bit different.
  • This is using a pcDuino2 board and the armel version of RS.  The firmware is Marlin 1.1.0 RCBugFix branch.  I only had the  "Commands" switch on, not "Ack".

    Here's the beginning of the log from the last attempt:

    < 23:27:32.431: N1622 ; generated by Slic3r 1.2.9 on 2016-11-03 at 21:03:29
    < 23:27:32.432: N1623 M107
    < 23:27:32.432: N1624 M190 S130 ; set bed temperature
    < 23:27:32.433: N1625 M104 S245 ; set temperature
    < 23:27:32.433: N1626 M109 S245 ; wait for temperature to be reached
    > 23:27:32.444: echo:Unknown command: "   "
    > 23:27:32.444: ok
    > 23:27:32.445: ok
    < 23:27:32.445: N1627 G21 ; set units to millimeters
    < 23:27:32.445: N1628 G90 ; use absolute coordinates
    < 23:27:32.445: N1629 M82 ; use absolute distances for extrusion
    > 23:27:32.448: ok
    > 23:27:32.449: ok
    < 23:27:32.449: N1630 G92 E0
    < 23:27:32.449: N1631 G10 ; retract
    > 23:27:32.460:  T:37.2 /245.0 B:130.1 /130.0 @:0 B@:108 W:?
    > 23:27:33.459:  T:37.2 /245.0 B:130.0 /130.0 @:127 B@:112 W:?
    > 23:27:34.459:  T:37.4 /245.0 B:130.0 /130.0 @:127 B@:111 W:?
    > 23:27:35.458:  T:38.3 /245.0 B:130.0 /130.0 @:127 B@:109 W:?
    > 23:27:36.455: Warning: Communication timeout - resetting communication buffer.
    > 23:27:36.456: Connection status: Buffered:88, Manual Commands: 1, Job Commands: 5000
    > 23:27:36.456: Buffer used:88 Enforced free byte:17 lines stored:6
    < 23:27:36.456: N1632 M105
    < 23:27:36.457: N1633 M105
    > 23:27:36.458:  T:39.9 /245.0 B:130.1 /130.0 @:127 B@:103 W:?
    < 23:27:36.459: N1634 G92 E0
    < 23:27:36.459: N1635 G1 Z0.320 F7800.000
    > 23:27:37.457:  T:41.7 /245.0 B:130.1 /130.0 @:127 B@:100 W:?
    > 23:27:38.456:  T:44.0 /245.0 B:130.1 /130.0 @:127 B@:99 W:?
    > 23:27:39.456:  T:46.8 /245.0 B:130.1 /130.0 @:127 B@:93 W:?
    > 23:27:40.455:  T:50.1 /245.0 B:130.1 /130.0 @:127 B@:98 W:?
    > 23:27:40.466: Warning: Communication timeout - resetting communication buffer.
    > 23:27:40.467: Connection status: Buffered:74, Manual Commands: 2, Job Commands: 5000
    > 23:27:40.467: Buffer used:74 Enforced free byte:38 lines stored:4
    < 23:27:40.468: M117 ETA 00:16:59 day 4
    < 23:27:40.468: N1636 M105
    < 23:27:40.469: N1637 M105
    < 23:27:40.469: N1638 G1 X25.214 Y82.117 F7800.000
    > 23:27:41.459:  T:53.1 /245.0 B:130.1 /130.0 @:127 B@:108 W:?
    > 23:27:42.458:  T:57.3 /245.0 B:130.1 /130.0 @:127 B@:105 W:?
    > 23:27:43.457:  T:61.0 /245.0 B:130.0 /130.0 @:127 B@:112 W:?
    > 23:27:44.457:  T:64.5 /245.0 B:130.0 /130.0 @:127 B@:110 W:?
    > 23:27:44.478: Warning: Communication timeout - resetting communication buffer.
    > 23:27:44.478: Connection status: Buffered:91, Manual Commands: 1, Job Commands: 5000
    > 23:27:44.478: Buffer used:91 Enforced free byte:13 lines stored:4
    < 23:27:44.479: N1639 M105
    < 23:27:44.479: N1640 M105
    < 23:27:44.480: N1641 G11 ; unretract
    < 23:27:44.480: N1642 G92 E0

  • Not sure on which side the error lies here, but I'm quite sure you can fix it in the firmware.

    What happens is that you wait for target temperature and server thinks the M109 is already executed, meaning it received a "ok" for that command. But apparently it is not finished so you now get the timeouts from this misunderstanding.

    Recently marlin was working on a extra buffer to buffer commands. So my guess is that buffering a command there returns the "ok" so hosts send more commands - which we did and expected an "ok".

    Solution: They also introduced a busy protocol, which sends a message that firmware is busy - in this case with heating up. That would cause server to not expect any "ok" messages. So activate that and you can then even reduce timeout to 3s (assuming 2s busy timeout which was default when the feature was discussed).

    In advanced config you can also activate "wait" and line numbers for ok. These features also help detecting communication problems. For example "echo:Unknown command: "   "" could have returned a "ok" even though I'm sure server did not send a empty command. But that could also confuse ok counting and cause the same problem. With line numbers in ok we would have detected what the ok was for preventing that problem.
Sign In or Register to comment.