Problem with error recovery on comms

I have been setting up a Monoprice Maker Ultimate 2 (actually a Weedo F150S). Very little documentation on the board but is ATMega 2560 based using Marlin. Seems to work ok at 115,200 with no ping pong. Except for long prints. Setting the buffer to 63 did not help. However, setting it lower -- 48 -- worked (not sure if that's the highest possible number).  What appears to happen is two things. First, between adding the line number when the line number has 5 digits and the checksum, the line was too long for buffering.

Second, the resend only occurs once. So you get a wild orgy of line numbers not matching. At first, I though it might be M105 driving the line number up, but looking at the logs, that doesn't seem to be the case. The host just keeps pushing more lines after one resend.

< 17:33:41.721: N14408 G0 F7200 X64.829 Y68.789
> 17:33:41.731: ok
< 17:33:41.731: N14409 G1 F1800 X101.015 Y104.975 E1038.84601
> 17:33:41.833: Error:checksum mismatch, Last Line: 14408
> 17:33:41.834: Resend: 14409
> 17:33:41.844: ok
< 17:33:41.844: Resend: N14409 G1 F1800 X101.015 Y104.975 E1038.84601
> 17:33:41.857: Error:checksum mismatch, Last Line: 14408
> 17:33:41.857: Resend: 14409
> 17:33:41.869: ok
< 17:33:41.869: N14410 G0 F7200 X101.078 Y105.038
> 17:33:41.879: Error:Line Number is not Last Line Number+1, Last Line: 14408
> 17:33:41.883: Resend: 14409
> 17:33:41.894: ok
< 17:33:41.894: N14411 G1 F1800 X101.882 Y105.842 E1038.86492
> 17:33:41.905: Error:Line Number is not Last Line Number+1, Last Line: 14408
> 17:33:41.908: Resend: 14409
> 17:33:41.919: ok
< 17:33:41.919: N14412 G0 F7200 X102.369 Y105.764
> 17:33:41.930: Error:Line Number is not Last Line Number+1, Last Line: 14408

Comments

  • If you set buffer so low the advantage over ping-pong mode goes away. And of course it must be longer then longest command send. Marlin normally has 127 byte buffer.

    In your example N14409 G1 F1800 X101.015 Y104.975 E1038.84601 has 45 byte plus *123 for checksum goes over the set limit so that is why you get the problem. You need at least 63 byte buffer also I think 127 is also correct. If that does not work enable ping-pong to throttle speed and only have one command in queue instead.
  • Well, it isn't that simple. With buffer set to 127 or 63 I do get the problem with or without ping pong.

    If I set the buffer lower it does work. I haven't dug into the code to theorize about why because I agree, I figured I had to have at least the size of the longest string. However, empirically, the longer buffer lengths fail each time and the short one works fine.

    However, either way, the error recovery doesn't seem to be effective. Again, that's with the longer buffer sizes (63, 127) with or without ping pong.
  • Can you give an example with longer buffer or better ping pong about what is happening and frequency of errors happening.
  • I've been out of town but I will. I can send you the entire log if you like. The frequency isn't periodic. There is a particular slice of a particular STL that is relatively long:
    N14409 G1 F1800 X101.015 Y104.975 E1038.84601

    The line number varies but doesn't matter other than it probably has to be a "high" number to get to the number of bytes that triggers the problem.

    With buffer set to 63 or 127 with or without ping pong, this line will trigger a checksum error while streaming the GCODE. Setting the buffer to 48 will allow it to work. I know that 48 is smaller than the line size, so I can't explain that. This seems to be a quirk in the firmware. Perhaps it buffers a line and then doesn't have enough left for the next line.

    However, the issue I think that affects Server is that despite being asked to resend that line repeatedly, it only resends it once. Then it continues sending new lines despite repeated requests to resend the original line.

    I don't think it would help me to fix this because I think the board will constantly overwrite the buffer and then get a checksum error. But, if you did have two legitimate checksum errors in a row, I think this is broken behavior.

    I'll investigate some more and I am happy to send you the STL, the gcode and/or the entire log. However, I think the log in the original post shows it all.

  • Here's a larger chunk of one of the logs. I have others, but they are all the same more or less

    < 17:33:17.971: N14192 M105
    > 17:33:17.980: ok T:200.9 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:17.981: N14193 G1 X128.841 Y54.047 E1022.77426
    > 17:33:18.202: ok
    < 17:33:18.203: N14194 G1 X124.076 Y48.754 E1022.8927
    > 17:33:18.224: ok
    < 17:33:18.224: N14195 G1 X123.737 Y48.423 E1022.90058
    > 17:33:18.456: ok
    < 17:33:18.457: N14196 G1 X118.585 Y44.681 E1023.00647
    > 17:33:18.470: ok
    < 17:33:18.470: N14197 G0 F7200 X86.058 Y46.661
    > 17:33:18.718: ok
    < 17:33:18.718: N14198 G1 F1800 X85.898 Y46.113 E1023.01597
    > 17:33:18.957: ok
    < 17:33:18.957: N14199 M105
    > 17:33:18.966: ok T:202.1 /200.0 B:60.4 /60.0 B@:27 @:0
    < 17:33:18.966: N14200 G1 X85.595 Y45.757 E1023.02374
    > 17:33:18.977: ok
    < 17:33:18.977: N14201 G1 X85.544 Y45.538 E1023.02748
    > 17:33:19.216: ok
    < 17:33:19.216: N14202 G1 X85.183 Y45.027 E1023.03789
    > 17:33:19.465: ok
    < 17:33:19.465: N14203 G1 X84.791 Y44.742 E1023.04595
    > 17:33:19.713: ok
    < 17:33:19.713: N14204 G1 X84.503 Y44.301 E1023.05471
    > 17:33:19.799: ok
    < 17:33:19.799: N14205 G1 X84.155 Y44.072 E1023.06163
    > 17:33:19.948: ok
    < 17:33:19.948: N14206 M105
    > 17:33:19.957: ok T:203.2 /200.0 B:60.3 /60.0 B@:28 @:0
    < 17:33:19.957: N14207 G1 X83.855 Y43.377 E1023.07422
    > 17:33:19.968: ok
    < 17:33:19.968: N14208 G1 X82.992 Y43.762 E1023.08994
    > 17:33:20.195: ok
    < 17:33:20.195: N14209 G1 X82.36 Y44.044 E1023.10145
    > 17:33:20.213: ok
    < 17:33:20.213: N14210 G1 X81.802 Y44.398 E1023.11244
    > 17:33:20.461: ok
    < 17:33:20.461: M117 ETA 20:53:02 day 3
    > 17:33:20.467: ok
    < 17:33:20.467: N14211 G1 X76.145 Y48.508 E1023.22872
    > 17:33:20.699: ok
    < 17:33:20.699: N14212 G1 X73.783 Y51.134 E1023.28746
    > 17:33:20.714: ok
    < 17:33:20.714: N14213 G1 X74.357 Y52.332 E1023.30955
    > 17:33:20.928: ok
    < 17:33:20.928: N14214 M105
    > 17:33:20.936: ok T:204.2 /200.0 B:60.4 /60.0 B@:26 @:0
    < 17:33:20.936: N14215 G1 X75.411 Y52.27 E1023.32711
    > 17:33:21.228: ok
    < 17:33:21.228: N14216 G1 X76.063 Y52.333 E1023.338
    > 17:33:21.248: ok
    < 17:33:21.248: N14217 G1 X76.874 Y51.88 E1023.35345
    > 17:33:21.265: ok
    < 17:33:21.265: N14218 G1 X77.245 Y51.652 E1023.36069
    > 17:33:21.276: ok
    < 17:33:21.276: N14219 G1 X77.543 Y51.395 E1023.36723
    > 17:33:21.292: ok
    < 17:33:21.292: N14220 G1 X77.844 Y51.226 E1023.37297
    > 17:33:21.309: ok
    < 17:33:21.309: N14221 G1 X78.196 Y51.102 E1023.37918
    > 17:33:21.326: ok
    < 17:33:21.326: N14222 G1 X78.751 Y50.999 E1023.38857
    > 17:33:21.340: ok
    < 17:33:21.340: N14223 G1 X79.5 Y50.794 E1023.40148
    > 17:33:21.367: ok
    < 17:33:21.367: N14224 G1 X80.104 Y50.778 E1023.41153
    > 17:33:21.399: ok
    < 17:33:21.399: N14225 G1 X80.921 Y50.71 E1023.42516
    > 17:33:21.422: ok
    < 17:33:21.422: N14226 G1 X81.356 Y50.592 E1023.43266
    > 17:33:21.444: ok
    < 17:33:21.445: N14227 G1 X81.801 Y50.332 E1023.44123
    > 17:33:21.678: ok
    < 17:33:21.679: N14228 G1 X82.242 Y50.209 E1023.44884
    > 17:33:21.796: ok
    < 17:33:21.796: N14229 G1 X82.947 Y49.987 E1023.46114
    > 17:33:21.842: ok
    < 17:33:21.843: N14230 G1 X83.399 Y49.653 E1023.47048
    > 17:33:21.877: ok
    < 17:33:21.878: N14231 G1 X83.956 Y49.494 E1023.48012
    > 17:33:21.900: ok
    < 17:33:21.900: N14232 M105
    > 17:33:21.908: ok T:204.6 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:21.908: N14233 G1 X84.191 Y49.24 E1023.48587
    > 17:33:21.931: ok
    < 17:33:21.931: N14234 G1 X84.83 Y48.83 E1023.4985
    > 17:33:21.946: ok
    < 17:33:21.946: N14235 G1 X85.255 Y48.419 E1023.50833
    > 17:33:21.959: ok
    < 17:33:21.960: N14236 G1 X85.939 Y47.854 E1023.52308
    > 17:33:21.971: ok
    < 17:33:21.971: N14237 G1 X86.058 Y46.661 E1023.54302
    > 17:33:21.983: ok
    < 17:33:21.984: N14238 G0 F7200 X73.721 Y88.418
    > 17:33:22.001: ok
    < 17:33:22.001: N14239 G1 F1800 X72.544 Y88.813 E1023.56367
    > 17:33:22.027: ok
    < 17:33:22.028: N14240 G1 X71.751 Y88.925 E1023.57699
    > 17:33:22.048: ok
    < 17:33:22.048: N14241 G1 X71.241 Y89.756 E1023.5932
    > 17:33:22.075: ok
    < 17:33:22.075: N14242 G1 X71.058 Y89.932 E1023.59742
    > 17:33:22.090: ok
    < 17:33:22.090: N14243 G1 X70.911 Y90.01 E1023.60019
    > 17:33:22.108: ok
    < 17:33:22.108: N14244 G1 X70.184 Y89.541 E1023.61458
    > 17:33:22.123: ok
    < 17:33:22.123: N14245 G1 X69.574 Y89.437 E1023.62487
    > 17:33:22.148: ok
    < 17:33:22.148: N14246 G1 X68.867 Y89.007 E1023.63863
    > 17:33:22.166: ok
    < 17:33:22.166: N14247 G1 X67.77 Y90.085 E1023.66421
    > 17:33:22.186: ok
    < 17:33:22.186: N14248 G1 X71.159 Y95.953 E1023.7769
    > 17:33:22.197: ok
    < 17:33:22.197: N14249 G1 X72.595 Y97.55 E1023.81261
    > 17:33:22.222: ok
    < 17:33:22.223: N14250 G1 X73.52 Y96.563 E1023.83511
    > 17:33:22.243: ok
    < 17:33:22.243: N14251 G1 X73.73 Y96.132 E1023.84308
    > 17:33:22.273: ok
    < 17:33:22.273: N14252 G1 X74.106 Y95.792 E1023.85151
    > 17:33:22.313: ok
    < 17:33:22.313: N14253 G1 X74.37 Y95.222 E1023.86196
    > 17:33:22.707: ok
    < 17:33:22.707: N14254 G1 X74.719 Y94.765 E1023.87152
    > 17:33:22.751: ok
    < 17:33:22.751: N14255 G1 X75.114 Y93.919 E1023.88705
    > 17:33:22.778: ok
    < 17:33:22.778: N14256 G1 X75.556 Y93.375 E1023.8987
    > 17:33:22.811: ok
    < 17:33:22.811: N14257 G1 X76.054 Y92.274 E1023.9188
    > 17:33:22.822: ok
    < 17:33:22.822: N14258 G1 X75.88 Y91.357 E1023.93432
    > 17:33:22.834: ok
    < 17:33:22.834: N14259 G1 X75.532 Y90.631 E1023.94771
    > 17:33:22.854: ok
    < 17:33:22.854: N14260 G1 X75.029 Y90.091 E1023.95998
    > 17:33:22.875: ok
    < 17:33:22.875: N14261 G1 X74.531 Y89.507 E1023.97275
    > 17:33:22.903: ok
    < 17:33:22.903: N14262 M105
    > 17:33:22.911: ok T:205.1 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:22.911: N14263 G1 X74.015 Y89.464 E1023.98136
    > 17:33:22.956: ok
    < 17:33:22.956: N14264 G1 X73.721 Y88.418 E1023.99943
    > 17:33:23.183: ok
    < 17:33:23.184: N14265 G0 F7200 X80.101 Y94.163
    > 17:33:23.256: ok
    < 17:33:23.256: N14266 G1 F1800 X79.529 Y93.799 E1024.0107
    > 17:33:23.302: ok
    < 17:33:23.302: N14267 G1 X78.789 Y93.26 E1024.02593
    > 17:33:23.319: ok
    < 17:33:23.319: N14268 G1 X77.531 Y93.769 E1024.0485
    > 17:33:23.335: ok
    < 17:33:23.335: N14269 G1 X76.872 Y94.118 E1024.0609
    > 17:33:23.356: ok
    < 17:33:23.356: N14270 G1 X76.265 Y94.601 E1024.0738
    > 17:33:23.375: ok
    < 17:33:23.375: N14271 G1 X75.899 Y94.986 E1024.08263
    > 17:33:23.407: ok
    < 17:33:23.407: N14272 G1 X75.056 Y95.593 E1024.09991
    > 17:33:23.430: ok
    < 17:33:23.431: N14273 G1 X74.042 Y96.611 E1024.1238
    > 17:33:23.471: ok
    < 17:33:23.471: N14274 G1 X73.586 Y97.032 E1024.13412
    > 17:33:23.502: ok
    < 17:33:23.502: N14275 G1 X72.813 Y97.789 E1024.15211
    > 17:33:23.528: ok
    < 17:33:23.529: N14276 G1 X76.145 Y101.492 E1024.23496
    > 17:33:23.553: ok
    < 17:33:23.554: N14277 G1 X81.24 Y105.193 E1024.33968
    > 17:33:23.579: ok
    < 17:33:23.579: N14278 G1 X81.763 Y104.713 E1024.35149
    > 17:33:23.598: ok
    < 17:33:23.598: N14279 G1 X82.296 Y104.532 E1024.36085
    > 17:33:23.635: ok
    < 17:33:23.635: N14280 G1 X82.692 Y104.147 E1024.37003
    > 17:33:23.737: ok
    < 17:33:23.737: N14281 G1 X82.915 Y104.063 E1024.37399
    > 17:33:23.762: ok
    < 17:33:23.762: N14282 G1 X83.634 Y103.86 E1024.38642
    > 17:33:23.792: ok
    < 17:33:23.792: N14283 G1 X84.081 Y103.488 E1024.39609
    > 17:33:23.838: ok
    < 17:33:23.838: N14284 G1 X84.386 Y103.35 E1024.40166
    > 17:33:23.862: ok
    < 17:33:23.862: N14285 G1 X85.093 Y103.121 E1024.41402
    > 17:33:23.888: ok
    < 17:33:23.888: N14286 G1 X85.905 Y102.288 E1024.43336
    > 17:33:23.907: ok
    < 17:33:23.907: N14287 M105
    > 17:33:23.915: ok T:205.1 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:23.915: N14288 G1 X85.767 Y101.378 E1024.44867
    > 17:33:23.942: ok
    < 17:33:23.942: N14289 G1 X85.787 Y100.996 E1024.45503
    > 17:33:23.989: ok
    < 17:33:23.989: N14290 G1 X85.32 Y100.23 E1024.46995
    > 17:33:24.009: ok
    < 17:33:24.009: N14291 G1 X84.823 Y99.879 E1024.48007
    > 17:33:24.047: ok
    < 17:33:24.047: N14292 G1 X84.416 Y99.458 E1024.48981
    > 17:33:24.214: ok
    < 17:33:24.215: N14293 G1 X83.894 Y99.205 E1024.49945
    > 17:33:24.425: ok
    < 17:33:24.425: N14294 G1 X83.886 Y99.203 E1024.49959
    > 17:33:24.449: ok
    < 17:33:24.449: N14295 G1 X83.844 Y99.118 E1024.50117
    > 17:33:24.460: ok
    < 17:33:24.460: N14296 G1 X83.572 Y98.821 E1024.50786
    > 17:33:24.471: ok
    < 17:33:24.471: N14297 G1 X83.367 Y98.081 E1024.52063
    > 17:33:24.487: ok
    < 17:33:24.488: N14298 G1 X83.059 Y97.504 E1024.53151
    > 17:33:24.499: ok
    < 17:33:24.499: N14299 G1 X82.436 Y97.211 E1024.54296
    > 17:33:24.520: ok
    < 17:33:24.520: N14300 G1 X82.046 Y96.822 E1024.55212
    > 17:33:24.539: ok
    < 17:33:24.539: N14301 G1 X81.925 Y96.4 E1024.55942
    > 17:33:24.550: ok
    < 17:33:24.551: N14302 G1 X81.573 Y95.799 E1024.571
    > 17:33:24.576: ok
    < 17:33:24.576: N14303 G1 X81.232 Y95.353 E1024.58034
    > 17:33:24.614: ok
    < 17:33:24.615: N14304 G1 X80.887 Y94.889 E1024.58996
    > 17:33:24.646: ok
    < 17:33:24.646: N14305 G1 X80.101 Y94.163 E1024.60775
    > 17:33:24.658: ok
    < 17:33:24.659: N14306 G0 F7200 X116.527 Y93.768
    > 17:33:24.689: ok
    < 17:33:24.689: N14307 G1 F1800 X117.046 Y93.821 E1024.61643
    > 17:33:24.709: ok
    < 17:33:24.709: N14308 G1 X117.048 Y94.216 E1024.62299
    > 17:33:24.729: ok
    < 17:33:24.729: N14309 G1 X116.993 Y94.19 E1024.62401
    > 17:33:24.745: ok
    < 17:33:24.745: N14310 G1 X116.336 Y93.857 E1024.63626
    > 17:33:24.757: ok
    < 17:33:24.757: N14311 G1 X116.527 Y93.768 E1024.63976
    > 17:33:24.768: ok
    < 17:33:24.768: N14312 G0 F7200 X81.467 Y105.226
    > 17:33:24.778: ok
    < 17:33:24.778: N14313 G1 F1800 X82.191 Y105.95 E1024.65679
    > 17:33:24.791: ok
    < 17:33:24.791: N14314 G0 F7200 X82.408 Y105.601
    > 17:33:24.812: ok
    < 17:33:24.812: N14315 G1 F1800 X81.762 Y104.955 E1024.67198
    > 17:33:24.835: ok
    < 17:33:24.835: N14316 G0 F7200 X82.144 Y104.772
    > 17:33:24.854: ok
    < 17:33:24.854: N14317 G1 F1800 X82.624 Y105.252 E1024.68327
    > 17:33:24.867: ok
    < 17:33:24.868: N14318 G0 F7200 X82.84 Y104.902
    > 17:33:24.892: ok
    < 17:33:24.892: N14319 G1 F1800 X82.511 Y104.573 E1024.69101
    > 17:33:24.910: ok
    < 17:33:24.910: N14320 M105
    > 17:33:24.918: ok T:205.1 /200.0 B:60.3 /60.0 B@:28 @:0
    < 17:33:24.918: N14321 G0 F7200 X82.802 Y104.298
    > 17:33:24.929: ok
    < 17:33:24.929: N14322 G1 F1800 X83.065 Y104.562 E1024.6972
    > 17:33:24.966: ok
    < 17:33:24.966: N14323 G0 F7200 X83.427 Y104.358
    > 17:33:25.301: ok
    < 17:33:25.301: N14324 M73 P4 R200 Q4 S200
    > 17:33:25.307: ok
    < 17:33:25.307: N14325 G1 F1800 X83.23 Y104.16 E1024.70185
    > 17:33:25.321: ok
    < 17:33:25.321: N14326 G0 F7200 X83.671 Y104.035
    > 17:33:25.337: ok
    < 17:33:25.338: N14327 G1 F1800 X83.79 Y104.154 E1024.70465
    > 17:33:25.366: ok
    < 17:33:25.367: N14328 G0 F7200 X83.994 Y103.793
    > 17:33:25.378: ok
    < 17:33:25.378: N14329 G1 F1800 X84.182 Y103.981 E1024.70907
    > 17:33:25.714: ok
    < 17:33:25.714: N14330 G0 F7200 X84.54 Y103.774
    > 17:33:25.751: ok
    < 17:33:25.751: N14331 G1 F1800 X84.335 Y103.569 E1024.71389
    > 17:33:25.764: ok
    < 17:33:25.764: N14332 G0 F7200 X84.751 Y103.419
    > 17:33:25.798: ok
    < 17:33:25.798: N14333 G1 F1800 X84.898 Y103.566 E1024.71735
    > 17:33:25.813: ok
    < 17:33:25.814: N14334 G0 F7200 X85.179 Y103.281
    > 17:33:25.838: ok
    < 17:33:25.839: N14335 G1 F1800 X85.308 Y103.41 E1024.72038
    > 17:33:25.854: ok
    < 17:33:25.854: N14336 G0 F7200 X85.462 Y102.998
    > 17:33:25.871: ok
    < 17:33:25.871: N14337 G1 F1800 X85.8 Y103.336 E1024.72833
    > 17:33:25.885: ok
    < 17:33:25.885: N14338 G0 F7200 X86.23 Y103.201
    > 17:33:25.900: ok
    < 17:33:25.900: N14339 G1 F1800 X85.741 Y102.712 E1024.73983
    > 17:33:25.914: ok
    < 17:33:25.915: N14340 M105
    > 17:33:25.924: ok T:204.5 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:25.924: N14341 G0 F7200 X86.021 Y102.426
    > 17:33:25.934: ok
    < 17:33:25.935: N14342 G1 F1800 X87.039 Y103.444 E1024.76377
    > 17:33:25.946: ok
    < 17:33:25.946: N14343 G1 X87.109 Y103.514
    > 17:33:25.956: ok
    < 17:33:25.956: N14344 G0 F7200 X87.954 Y103.794
    > 17:33:25.966: ok
    < 17:33:25.966: N14345 G1 F1800 X86.023 Y101.862 E1024.8092
    > 17:33:25.977: ok
    < 17:33:25.978: N14346 G0 F7200 X85.955 Y101.228
    > 17:33:25.991: ok
    < 17:33:25.991: N14347 G1 F1800 X88.507 Y103.78 E1024.86922
    > 17:33:26.004: ok
    < 17:33:26.004: N14348 G1 X88.577 Y103.85
    > 17:33:26.018: ok
    < 17:33:26.018: N14349 G0 F7200 X89.386 Y104.094
    > 17:33:26.028: ok
    < 17:33:26.028: N14350 G1 F1800 X85.545 Y100.252 E1024.95956
    > 17:33:26.042: ok
    < 17:33:26.042: N14351 G0 F7200 X85.256 Y99.964
    > 17:33:26.052: ok
    < 17:33:26.052: N14352 G1 F1800 X83.622 Y98.33 E1024.99799
    > 17:33:26.067: ok
    < 17:33:26.067: N14353 G1 X83.552 Y98.26
    > 17:33:26.083: ok
    < 17:33:26.084: N14354 G0 F7200 X81.958 Y96.1
    > 17:33:26.099: ok
    < 17:33:26.099: N14355 G1 F1800 X89.898 Y104.04 E1025.18473
    > 17:33:26.124: ok
    < 17:33:26.124: N14356 G1 X89.968 Y104.11
    > 17:33:26.139: ok
    < 17:33:26.139: N14357 G0 F7200 X90.752 Y104.328
    > 17:33:26.189: ok
    < 17:33:26.189: N14358 G1 F1800 X64.499 Y78.075 E1025.80216
    > 17:33:26.202: ok
    < 17:33:26.202: N14359 G0 F7200 X64.432 Y77.443
    > 17:33:26.215: ok
    < 17:33:26.216: N14360 G1 F1800 X92.349 Y105.36 E1026.45873
    > 17:33:26.309: ok
    < 17:33:26.310: N14361 G1 X92.419 Y105.43
    > 17:33:26.327: ok
    < 17:33:26.327: N14362 G0 F7200 X93.68 Y106.125
    > 17:33:26.448: ok
    < 17:33:26.449: N14363 G1 F1800 X64.366 Y76.811 E1027.14815
    > 17:33:26.461: ok
    < 17:33:26.461: N14364 G0 F7200 X64.3 Y76.179
    > 17:33:26.475: ok
    < 17:33:26.475: N14365 G1 F1800 X94.516 Y106.395 E1027.85878
    > 17:33:26.659: ok
    < 17:33:26.659: N14366 G0 F7200 X94.96 Y106.273
    > 17:33:26.671: ok
    < 17:33:26.672: N14367 G1 F1800 X64.233 Y75.547 E1028.58142
    > 17:33:26.752: ok
    < 17:33:26.752: N14368 G0 F7200 X64.183 Y74.931
    > 17:33:26.763: ok
    < 17:33:26.763: N14369 G1 F1800 X95.301 Y106.049 E1029.31327
    > 17:33:26.802: ok
    < 17:33:26.802: N14370 G0 F7200 X95.642 Y105.824
    > 17:33:27.178: ok
    < 17:33:27.178: N14371 M105
    > 17:33:27.188: ok T:203.9 /200.0 B:60.3 /60.0 B@:28 @:0
    < 17:33:27.188: N14372 G1 F1800 X64.237 Y74.419 E1030.05186
    > 17:33:27.200: ok
    < 17:33:27.200: N14373 G0 F7200 X64.29 Y73.907
    > 17:33:27.210: ok
    < 17:33:27.210: N14374 G1 F1800 X95.984 Y105.6 E1030.79725
    > 17:33:28.445: ok
    < 17:33:28.446: N14375 M105
    > 17:33:28.454: ok T:203.2 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:28.455: N14376 G0 F7200 X96.385 Y105.435
    > 17:33:28.465: ok
    < 17:33:28.466: N14377 G1 F1800 X64.344 Y73.395 E1031.55079
    > 17:33:29.784: ok
    < 17:33:29.785: N14378 M105
    > 17:33:29.792: ok T:202.4 /200.0 B:60.3 /60.0 B@:28 @:0
    < 17:33:29.793: N14379 G0 F7200 X64.398 Y72.883
    > 17:33:29.803: ok
    < 17:33:29.804: N14380 G1 F1800 X96.925 Y105.41 E1032.31578
    > 17:33:29.820: ok
    < 17:33:29.820: N14381 G1 X96.995 Y105.48
    > 17:33:31.205: ok
    < 17:33:31.205: M117 ETE 03:19:32
    < 17:33:31.206: N14382 M105
    > 17:33:31.212: ok
    < 17:33:31.213: N14383 M105
    > 17:33:31.216: ok T:200.8 /200.0 B:60.3 /60.0 B@:27 @:105
    > 17:33:31.221: ok T:200.8 /200.0 B:60.3 /60.0 B@:27 @:105
    < 17:33:31.221: N14384 G0 F7200 X97.771 Y105.691
    > 17:33:31.232: ok
    < 17:33:31.232: N14385 G1 F1800 X64.452 Y72.371 E1033.0994
    > 17:33:32.652: ok
    < 17:33:32.652: N14386 M105
    > 17:33:32.661: ok T:199.7 /200.0 B:60.3 /60.0 B@:27 @:127
    < 17:33:32.662: N14387 G0 F7200 X64.506 Y71.86
    > 17:33:32.672: ok
    < 17:33:32.672: N14388 G1 F1800 X98.221 Y105.575 E1033.89232
    > 17:33:34.120: ok
    < 17:33:34.120: N14389 M105
    > 17:33:34.129: ok T:199.2 /200.0 B:60.4 /60.0 B@:27 @:127
    < 17:33:34.129: N14390 G0 F7200 X98.68 Y105.469
    > 17:33:34.139: ok
    < 17:33:34.139: N14391 G1 F1800 X64.56 Y71.348 E1034.69479
    > 17:33:35.608: ok
    < 17:33:35.608: N14392 M105
    < 17:33:35.608: N14393 M105
    > 17:33:35.617: ok T:199.3 /200.0 B:60.3 /60.0 B@:27 @:103
    > 17:33:35.621: ok T:199.3 /200.0 B:60.3 /60.0 B@:27 @:103
    < 17:33:35.621: N14394 G0 F7200 X64.614 Y70.836
    > 17:33:35.631: ok
    < 17:33:35.631: N14395 G1 F1800 X99.184 Y105.406 E1035.50782
    > 17:33:37.107: ok
    < 17:33:37.108: N14396 M105
    > 17:33:37.117: ok T:200.7 /200.0 B:60.3 /60.0 B@:28 @:0
    < 17:33:37.117: N14397 G0 F7200 X99.47 Y105.126
    > 17:33:37.128: ok
    < 17:33:37.128: N14398 G1 F1800 X64.667 Y70.324 E1036.32632
    > 17:33:38.622: ok
    < 17:33:38.622: N14399 M105
    < 17:33:38.622: N14400 M105
    > 17:33:38.631: ok T:202.8 /200.0 B:60.4 /60.0 B@:27 @:0
    > 17:33:38.633: ok T:202.8 /200.0 B:60.4 /60.0 B@:27 @:0
    < 17:33:38.633: N14401 G0 F7200 X64.721 Y69.812
    > 17:33:38.643: ok
    < 17:33:38.644: N14402 G1 F1800 X99.959 Y105.05 E1037.15506
    > 17:33:40.152: ok
    < 17:33:40.152: N14403 M105
    > 17:33:40.162: ok T:204.1 /200.0 B:60.3 /60.0 B@:27 @:0
    < 17:33:40.162: N14404 G0 F7200 X100.487 Y105.013
    > 17:33:40.172: ok
    < 17:33:40.173: N14405 G1 F1800 X64.775 Y69.3 E1037.99497
    > 17:33:41.706: ok
    < 17:33:41.707: M117 Layer 7/383
    < 17:33:41.707: N14406 M105
    > 17:33:41.713: ok
    < 17:33:41.713: N14407 M105
    > 17:33:41.718: ok T:205.1 /200.0 B:60.3 /60.0 B@:27 @:0
    > 17:33:41.721: ok T:204.7 /200.0 B:60.4 /60.0 B@:26 @:0
    < 17:33:41.721: N14408 G0 F7200 X64.829 Y68.789
    > 17:33:41.731: ok
    < 17:33:41.731: N14409 G1 F1800 X101.015 Y104.975 E1038.84601
    > 17:33:41.833: Error:checksum mismatch, Last Line: 14408
    > 17:33:41.834: Resend: 14409
    > 17:33:41.844: ok
    < 17:33:41.844: Resend: N14409 G1 F1800 X101.015 Y104.975 E1038.84601
    > 17:33:41.857: Error:checksum mismatch, Last Line: 14408
    > 17:33:41.857: Resend: 14409
    > 17:33:41.869: ok
    < 17:33:41.869: N14410 G0 F7200 X101.078 Y105.038
    > 17:33:41.879: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:41.883: Resend: 14409
    > 17:33:41.894: ok
    < 17:33:41.894: N14411 G1 F1800 X101.882 Y105.842 E1038.86492
    > 17:33:41.905: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:41.908: Resend: 14409
    > 17:33:41.919: ok
    < 17:33:41.919: N14412 G0 F7200 X102.369 Y105.764
    > 17:33:41.930: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:41.932: Resend: 14409
    > 17:33:41.943: ok
    < 17:33:41.944: N14413 G1 F1800 X64.883 Y68.277 E1039.74654
    > 17:33:41.954: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:41.958: Resend: 14409
    > 17:33:41.969: ok
    < 17:33:41.969: N14414 G0 F7200 X64.937 Y67.765
    > 17:33:41.979: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:41.982: Resend: 14409
    > 17:33:41.993: ok
    < 17:33:41.993: N14415 G1 F1800 X102.717 Y105.545 E1040.63507
    > 17:33:42.004: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:42.007: Resend: 14409
    > 17:33:42.007: Resend after 173ms
    > 17:33:42.017: ok
    < 17:33:42.018: Resend: N14409 G1 F1800 X101.015 Y104.975 E1038.84601
    > 17:33:42.030: Error:checksum mismatch, Last Line: 14408
    > 17:33:42.030: Resend: 14409
    > 17:33:42.041: ok
    < 17:33:42.041: Resend: N14410 G0 F7200 X101.078 Y105.038
    > 17:33:42.052: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:42.054: Resend: 14409
    > 17:33:42.065: ok
    < 17:33:42.065: Resend: N14411 G1 F1800 X101.882 Y105.842 E1038.86492
    > 17:33:42.077: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:42.079: Resend: 14409
    > 17:33:42.091: ok
    < 17:33:42.091: Resend: N14412 G0 F7200 X102.369 Y105.764
    > 17:33:42.101: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:42.103: Resend: 14409
    > 17:33:42.115: ok
    < 17:33:42.115: Resend: N14413 G1 F1800 X64.883 Y68.277 E1039.74654
    > 17:33:42.126: Error:Line Number is not Last Line Number+1, Last Line: 14408
    > 17:33:42.129: Resend: 14409
    > 17:33:42.140: ok
    < 17:33:42.140: Resend: N14414 G0 F7200 X64.937 Y67.765
    > 17:33:42.150: Error:Line Number is not Last Line Number+1, Last Line: 14408


    Here's a little of another similar run:
    <  9:25:55.935: N15224 G1 F1800 X123.63 Y89.067 E1000.01269
    >  9:25:56.780: ok
    <  9:25:56.780: N15225 M105
    >  9:25:56.788: ok T:204.3 /200.0 B:60.4 /60.0 B@:31 @:0
    <  9:25:56.788: N15226 G0 F7200 X123.793 Y89.469
    >  9:25:56.799: ok
    <  9:25:56.799: N15227 G1 F1800 X102.636 Y110.626 E1000.51027
    >  9:25:56.812: Error:checksum mismatch, Last Line: 15226
    >  9:25:56.812: Resend: 15227
    >  9:25:56.822: ok
    <  9:25:56.822: Resend: N15227 G1 F1800 X102.636 Y110.626 E1000.51027
    >  9:25:56.834: Error:checksum mismatch, Last Line: 15226
    >  9:25:56.835: Resend: 15227
    >  9:25:56.846: ok
    <  9:25:56.846: N15228 G0 F7200 X103.202 Y110.626
    >  9:25:56.856: Error:Line Number is not Last Line Number+1, Last Line: 15226
    >  9:25:56.859: Resend: 15227
    >  9:25:56.870: ok





    And another:

    > 18:32:48.338: ok T:204.5 /200.0 B:60.1 /60.0 B@:24 @:0
    < 18:32:48.338: N13356 G0 F7200 X64.506 Y71.86
    > 18:32:48.349: ok
    < 18:32:48.349: N13357 G1 F1800 X98.221 Y105.575 E1033.89232
    > 18:32:49.798: ok
    < 18:32:49.798: N13358 M105
    > 18:32:49.806: ok T:203.8 /200.0 B:60.1 /60.0 B@:24 @:0
    < 18:32:49.806: N13359 G0 F7200 X98.68 Y105.469
    > 18:32:49.817: ok
    < 18:32:49.817: N13360 G1 F1800 X64.56 Y71.348 E1034.69479
    > 18:32:51.286: ok
    < 18:32:51.286: N13361 M105
    > 18:32:51.295: ok T:203.0 /200.0 B:60.1 /60.0 B@:25 @:0
    < 18:32:51.296: N13362 M105
    > 18:32:51.304: ok T:203.0 /200.0 B:60.1 /60.0 B@:25 @:0
    < 18:32:51.304: N13363 G0 F7200 X64.614 Y70.836
    > 18:32:51.315: ok
    < 18:32:51.316: N13364 G1 F1800 X99.184 Y105.406 E1035.50782
    > 18:32:52.784: ok
    < 18:32:52.785: N13365 M105
    > 18:32:52.792: ok T:201.9 /200.0 B:60.1 /60.0 B@:24 @:26
    < 18:32:52.793: N13366 G0 F7200 X99.47 Y105.126
    > 18:32:52.803: ok
    < 18:32:52.803: N13367 G1 F1800 X64.667 Y70.324 E1036.32632
    > 18:32:54.300: ok
    < 18:32:54.300: M117 Layer 7/383
    > 18:32:54.305: ok
    < 18:32:54.305: N13368 M105
    > 18:32:54.313: ok T:200.3 /200.0 B:60.1 /60.0 B@:24 @:123
    < 18:32:54.313: N13369 M105
    > 18:32:54.322: ok T:200.3 /200.0 B:60.1 /60.0 B@:24 @:123
    < 18:32:54.322: N13370 G0 F7200 X64.721 Y69.812
    > 18:32:54.333: ok
    < 18:32:54.333: N13371 G1 F1800 X99.959 Y105.05 E1037.15506
    > 18:32:55.829: ok
    < 18:32:55.830: N13372 M105
    > 18:32:55.839: ok T:199.5 /200.0 B:60.1 /60.0 B@:23 @:127
    < 18:32:55.839: N13373 G0 F7200 X100.487 Y105.013
    > 18:32:55.850: ok
    < 18:32:55.850: N13374 G1 F1800 X64.775 Y69.3 E1037.99497
    > 18:32:57.384: ok
    < 18:32:57.384: N13375 M105
    > 18:32:57.393: ok T:199.2 /200.0 B:60.1 /60.0 B@:26 @:123
    < 18:32:57.393: N13376 M105
    > 18:32:57.402: ok T:199.2 /200.0 B:60.1 /60.0 B@:26 @:123
    < 18:32:57.402: N13377 G0 F7200 X64.829 Y68.789
    > 18:32:57.413: ok
    < 18:32:57.413: N13378 G1 F1800 X101.015 Y104.975 E1038.84601
    > 18:32:57.426: Error:checksum mismatch, Last Line: 13377
    > 18:32:57.426: Resend: 13378
    > 18:32:57.437: ok
    < 18:32:57.438: Resend: N13378 G1 F1800 X101.015 Y104.975 E1038.84601
    > 18:32:57.450: Error:checksum mismatch, Last Line: 13377
    > 18:32:57.450: Resend: 13378
    > 18:32:57.467: ok
    < 18:32:57.467: N13379 G0 F7200 X101.078 Y105.038
    > 18:32:57.478: Error:Line Number is not Last Line Number+1, Last Line: 13377
    > 18:32:57.480: Resend: 13378
    > 18:32:57.497: ok
    < 18:32:57.498: N13380 G1 F1800 X101.882 Y105.842 E1038.86492
    > 18:32:57.509: Error:Line Number is not Last Line Number+1, Last Line: 13377
    > 18:32:57.512: Resend: 13378
    > 18:32:57.529: ok
    < 18:32:57.530: N13381 G0 F7200 X102.369 Y105.764
    > 18:32:57.540: Error:Line Number is not Last Line Number+1, Last Line: 13377
    > 18:32:57.542: Resend: 13378
    > 18:32:57.559: ok
    < 18:32:57.560: N13382 G1 F1800 X64.883 Y68.277 E1039.74654
    > 18:32:57.570: Error:Line Number is not Last Line Number+1, Last Line: 13377



  • Ok, you are right I think. The buffer is really somewhere at 48 byte.  All lines are 45byte plus 2-4 byte for checksum make them apparently overflow.

    The good thing is that I also saw a solution. Don't know which slicer you are using but yours is creating exceptional long lines due to the fact that speed changes F are included in the motion lines (not an error only a problem with small buffers). These are all the lines causing the checksum errors. If you slice with PrusaSlicer you will get F numbers in a separate line so longest line will be 6 chars less.

    Another thing you can do is using relative extrusion coordinates. Then  E1038.84601 becomes  E1.84601 which also reduces size by 3 byte. That might as well be enough to prevent the long line.

    One problem might be very long prints. Line number N is reset to 10000 when it reaches 10000000 so you can get 3 more digits from that. Means the gain from relative extrusion can be eaten by line numbers, also 10 million is normally never reached, but you reach more then lines in gcode. Lines are only reset at connection start and we also query temperatures every second. So only moving F to separate line and relative extrusion (better anyway in terms of precision) would remove the buffer size problem.

    Best solution of course would be firmware update with bigger buffers like normal firmwares have.
Sign In or Register to comment.