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

    G2/G3 can't run smooth.

    Scheduled Pinned Locked Moved
    CNC
    6
    12
    691
    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.
    • 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