Incorrect Arc Movement

Home Forums TinyG TinyG Support Incorrect Arc Movement

Tagged: 

Viewing 8 posts - 16 through 23 (of 23 total)
  • Author
    Posts
  • #7963
    cmcgrath5035
    Moderator

    djdaudio: First check will be FW version, there have been almost continuous refinements to the handling of arcs and the somewhat strange arcs that are generated by some packages. FW 440.14 is the current best choice, but there are still corner cases being worked.
    These issues are often resolved by tweaking the backends of the Gcode processors, using less aggressive minimal arc lengths, etc.

    • This reply was modified 9 years, 5 months ago by cmcgrath5035.
    #8166

    @cmcgrath5035 & @alden – thanks for the replies.

    Apologies for not replying sooner; other projects got in the way. Plan to get back to this over the weekend.

    I’m using CamBam to generate my G-Code, and OpenSCAM as my viewer.

    Both of these previewed the files ok.


    @cmcgrath5035
    – interesting that other CAD/CAM packages are mis-interpreting the files as well. Wonder if CAMBAM is doing something that is either ambiguous or complex to correctly implement in the G-Code spec.

    (I don’t use CP very much… at time of purchase I wanted to set up my small CNC like my 3D printers, driven by a Raspberry Pi class machine, vetted TGFX and then ordered the machine. To have TGFX dropped by the time the hardware arrived, and CP is a PIA to use on lower powered machines- and not particularly ‘safe’; there can be terrible lag in the UI and it’s difficult to get it to reliably pause quickly.)

    Let me know if there’s anything I can do to help track down this bug!

    Cheers,

    Julian

    #8168
    cmcgrath5035
    Moderator

    I suggest you start by updating tinyG FW to 440.18, the most recent Master branch that has added more tweaks to arc processing.

    If rendering issues persist, post your Gcode to a cloud drive, the devs may find it useful as a test case.

    #8170
    V e S
    Member

    Hi All,
    I am not sure if my problem is connected to this thread but I guess it is.
    If not please move it to the other one.

    PROBLEM:
    when I cut circle, not matter which size, I get an output which is a circle but also i got something extra from tinyG 😉 begining of the circle is a narrowing spiral…
    1st quarter of the circle cutted (only when cuting the first layer) is a tiny bit wider than expected and within 1st quarter the difference is going smaller and smaller and finally starting second quarter it dissapears.

    When tinyG start to cut second or any other leyer the problem dissapears.
    This is hard for me to explain, so here is some photos:
    https://drive.google.com/file/d/0B_96INML2p-FeE9aeWlrZkZzN0xKbG1uY25ub2R2aHNZa253/view?usp=sharing

    https://drive.google.com/file/d/0B_96INML2p-FWnJKQzR1OVY2dU9xUHplZmxCLTRrTXlLM2Jv/view?usp=sharing

    With older firmware version the error was also repeatting in different work but the output was more random.
    Here is an example (this should be a circle):
    https://drive.google.com/file/d/0B_96INML2p-FaDNEbDNnRHEtOEJZeXhzWEVGNk9ZWnZBMVRJ/view?usp=sharing
    (this was made using firmware 440.14)

    I decided to disassemble my CNC and check for any lose in the system.
    I could not find any.

    I tested different circles, in various start points, in different locations on a plate.
    After some time I came up with this:

    – when I start the job from the center it dissapears
    – I did firmware update form 440.14 to 440.16 – the first works were cutted OK.
    The very next day they were not!

    Here is a photo of pen test:
    https://drive.google.com/open?id=0B_96INML2p-FdWNtSWhTZmNUWjBmajZiLVZVWnBRZE5DeUhR

    zoom in to the problem:
    https://drive.google.com/open?id=0B_96INML2p-FOC15cDlQRW5GN19pdzN2dHdjOXVSWmdIczlj

    As you could see the testing square was also with an error.

    Here is a Chillipeppers logo “printed”:
    https://drive.google.com/open?id=0B_96INML2p-FWHZxSjBaWHUzdFNXXzF4SHlYbVdIc1hkczhV

    zoom in to the problem:
    https://drive.google.com/open?id=0B_96INML2p-FNGU3cUxleEk4LVEzd2ZsaFZnWldNNnFzcHg4

    Now I updated to 440.18 but the problem remains.

    Did anyone had similar problems?
    have any idea what it might be ?
    Here is what i got:
    [fb] firmware build 440.18
    [fv] firmware version 0.97
    [hp] hardware platform 1.00
    [hv] hardware version 8.00
    JSON 1.80 (1.83 is not working Ok for me)

    #8171
    cmcgrath5035
    Moderator

    Hmm, lots of data here
    The first 3 files are viewable, the last 4 poped up a “request access”, I am sure you are getting bombarded by google.

    Image 1 sort of looks like a power management issue (bit pulling on inactive motors)

    Maybe post a file with all your parameters – $$
    And, a typical Gcode file – if it is a previously unknown error, devs can use as a test case

    #8178
    V e S
    Member

    That was also my first thought, so I changed the PWM settings so the mottors were powered all the time. It didnt change a bit.

    OK, here is my $$

    [fb] firmware build 440.18
    [fv] firmware version 0.97
    [hp] hardware platform 1.00
    [hv] hardware version 8.00
    [id] TinyG ID 3X3566-HKR
    [ja] junction acceleration 100000 mm
    [ct] chordal tolerance 0.0100 mm
    [sl] soft limit enable 0
    [st] switch type 0 [0=NO,1=NC]
    [mt] motor idle timeout 2.00 Sec
    [ej] enable json mode 0 [0=text,1=JSON]
    [jv] json verbosity 1 [0=silent,1=footer,2=messages,3=configs,4=linenum,5=verbose]
    [js] json serialize style 1 [0=relaxed,1=strict]
    [tv] text verbosity 1 [0=silent,1=verbose]
    [qv] queue report verbosity 1 [0=off,1=single,2=triple]
    [sv] status report verbosity 1 [0=off,1=filtered,2=verbose]
    [si] status interval 250 ms
    [ec] expand LF to CRLF on TX 0 [0=off,1=on]
    [ee] enable echo 0 [0=off,1=on]
    [ex] enable flow control 1 [0=off,1=XON/XOFF, 2=RTS/CTS]
    [baud] USB baud rate 5 [1=9600,2=19200,3=38400,4=57600,5=115200,6=230400]
    [net] network mode 0 [0=master]
    [gpl] default gcode plane 0 [0=G17,1=G18,2=G19]
    [gun] default gcode units mode 1 [0=G20,1=G21]
    [gco] default gcode coord system 1 [1-6 (G54-G59)]
    [gpa] default gcode path control 2 [0=G61,1=G61.1,2=G64]
    [gdi] default gcode distance mode 0 [0=G90,1=G91]
    [1ma] m1 map to axis 0 [0=X,1=Y,2=Z…]
    [1sa] m1 step angle 1.800 deg
    [1tr] m1 travel per revolution 59.4485 mm
    [1mi] m1 microsteps 8 [1,2,4,8]
    [1po] m1 polarity 1 [0=normal,1=reverse]
    [1pm] m1 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
    [2ma] m2 map to axis 1 [0=X,1=Y,2=Z…]
    [2sa] m2 step angle 1.800 deg
    [2tr] m2 travel per revolution 59.4485 mm
    [2mi] m2 microsteps 8 [1,2,4,8]
    [2po] m2 polarity 0 [0=normal,1=reverse]
    [2pm] m2 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
    [3ma] m3 map to axis 1 [0=X,1=Y,2=Z…]
    [3sa] m3 step angle 1.800 deg
    [3tr] m3 travel per revolution 59.4485 mm
    [3mi] m3 microsteps 8 [1,2,4,8]
    [3po] m3 polarity 1 [0=normal,1=reverse]
    [3pm] m3 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
    [4ma] m4 map to axis 2 [0=X,1=Y,2=Z…]
    [4sa] m4 step angle 1.800 deg
    [4tr] m4 travel per revolution 2.1167 mm
    [4mi] m4 microsteps 8 [1,2,4,8]
    [4po] m4 polarity 1 [0=normal,1=reverse]
    [4pm] m4 power management 2 [0=disabled,1=always on,2=in cycle,3=when moving]
    [xam] x axis mode 1 [standard]
    [xvm] x velocity maximum 8000 mm/min
    [xfr] x feedrate maximum 5000 mm/min
    [xtn] x travel minimum 0.000 mm
    [xtm] x travel maximum 355.000 mm
    [xjm] x jerk maximum 100 mm/min^3 * 1 million
    [xjh] x jerk homing 2500 mm/min^3 * 1 million
    [xjd] x junction deviation 0.0500 mm (larger is faster)
    [xsn] x switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
    [xsx] x switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
    [xsv] x search velocity 800 mm/min
    [xlv] x latch velocity 100 mm/min
    [xlb] x latch backoff 100.000 mm
    [xzb] x zero backoff 3.000 mm
    [yam] y axis mode 1 [standard]
    [yvm] y velocity maximum 10000 mm/min
    [yfr] y feedrate maximum 5000 mm/min
    [ytn] y travel minimum 0.000 mm
    [ytm] y travel maximum 395.000 mm
    [yjm] y jerk maximum 100 mm/min^3 * 1 million
    [yjh] y jerk homing 2500 mm/min^3 * 1 million
    [yjd] y junction deviation 0.0500 mm (larger is faster)
    [ysn] y switch min 3 [0=off,1=homing,2=limit,3=limit+homing]
    [ysx] y switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
    [ysv] y search velocity 800 mm/min
    [ylv] y latch velocity 100 mm/min
    [ylb] y latch backoff 100.000 mm
    [yzb] y zero backoff 3.000 mm
    [zam] z axis mode 1 [standard]
    [zvm] z velocity maximum 400 mm/min
    [zfr] z feedrate maximum 200 mm/min
    [ztn] z travel minimum 0.000 mm
    [ztm] z travel maximum 80.000 mm
    [zjm] z jerk maximum 50 mm/min^3 * 1 million
    [zjh] z jerk homing 100 mm/min^3 * 1 million
    [zjd] z junction deviation 0.0500 mm (larger is faster)
    [zsn] z switch min 2 [0=off,1=homing,2=limit,3=limit+homing]
    [zsx] z switch max 3 [0=off,1=homing,2=limit,3=limit+homing]
    [zsv] z search velocity 200 mm/min
    [zlv] z latch velocity 100 mm/min
    [zlb] z latch backoff 3.000 mm
    [zzb] z zero backoff 3.000 mm
    [aam] a axis mode 0 [disabled]
    [avm] a velocity maximum 230400 deg/min
    [afr] a feedrate maximum 230400 deg/min
    [atn] a travel minimum -1.000 deg
    [atm] a travel maximum -1.000 deg
    [ajm] a jerk maximum 5760 deg/min^3 * 1 million
    [ajh] a jerk homing 11520 deg/min^3 * 1 million
    [ajd] a junction deviation 0.0500 deg (larger is faster)
    [ara] a radius value 0.1990 deg
    [asn] a switch min 0 [0=off,1=homing,2=limit,3=limit+homing]
    [asx] a switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
    [asv] a search velocity 600 deg/min
    [alv] a latch velocity 100 deg/min
    [alb] a latch backoff 5.000 deg
    [azb] a zero backoff 2.000 deg
    [bam] b axis mode 0 [disabled]
    [bvm] b velocity maximum 3600 deg/min
    [bfr] b feedrate maximum 3600 deg/min
    [btn] b travel minimum -1.000 deg
    [btm] b travel maximum -1.000 deg
    [bjm] b jerk maximum 20 deg/min^3 * 1 million
    [bjd] b junction deviation 0.0500 deg (larger is faster)
    [bra] b radius value 1.0000 deg
    [cam] c axis mode 0 [disabled]
    [cvm] c velocity maximum 3600 deg/min
    [cfr] c feedrate maximum 3600 deg/min
    [ctn] c travel minimum -1.000 deg
    [ctm] c travel maximum -1.000 deg
    [cjm] c jerk maximum 20 deg/min^3 * 1 million
    [cjd] c junction deviation 0.0500 deg (larger is faster)
    [cra] c radius value 1.0000 deg
    [p1frq] pwm frequency 100 Hz
    [p1csl] pwm cw speed lo 1000 RPM
    [p1csh] pwm cw speed hi 2000 RPM
    [p1cpl] pwm cw phase lo 0.125 [0..1]
    [p1cph] pwm cw phase hi 0.200 [0..1]
    [p1wsl] pwm ccw speed lo 1000 RPM
    [p1wsh] pwm ccw speed hi 2000 RPM
    [p1wpl] pwm ccw phase lo 0.125 [0..1]
    [p1wph] pwm ccw phase hi 0.200 [0..1]
    [p1pof] pwm phase off 0.100 [0..1]
    [g54x] g54 x offset 99.734 mm
    [g54y] g54 y offset -270.000 mm
    [g54z] g54 z offset -21.000 mm
    [g54a] g54 a offset 0.000 deg
    [g54b] g54 b offset 0.000 deg
    [g54c] g54 c offset 0.000 deg
    [g55x] g55 x offset 75.000 mm
    [g55y] g55 y offset 75.000 mm
    [g55z] g55 z offset 0.000 mm
    [g55a] g55 a offset 0.000 deg
    [g55b] g55 b offset 0.000 deg
    [g55c] g55 c offset 0.000 deg
    [g56x] g56 x offset 0.000 mm
    [g56y] g56 y offset 0.000 mm
    [g56z] g56 z offset 0.000 mm
    [g56a] g56 a offset 0.000 deg
    [g56b] g56 b offset 0.000 deg
    [g56c] g56 c offset 0.000 deg
    [g57x] g57 x offset 0.000 mm
    [g57y] g57 y offset 0.000 mm
    [g57z] g57 z offset 0.000 mm
    [g57a] g57 a offset 0.000 deg
    [g57b] g57 b offset 0.000 deg
    [g57c] g57 c offset 0.000 deg
    [g58x] g58 x offset 0.000 mm
    [g58y] g58 y offset 0.000 mm
    [g58z] g58 z offset 0.000 mm
    [g58a] g58 a offset 0.000 deg
    [g58b] g58 b offset 0.000 deg
    [g58c] g58 c offset 0.000 deg
    [g59x] g59 x offset 0.000 mm
    [g59y] g59 y offset 0.000 mm
    [g59z] g59 z offset 0.000 mm
    [g59a] g59 a offset 0.000 deg
    [g59b] g59 b offset 0.000 deg
    [g59c] g59 c offset 0.000 deg
    [g92x] g92 x offset 0.000 mm
    [g92y] g92 y offset 0.000 mm
    [g92z] g92 z offset 0.000 mm
    [g92a] g92 a offset 0.000 deg
    [g92b] g92 b offset 0.000 deg
    [g92c] g92 c offset 0.000 deg
    [g28x] g28 x position 0.000 mm
    [g28y] g28 y position 0.000 mm
    [g28z] g28 z position 0.000 mm
    [g28a] g28 a position 0.000 deg
    [g28b] g28 b position 0.000 deg
    [g28c] g28 c position 0.000 deg
    [g30x] g30 x position 0.000 mm
    [g30y] g30 y position 0.000 mm
    [g30z] g30 z position 0.000 mm
    [g30a] g30 a position 0.000 deg
    [g30b] g30 b position 0.000 deg
    [g30c] g30 c position 0.000 deg

    If you could test it, would be great.
    Here is a Gcode file
    https://drive.google.com/file/d/0B_96INML2p-FakdMZDNiUkN4VUk/view?usp=sharing

    #8179
    V e S
    Member

    Here is a link for $$ data but in txt file. i guess it will be more clear.

    https://drive.google.com/file/d/0B_96INML2p-FenozNGswakowdXM/view?usp=sharing

    BR,
    V

    #8180
    cmcgrath5035
    Moderator

    Only thing that looks strange in your parameter set are values of $xjm and $yjm, suggested values would be = 5000, rather than 100.

    Give that a try

Viewing 8 posts - 16 through 23 (of 23 total)
  • You must be logged in to reply to this topic.