G2 arc command doesnot seem to follow feedrate commands

Hi,

I am building my own delta printer. I use a MKS GEN L v1 board with repetier firmware v1.0.

For controlling, I use Repetier server 0.93.1 installed on a raspberry pi 3b+ (with repetier image).  I have been using the repetier server with my pursa i3 for a while now and it is working good (Great job on all of these. Thank you that). Both pursa and my delta are never on at the same time. So the server is connected to only one printer at any given point.

I have a been testing my delta in cnc mode to see how it works. I am only doing dry runs as of now (no tool is connected to the mks board). All works fine when my gcode does not have G2 commands. When I use G2 commands to create arcs, one the following happens:
  1. Sometimes the arcs moves as expected - no issues.
  2. Sometimes the arcs movements speed up (even though I have the same F defined for all the lines of Gcode), but the delta is able to handle this faster movements.
  3. Sometimes the arcs movements speed up a lot and the stepper motor seems to skip steps.
All three cases can happen in the same job for different arcs and it seems to happen randomly. My printer logs don't should anything unusual (to my knowledge, attached below).

It only happens when there are G2 commands in the gcode. I did run the job after removing the G2 commands manually and it works fine. I havn't run anything with G3 command yet. I am not sure if I am doing something wrong or what is causing the issue. Any help in this case would be highly appreciated.

Below is the gcode I am using, it was generated using Freecad Path Workbench and then modified manually.

Please let me know if you need any additional information. Thank you in advance.

--------------------------------GCODE-----------------------------------------

G28
G0 F900.000
G1 F900.000
M453
G1 Z28
G92 X0 Y0 Z10
G1 Z15
G1 X41.8713 Y39.1046 Z6.0000
G1 X49.0513 Y34.9593 Z6.0000
G2 X54.8013 Y25.0000 Z6.0000 I-5.7500 J-9.9593 F900.000
G1 X54.8013 Y-25.0000 Z6.0000
G2 X49.0513 Y-34.9593 Z6.0000 I-11.5000 J-0.0000 F900.000
G1 X5.7500 Y-59.9593 Z6.0000
G2 X1.5796 Y-61.3910 Z6.0000 I-5.7500 J9.9593 F900.000
G2 X-5.7500 Y-59.9593 Z6.0000 I-1.5796 J11.3910 F900.000
G1 X-49.0513 Y-34.9593 Z6.0000
G2 X-54.8013 Y-25.0000 Z6.0000 I5.7500 J9.9593 F900.000
G1 X-54.8013 Y25.0000 Z6.0000
G2 X-49.0513 Y34.9593 Z6.0000 I11.5000 J0.0000 F900.000
G1 X-5.7500 Y59.9593 Z6.0000
G2 X5.7500 Y59.9593 Z6.0000 I5.7500 J-9.9593 F900.000
G1 X41.8713 Y39.1046 Z6.0000
G1 X41.8713 Y39.1046 Z2.0000
G1 X49.0513 Y34.9593 Z2.0000
G2 X54.8013 Y25.0000 Z2.0000 I-5.7500 J-9.9593 F900.000
G1 X54.8013 Y-25.0000 Z2.0000
G2 X49.0513 Y-34.9593 Z2.0000 I-11.5000 J-0.0000 F900.000
G1 X5.7500 Y-59.9593 Z2.0000
G2 X1.5796 Y-61.3910 Z2.0000 I-5.7500 J9.9593 F900.000
G2 X-5.7500 Y-59.9593 Z2.0000 I-1.5796 J11.3910 F900.000
G1 X-49.0513 Y-34.9593 Z2.0000
G2 X-54.8013 Y-25.0000 Z2.0000 I5.7500 J9.9593 F900.000
G1 X-54.8013 Y25.0000 Z2.0000
G2 X-49.0513 Y34.9593 Z2.0000 I11.5000 J0.0000 F900.000
G1 X-5.7500 Y59.9593 Z2.0000
G2 X5.7500 Y59.9593 Z2.0000 I5.7500 J-9.9593 F900.000
G1 X41.8713 Y39.1046 Z2.0000
G1 X41.8713 Y39.1046 Z0.0000
G1 X49.0513 Y34.9593 Z0.0000
G2 X54.8013 Y25.0000 Z0.0000 I-5.7500 J-9.9593 F900.000
G1 X54.8013 Y-25.0000 Z0.0000
G2 X49.0513 Y-34.9593 Z0.0000 I-11.5000 J-0.0000 F900.000
G1 X5.7500 Y-59.9593 Z0.0000
G2 X1.5796 Y-61.3910 Z0.0000 I-5.7500 J9.9593 F900.000
G2 X-5.7500 Y-59.9593 Z0.0000 I-1.5796 J11.3910 F900.000
G1 X-49.0513 Y-34.9593 Z0.0000
G2 X-54.8013 Y-25.0000 Z0.0000 I5.7500 J9.9593 F900.000
G1 X-54.8013 Y25.0000 Z0.0000
G2 X-49.0513 Y34.9593 Z0.0000 I11.5000 J0.0000 F900.000
G1 X-5.7500 Y59.9593 Z0.0000
G2 X5.7500 Y59.9593 Z0.0000 I5.7500 J-9.9593 F900.000
G1 X41.8713 Y39.1046 Z0.0000
G1 Z15

----------------------------End of Gcode--------------------------------------------
------------------------------Print Log---------------------------------------------

11:30:10.849: N473 G28
11:30:10.853: ok 473
11:30:10.853: N474 G0 F900.000
11:30:12.721: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:12.854: busy:processing
11:30:13.820: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:14.854: busy:processing
11:30:14.918: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:14.922: SelectExtruder:0
11:30:14.928: FlowMultiply:100
11:30:14.930: X:0.00 Y:0.00 Z:115.000 E:0.0000
11:30:14.930: ok 474
11:30:14.930: N475 G1 F900.000
11:30:14.935: ok 475
11:30:14.935: N476 M453
11:30:14.940: ok 476
11:30:14.940: N477 G1 Z28
11:30:15.118: PrinterMode:CNC
11:30:15.118: ok 477
11:30:15.118: N478 G92 X0 Y0 Z10
11:30:15.124: ok 478
11:30:15.124: N479 G1 Z15
11:30:15.127: X_OFFSET:0.000 Y_OFFSET:0.000 Z_OFFSET:-18.000
11:30:15.127: ok 479
11:30:15.127: N480 G1 X41.8713 Y39.1046 Z6.0000
11:30:15.133: ok 480
11:30:15.133: N481 G1 X49.0513 Y34.9593 Z6.0000
11:30:15.235: ok 481
11:30:15.235: N482 G2 X54.8013 Y25.0000 Z6.0000 I-5.7500 J-9.9593 F900.000
11:30:15.251: ok 482
11:30:15.251: N483 G1 X54.8013 Y-25.0000 Z6.0000
11:30:23.703: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (8)
11:30:24.527: ok 483
11:30:24.527: N484 G2 X49.0513 Y-34.9593 Z6.0000 I-11.5000 J-0.0000 F900.000
11:30:25.900: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:26.136: ok 484
11:30:26.136: N485 G1 X5.7500 Y-59.9593 Z6.0000
11:30:28.096: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:28.529: ok 485
11:30:28.529: N486 G2 X1.5796 Y-61.3910 Z6.0000 I-5.7500 J9.9593 F900.000
11:30:29.194: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:30.121: ok 486
11:30:30.121: N487 G2 X-5.7500 Y-59.9593 Z6.0000 I-1.5796 J11.3910 F900.000
11:30:30.134: ok 487
11:30:30.134: N488 G1 X-49.0513 Y-34.9593 Z6.0000
11:30:31.390: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:31.775: ok 488
11:30:31.775: N489 G2 X-54.8013 Y-25.0000 Z6.0000 I5.7500 J9.9593 F900.000
11:30:33.586: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:33.803: ok 489
11:30:33.804: N490 G1 X-54.8013 Y25.0000 Z6.0000
11:30:35.782: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:36.118: ok 490
11:30:36.119: N491 G2 X-49.0513 Y34.9593 Z6.0000 I11.5000 J0.0000 F900.000
11:30:36.881: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:37.859: ok 491
11:30:37.859: N492 G1 X-5.7500 Y59.9593 Z6.0000
11:30:40.176: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (3)
11:30:40.256: ok 492
11:30:40.256: N493 G2 X5.7500 Y59.9593 Z6.0000 I5.7500 J-9.9593 F900.000
11:30:41.274: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:41.998: ok 493
11:30:41.998: N494 G1 X41.8713 Y39.1046 Z6.0000
11:30:43.470: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:44.395: ok 494
11:30:44.395: N495 G1 X41.8713 Y39.1046 Z2.0000
11:30:45.666: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:45.968: ok 495
11:30:45.969: N496 G1 X49.0513 Y34.9593 Z2.0000
11:30:45.975: ok 496
11:30:45.975: N497 G2 X54.8013 Y25.0000 Z2.0000 I-5.7500 J-9.9593 F900.000
11:30:45.990: ok 497
11:30:45.990: N498 G1 X54.8013 Y-25.0000 Z2.0000
11:30:47.862: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:48.442: ok 498
11:30:48.442: N499 G2 X49.0513 Y-34.9593 Z2.0000 I-11.5000 J-0.0000 F900.000
11:30:48.961: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:49.934: ok 499
11:30:49.934: N500 G1 X5.7500 Y-59.9593 Z2.0000
11:30:52.156: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (3)
11:30:52.248: ok 500
11:30:52.249: N501 G2 X1.5796 Y-61.3910 Z2.0000 I-5.7500 J9.9593 F900.000
11:30:53.257: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:30:53.991: ok 501
11:30:53.991: N502 G2 X-5.7500 Y-59.9593 Z2.0000 I-1.5796 J11.3910 F900.000
11:30:54.254: ok 502
11:30:54.255: N503 G1 X-49.0513 Y-34.9593 Z2.0000
11:30:55.450: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:56.053: ok 503
11:30:56.054: N504 G2 X-54.8013 Y-25.0000 Z2.0000 I5.7500 J9.9593 F900.000
11:30:57.646: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:30:58.094: ok 504
11:30:58.094: N505 G1 X-54.8013 Y25.0000 Z2.0000
11:30:59.842: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:00.524: ok 505
11:31:00.524: N506 G2 X-49.0513 Y34.9593 Z2.0000 I11.5000 J0.0000 F900.000
11:31:02.104: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:02.105: ok 506
11:31:02.105: N507 G1 X-5.7500 Y59.9593 Z2.0000
11:31:03.137: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:04.097: ok 507
11:31:04.097: N508 G2 X5.7500 Y59.9593 Z2.0000 I5.7500 J-9.9593 F900.000
11:31:05.333: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:05.823: ok 508
11:31:05.823: N509 G1 X41.8713 Y39.1046 Z2.0000
11:31:07.530: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:08.107: ok 509
11:31:08.107: N510 G1 X41.8713 Y39.1046 Z0.0000
11:31:09.726: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:09.781: ok 510
11:31:09.781: N511 G1 X49.0513 Y34.9593 Z0.0000
11:31:09.841: ok 511
11:31:09.841: N512 G2 X54.8013 Y25.0000 Z0.0000 I-5.7500 J-9.9593 F900.000
11:31:09.981: ok 512
11:31:09.981: N513 G1 X54.8013 Y-25.0000 Z0.0000
11:31:11.922: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:12.719: ok 513
11:31:12.719: N514 G2 X49.0513 Y-34.9593 Z0.0000 I-11.5000 J-0.0000 F900.000
11:31:14.126: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:14.126: ok 514
11:31:14.126: N515 G1 X5.7500 Y-59.9593 Z0.0000
11:31:16.316: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:16.536: ok 515
11:31:16.536: N516 G2 X1.5796 Y-61.3910 Z0.0000 I-5.7500 J9.9593 F900.000
11:31:17.414: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:18.262: ok 516
11:31:18.262: N517 G2 X-5.7500 Y-59.9593 Z0.0000 I-1.5796 J11.3910 F900.000
11:31:18.511: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:18.526: ok 517
11:31:18.526: N518 G1 X-49.0513 Y-34.9593 Z0.0000
11:31:19.616: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:20.326: ok 518
11:31:20.326: N519 G2 X-54.8013 Y-25.0000 Z0.0000 I5.7500 J9.9593 F900.000
11:31:21.806: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:22.367: ok 519
11:31:22.367: N520 G1 X-54.8013 Y25.0000 Z0.0000
11:31:24.002: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:24.798: ok 520
11:31:24.799: N521 G2 X-49.0513 Y34.9593 Z0.0000 I11.5000 J0.0000 F900.000
11:31:26.206: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:26.540: ok 521
11:31:26.540: N522 G1 X-5.7500 Y59.9593 Z0.0000
11:31:28.395: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:28.936: ok 522
11:31:28.936: N523 G2 X5.7500 Y59.9593 Z0.0000 I5.7500 J-9.9593 F900.000
11:31:30.591: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:30.677: ok 523
11:31:30.677: N524 G1 X41.8713 Y39.1046 Z0.0000
11:31:32.789: T:-48.82 /0 B:-48.82 /0 B@:0 @:0 (2)
11:31:33.075: ok 524
11:31:33.075: N525 G1 Z15
11:31:33.886: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:34.748: ok 525
11:31:35.077: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:35.077: @stopLog
11:31:35.749: wait
11:31:36.082: T:-48.82 /0 B:-48.82 /0 B@:0 @:0
11:31:36.749: wait

--------------------End of Log-------------------------------------------------------


Comments

  • G2 and G3 is same implementation just different direction so behaves the same. I don't think there is anything wrong here if it  not running faster then F900. The main problem is buffering and segment length. We can not handle arcs natively - they get approximated by a lot of segments. Now we need depending on acceleration enough segments to decelerate to jerk/2. If we can not buffer that distance the firmware will slow down speed to level where that gets possible. There are also some other quirks firmware does to ensure buffer does not run empty e.g. lowering speed on low buffer.
    Now the delta has nonlinear kinematics so even a strait line needs to be split into several sublines where we compute coordinates and then we interpolate between them. Last problem is that we only have 8kb RAM to store all this with a AVR 2560 processor. So you end up with 14-16 buffer lines each having 20 subsegments or so (not sure don't use 8 bit for delta any more). With arcs you should try to increase the buffers towards 32 and reduce the subsegments to still have at least 900 byte free ram when you connect or firmware will crash. Then it should move a bit smoother.
    But to be honest - for a delta I'd always use a 32 bit boards that is supported. With the due board they have 96kb ram instead of 8kb so no problems having bigger and more buffers plus they are at least 10 times faster so we can make more interpolations as well and move faster. In your case you are really going on the edge of what is doable I guess - never used cnc with 8 bit delta but G2 is also adding quite some computations and many small edges which as explaind make it a bit complicated.
  • Thank you for the quick responds. That was very helpful. I will try to get my hands on a 32-bit control board see if it resolves the issue. Will keep you posted as well. Once again Thank you.
  • Great. Make sure to select a supported board! There are quite some 32 bit boards and not all are supported by us as they use different processors.
  • Hi, I upgraded my mks gen l v1(8 bit) to skr v1.4 turbo (32 bit). Good news - like you said it fixed my problem and now the same gcode is running smoothly. Thank you.

    However, after I got the board, I realized that repetier firmware is not yet supported on this board. So for the instance I am using marlin 2.0 with repetier server. It works for now, so all is good.

    Do you have plans of adding support for skr boards in the near future? Thanks
     
  • That is why I said supported board:-) This board uses a different processor so requires completely different HAL abstraction. Only V2 firmware will support multiple processors but that one is currently not included. It is on the list but I can not say when I find time to implement this, so no time horizon for that.
Sign In or Register to comment.