Duet2 WiFi generating polygons instead of circles
-
Hi. I have a laser cutter with Duet2 performing well for larger features (mm size). However when cutting smaller features (50micron to 100micron) it replaces the archs and circles with straight lines and polygons. The post processor is correctly asking for archs.
I enlarged my part 10x and reduce the by 10 the "steps/mm" and the laser cutter performed very well, and that got me thinking there is a resolution limit on the Duet (of course it must have!). Is there a way to increase the resolution the Duet 2 can work with features sized 10's of microns? ThanksThe post processor puts ou G3 codes. Firmware version 3. Cartesian machine
-
Is your post processor generating G2 arcs?
Firmware version? -
-
-
-
-
-
@flopes please try and reply here again
-
@Phaedrux
Hi
It seems I was not fully registered yet. Now I can replyI have firmware version 3 on the board
Using cartesian machine.
Everything works fine for larger features, but does not work ok for small features as described
Please help
Thnaks -
@flopes please post your config.g and the response to M122. Without some information it is difficult to diagnose where the problem might be.
Ian
-
-
@flopes also please post a section for the gcode with the features that are being output incorrectly in it (not the whole file!)
-
@droftarts This is the M122
m122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.4 (2022-10-20 16:17:41) running on Duet WiFi 1.02 or later
Board ID: 0JD0M-9X6JA-JUNSS-6JKDJ-3SD6J-T9KRU
Used output buffers: 3 of 26 (26 max)
=== RTOS ===
Static ram: 23860
Dynamic ram: 75720 of which 0 recycled
Never used RAM 12356, free system stack 104 words
Tasks: LASER(notifyWait,0.6%,38) NETWORK(notifyWait,193.4%,231) HEAT(notifyWait,1.9%,324) Move(notifyWait,145.5%,294) MAIN(running,152.1%,410) IDLE(ready,12.4%,30), total 505.9%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 90:58:49 ago, cause: software
Last software reset at 2023-03-17 12:46, reason: User, GCodes spinning, available RAM 12312, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00417000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x0c
Aux0 errors 0,0,0
Step timer max interval 0
MCU temperature: min 33.9, current 35.0, max 44.4
Supply voltage: min 19.5, current 19.8, max 20.1, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0
Driver 1: standstill, SG min 0
Driver 2: standstill, SG min 0
Driver 3: standstill, SG min n/a
Driver 4: standstill, SG min n/a
Driver 5:
Driver 6:
Driver 7:
Driver 8:
Driver 9:
Driver 10:
Driver 11:
Date/time: 2023-03-21 07:45:41
Cache data hit count 4294967295
Slowest loop: 17.15ms; fastest: 0.11ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 9.6ms, write time 152.0ms, max retries 0
=== Move ===
DMs created 83, segments created 6, maxWait 366518ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 1214398, completed 1214398, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 21], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty
=== Network ===
Slowest loop: 175.88ms; fastest: 0.00ms
Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
= WiFi =
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 1
WiFi firmware version 1.27
WiFi MAC address 48:3f:da:a6:ee:bb
WiFi Vcc 3.46, reset reason Power up
WiFi flash size 2097152, free heap 22296
WiFi IP address 192.168.10.76
WiFi signal strength -65dBm, mode 802.11n, reconnections 0, sleep mode modem
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0 -
@droftarts This is the config.g
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Mar 17 2023 12:42:29 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 X160.00 Y160.00 Z160.00 E1.00 ; set steps per mm
M566 X60.00 Y60.00 Z60.00 E6.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6600.00 Y6600.00 Z6600.00 E6.00 ; set maximum speeds (mm/min)
M201 X10.00 Y10.00 Z10.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-200 S1 ; set axis minima
M208 X1100 Y1100 Z755.2 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 are not defined
; 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 -
@flopes This is actually the config.g when I enlarged the part 10x and tricked my printer to print 10x smaller with success.
-
@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.