Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    G2/G3 can't run smooth.

    Scheduled Pinned Locked Moved
    CNC
    6
    12
    670
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Jimmykcundefined
      Jimmykc
      last edited by Jimmykc

      G2/G3 can't run smooth. The issue happens between 42 second to 46 second. What parameter do I fine tune?

      I paste video link : https://youtu.be/VPnsPxMx_dk

      The issue happens on the line "N295" of NC file.

      N295 G18 G02 X87.25 Z13.1 I3.
      N300 G01 X88.25 F1000.
      N305 G17 G03 X91.25 Y0. J3.
      N310 X78.75 I-6.25
      N315 X91.25 I6.25
      N320 X90.933 Y1.966 I-6.25
      N325 X87.141 Y3.87 I-2.848 J-0.944
      N330 G01 X86.192 Y3.555
      N335 X85.873 Y3.45 Z13.119
      N340 X85.558 Y3.345 Z13.175
      N345 X85.252 Y3.244 Z13.268
      N350 X84.957 Y3.146 Z13.397
      N355 X84.677 Y3.053 Z13.56
      N360 X84.417 Y2.967 Z13.755
      N365 X84.178 Y2.888 Z13.979
      N370 X83.966 Y2.818 Z14.23
      N375 X83.781 Y2.756 Z14.504
      N380 X83.626 Y2.705 Z14.798
      N385 X83.504 Y2.665 Z15.109
      N390 X83.416 Y2.635 Z15.432
      N395 X83.362 Y2.618 Z15.764
      N400 X83.344 Y2.612 Z16.1

      I upload my NC file below.
      3333.txt

      dc42undefined droftartsundefined 2 Replies Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @Jimmykc
        last edited by dc42

        @Jimmykc which Duet are you using, which firmware version, and what are your axis steps/mm ?

        PS - https://github.com/Duet3D/RepRapFirmware/issues/768 may be relevant.

        T3P3 created this issue in Duet3D/RepRapFirmware

        open Adjust G2/G3 resolution according to the configured steps/mm to get better results for small radius arcs when the steps/mm is high #768

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        Generic Defaultundefined 1 Reply Last reply Reply Quote 0
        • Generic Defaultundefined
          Generic Default @dc42
          last edited by Generic Default

          @dc42 We tested more today, and narrowed down the problem.
          First, we changed the parameter "MinArcSegmentLength" to 0.02 as you recommended. It didn't change anything.

          I made a basic hand written program to run the machine in a G3 arc. I found that it will run the arc smoothly at certain feedrates, but not at other feedrates.

          The program;
          G0 X200 Y0 Z150
          G3 F5000 X200 Y0 I-50 J0

          For example, at 2000 mm/min, the machine ran in a smooth circle, as expected.
          Running the program many times confirmed that this worked perfectly every time.

          Here are the results;
          2000 - normal
          5000 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          6000 - normal
          8000 - normal
          9000 - normal
          1000 - normal
          900 - normal
          920 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)

          The only conclusion that I can draw is that the feedrate parameter causes a stall during an arc move at certain feedrates, but not others. The feedrates are repeatable - I.E. it's not random. Running at 5000 will fail every time and running at 6000 will work every time. I should note that the "pause" is an abrupt stop, not a smooth deceleration. It stops then starts again a fraction of a second later.

          I suspect there is some parsing error in the motion control that causes a temporary stop if the feedrate has a certain bit in it.... I don't know what though.

          More exhaustive testing:
          5000 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5001 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5002 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5003 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5004 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5005 - pauses at the Y direction change reversal point (Ymax and Ymin on the circle)
          5006 - normal
          5007 - normal
          5008 - normal
          5009 - normal
          5010 - normal

          VIDEO OF THE TEST
          https://youtu.be/5JYNb3g_WhA

          dc42undefined 1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators @Generic Default
            last edited by

            @Generic-Default I repeat my previous question: which Duet are you using, which firmware version, and what are your axis steps/mm ?

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            Generic Defaultundefined 1 Reply Last reply Reply Quote 0
            • Generic Defaultundefined
              Generic Default @dc42
              last edited by

              @dc42 Duet 6HC with 3.3 firmware. 400 steps/mm

              jay_s_ukundefined dc42undefined 2 Replies Last reply Reply Quote 0
              • jay_s_ukundefined
                jay_s_uk @Generic Default
                last edited by

                @Generic-Default i would suggest upgrading to 3.4.5 and then reporting back

                Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                1 Reply Last reply Reply Quote 0
                • droftartsundefined
                  droftarts administrators @Jimmykc
                  last edited by

                  @Jimmykc said in G2/G3 can't run smooth.:

                  N305 G17 G03 X91.25 Y0. J3.
                  N310 X78.75 I-6.25
                  N315 X91.25 I6.25
                  N320 X90.933 Y1.966 I-6.25
                  N325 X87.141 Y3.87 I-2.848 J-0.944
                  N330 G01 X86.192 Y3.555

                  I noticed in the RRF 3.3 release notes the following:

                  Removed support for implicit G2/G3 commands because they is not part of the NIST GCode standard

                  Lines 310, 315, 320 and 325 have implicit G3 commands; there is no 'G03' preceding the axis words. It may be that the firmware is ignoring these lines. To fix this, output the Gcode including the G2/G3 commands for each line.

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators @Generic Default
                    last edited by

                    @Generic-Default it's as @droftarts says. I will reinstate the support for repeating a G2 or G3 command implicitly in RRF 3.5beta4.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    Generic Defaultundefined 1 Reply Last reply Reply Quote 0
                    • Generic Defaultundefined
                      Generic Default @dc42
                      last edited by

                      @dc42 We re-added the implicit G2/G3 in our version of 3.3 firmware, because the Fanuc standard post processor that a huge percentage of CNC machines run on does G0, G1, G2, and G3 commands in the code it spits out.

                      In my test, the presence of a G2 G3 at the beginning did not change the result, only the feedrate parameter changed it.

                      We're trying to merge our CNC functions into the 3.5 firmware.

                      dc42undefined 1 Reply Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators @Generic Default
                        last edited by dc42

                        @Generic-Default our latest 3.5-dev source code supports implicit G2/3 commands provided that the first character on the line is an axis letter, and not I/J/K/R/F etc.

                        What CNC functions have you added to your branch or RRF?

                        Duet WiFi hardware designer and firmware engineer
                        Please do not ask me for Duet support via PM or email, use the forum
                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                        Generic Defaultundefined 1 Reply Last reply Reply Quote 0
                        • Generic Defaultundefined
                          Generic Default @dc42
                          last edited by

                          @dc42 This list below isn't everything we added, but most of what I can think of off the top of my head:

                          1. Added GUI for monitoring spindles (RPM, Torque, Encoder Angle, Power, Load Meter) (customizable)
                            ---1) (a) Full system for monitoring feedback from servo drivers and VFDs in real time
                          2. Added GUI for changing the parameters of the tools in the ATC magazine and turrets (pictures too)
                          3. Added X/Y/Z/A/B/C/U/V/W/D axis position display on the screen (customizable)
                          4. Added conversational programming menu with common functions - creates job files in a text editor
                          5. Added CNC specific M codes and G codes
                            ---5)(a) Rigid tapping, Drilling cycles, Lathe threading, helical boring, M19 spindle orient, M3 M4 M5, etc.
                          6. Added useful on screen M codes with GUI buttons to activate (coolant, air blast, auger motor, etc)
                          7. Added redundant rotary axis gearbox system - lets the machine engage a gearbox and use a separate servo to drive it. We use this to switch from belt drive with big servos to gearbox drive through a harmonic gear for high accuracy and torque.
                          8. Machine RGY status light and E stop system, along with servo status menu
                          9. Auto-stop when a servo overloads or faults.

                          There are quite a few other things I'm not remembering off the top of my head, but we added a ton of stuff to make the Duet system run a 12 servo, 8 axis mill turn machine. This is the same one from the other thread. Integrating all this stuff into the newer 3.5 firmware and future versions would benefit everyone, even if few CNC machines require all the functions we built.

                          dc42undefined 1 Reply Last reply Reply Quote 4
                          • dc42undefined
                            dc42 administrators @Generic Default
                            last edited by

                            @Generic-Default thanks for the list. Please can you expand on item 5: which G/M codes have you added? M3/4/5 are already supported by RRF. Auto-stop when a servo faults can be configured in the event system, if you are using MB6XD or EXP1XD boards to drive the servos.

                            Duet WiFi hardware designer and firmware engineer
                            Please do not ask me for Duet support via PM or email, use the forum
                            http://www.escher3d.com, https://miscsolutions.wordpress.com

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post
                            Unless otherwise noted, all forum content is licensed under CC-BY-SA