Duet2 WiFi generating polygons instead of circles
-
@flopes This is the g code that fails:
....
G01 Z0 F6.
G01 X.087 Y-.064 Z0 F4.
G03 X.087 Y.064 Z0 I0 J.064 F4.
G01 X0 Y.064 Z0 F4.
G03 X0 Y-.064 Z0 I0 J-.064 F4.
G01 X.043 Y-.064 Z0 F4.
..... -
@flopes the minimum length for segments that make up arcs is currently set at 0.1mm. We should perhaps revise that value for situations with high steps/mm, low feed rates and small arc radius.
-
@dc42
Hi
Is there a quick fix, or something easily changeable in the firmware to get to produce arches of 5microns?
My printer is only 10cm by 10cm so I don't mind sacrificing the maximum length if that means increasing resolution
Thanks -
@flopes The first obround is 100micron tall by 300 wide
-
@flopes Our feed is 6mm/min!
-
@flopes Also there is some uncertainty on the position of some features of about 25micron.
We cut panels with 100 devices like this -
@flopes Some features are aligned most of time. IT IS NOT STEPPER MISSING STEPS.
-
@flopes Most devices cut like this
Any help on the matter would be greatly appreciated -
@flopes one option to try would be to setup the config as if the printer was 10* bigger, then set the microstepping to 64 instead of 8, and the steps/mm to an appropriately adjusted value. The idea being that the limit of 0.1mm segments would then be 0.01mm in reality due to the 10x scaling.
-
@T3P3Tony
Scaling 10:1 is how I have been operating. Do you know what is the minimum positioning resolution of the Duet2?
I know It responds to G21G91G1X0.001 with 1 micron displacement, but would the motion control allow for such fine positioning? Could I laser drill a grid 5micron by 5micron?My tests show about 25micron uncertainty on the position of a cut, but once the cut starts, it can be very precise (5micron?)
-
@flopes you are limited by the step resolution. If you have been operating at a 10:1 scaling then switch to a 100:1 as a work around for now.
-
@T3P3Tony Thanks. I will run a test
-
@T3P3Tony
It seems to work fine. Polygons are gone at 100X. Error in mispositioning improved as well. May be good enough. Please advise when you will increase board resolution
Thanks
Fernando -
-
@flopes thanks for the update. I don't have a timescale for changing the arc segmentation resolution right now, possibly it needs to be configurable as while you are controlling motion in the micrometer range, there are other uses working in the meter range!
-
@dc42
Hi
Can you instruct me to increase the resolution so it does smaller radiuses? I need 30x more resolution than standard, or 3 micron radius. My machine is super slow, with a small pritable area of 100x100mm, so I am not concerned about the other end of the spectrum. Thanks -
@flopes please can you clarify what are your actual X and Y steps/mm, before you do the x10 or x100 conversion?
BTW the reason for the late response is that this thread was marked as "solved" so I was ignoring it. Posting to a thread marked as solved is not a good idea . You should either marked the thread as "unsolved" again (which you can do if you are the thread author) or start a new thread.
-
-
-
@dc42 Done. Any tips on where I should start?
-
@flopes said in Duet2 WiFi generating polygons instead of circles:
@dc42 Done. Any tips on where I should start?
Not sure what you mean. @dc42 asked you to clarify what are your actual X and Y steps/mm, before you do the x10 or x100 conversion. Maybe post your current config.g and firmware version. As far as I'm aware there has been no change in the arc segmentation resolution in the latest firmware versions.
Ian
-
@flopes I've reduced the minimum arc segment length from 0.1 to 0.02mm in 3.5.0-beta.4. Perhaps that will go some way to resolving this for you? I'm still waiting to know what steps/mm you are using.
-
@droftarts Thank you very much for your reply.
I am using today (with my 30x version, meaning to cut 1mm, I send a 30mm long cut command)
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Wed Jun 14 2023 09:27:16 GMT-0700 (Pacific Daylight Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Laser Cutter" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S1 ; physical drive 0 goes forwards
M569 P1 S0 ; physical drive 1 goes backwards
M569 P2 S1 ; physical drive 2 goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X8 Y8 Z8 E8 I0 ; configure microstepping without interpolation
M92 X53.33 Y53.33 Z53.33 E1.00 ; set steps per mm
M566 X660.00 Y660.00 Z660.00 E6.00 ; set maximum instantaneous speed changes (mm/min)
M203 X19800.00 Y19800.00 Z19800.00 E6.00 ; set maximum speeds (mm/min)
M201 X300.00 Y300.00 Z300.00 E1.00 ; set accelerations (mm/s^2)
M906 X1000 Y1000 Z1000 E300 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S1 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z-600 S1 ; set axis minima
M208 X3300 Y3300 Z2265.6 S0 ; set axis maxima; Endstops
M574 X2 S1 P"!^xstop" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin !^xstop
M574 Y1 S1 P"!^ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !^ystop
M574 Z2 S1 P"!^zstop" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin !^zstop; Z-Probe
M558 P0 H0 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X5:100 Y5:100 S5 ; define mesh grid; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off; Tools
M563 P0 S"Z Pogo" D0 H1 F0 ; define tool 0
G10 P0 X5 Y5 Z5 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
M563 P1 S"Laser" F0 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C; Custom settings
;(30x); Miscellaneous
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss