Duet 3 delta xy not square
sylvaindc last edited by
I recently upgraded from a Duet 0.6 to the new Duet 3.
I got the printer to work, but my prints are not square in the xy plane, definitely less so than with the duet 0.6
Since this is a delta printer, I assume it has to be software (also, since it worked fine with the older board).
Any suggestions what could cause this on my delta printer?
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Nov 02 2020 22:58:05 GMT+0100 (Central European Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name M665 R173 L350 B130 H470.20 ; Set delta radius, diagonal rod length, printable radius and homed height M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z160.00 E401.44 ; set steps per mm M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z18000.00 E1200.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z0 S1 ; set minimum Z ; Endstops M574 X2 S1 P"io0.in" ; configure active-high endstop for high end on X via pin io0.in M574 Y2 S1 P"io1.in" ; configure active-high endstop for high end on Y via pin io1.in M574 Z2 S1 P"io2.in" ; configure active-high endstop for high end on Z via pin io2.in ; Z-Probe ;M558 P1 C"io6.in" H5 F60 T6000 ; set Z probe type to unmodulated and the dive height + speeds M558 P1 C"io6.in" H5 F120 T6000 A5 S0.03 ; Set Z probe type to unmodulated and the dive height + speeds. Prod 5 times max to reach 0.03 tollerance https://forum.duet3d.com/topic/11412/dc42-ir-probe-readings-not-consistent/4 ;M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P500 X0 Y0 Z2.3410 ; set Z probe trigger value, offset and trigger height - https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer M557 R85 S10 ; define mesh grid ; Heaters (see: https://duet3d.dozuki.com/Wiki/Connecting_thermistors_or_PT1000_temperature_sensors) ;M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 ;M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M307 H0 A89.9 C101.4 D2.8 V24.2 B0 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ;M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M307 H1 A346.6 C140.0 D2.4 S1.0 V24.2 B0 ;Heater 1 model: gain 346.6, time constant 140.0, dead time 2.4, max PWM 1.00, calibration voltage 24.2, mode PID ; Fans M950 F0 C"out7" Q10 ; create fan 0 on pin out7 and set its frequency M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory
there is no config-override.g file
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6JKDL-3S86R-183QF Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 154604 Dynamic ram: 161756 of which 108 recycled Exception stack ram used: 224 Never used ram: 76524 Tasks: NETWORK(ready,1980) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,204) MAIN(running,5064) IDLE(ready,76) Owned mutexes: === Platform === Last reset 00:00:37 ago, cause: software Last software reset at 2020-11-03 00:24, reason: User, spinning module LinuxInterface, available RAM 76044 bytes (slot 0) Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN Error status: 0 MCU temperature: min 28.2, current 28.6, max 28.7 Supply voltage: min 24.2, current 24.3, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.1, max 12.2, under voltage events: 0 Driver 0: standstill, reads 50024, writes 14 timeouts 0, SG min/max 0/0 Driver 1: standstill, reads 50024, writes 14 timeouts 0, SG min/max 0/0 Driver 2: standstill, reads 50025, writes 14 timeouts 0, SG min/max 0/0 Driver 3: standstill, reads 50025, writes 14 timeouts 0, SG min/max 0/0 Driver 4: standstill, reads 50029, writes 11 timeouts 0, SG min/max 0/0 Driver 5: standstill, reads 50029, writes 11 timeouts 0, SG min/max 0/0 Date/time: 2020-11-03 00:25:10 Slowest loop: 4.12ms; fastest: 0.14ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP* is ready with "M122" 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 SBC is idle in state(s) 0 Daemon* is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 1.43ms; fastest: 0.01ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 0 of 8 - Ethernet - State: disabled Error counts: 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === CAN === Messages sent 101, longest wait 0ms for type 0 === Linux interface === State: 0, failed transfers: 0 Last transfer: 22ms ago RX/TX seq numbers: 808/810 SPI underruns 0, overruns 0 Number of disconnects: 1 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.1.1 Trigger: Finishing macro config.g, started by system > Next stack level Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 27.99
What are you doing for calibration?
Veti last edited by
there is no config-override.g file
please run the calibration and save it with M500
sylvaindc last edited by
@Phaedrux everything therr, except making sure it's all squared apparently...
So back to squaring
lord binky last edited by
To what degree is it not square?
If you're under .5mm of X/Y distance, you'll be looking for something you think it insignificant or really small value changes in the configuration. I've seen .2-.3 mm differences clear up with a brand new nozzle (and come back the first time I run it into the bed...lol).
The auto calibration can account for many slightly off values that are not the squareness of the frame (and really you're not going to try to physically adjust for 1% tower placements for example). There's also movement based mechanical issues so belt tightness, carriage movement, arm joints can also play havok with this too. Static mechanical issues such as the arms themselves being as close to the exact same length as possible is important, if you have different lengths within a pair you'll add twist to the effector, which you don't have calibration adjustments for, but if you have them exactly the same within pairs and different between the towers you can compensate for this software wise as well.