Delta Calibration Not Completing
My custom delta build is almost complete, but I'm having a weird issue with performing the Delta Calibration. A few weeks ago I had no issues with this, and now it's not working anymore and I'm not sure how to fix it.
I'm using a Duet 3 6HC in SBC mode with a Duet3D Smart Effector with firmware 3.2.0 beta 2 from the unstable repository and all other packages up to date.
While doing the calibration, the print head will often tap the same location 2-3 times, then skip the next point or two in the sequence. It doesn't matter if I set it to 3-3-1 or 12-6-1 or any other number of probing points in between, or whether I'm doing a 6-factor or 8-factor or any other calibration, the issue persists every time. At the end of the calibration attempt, I get either no feedback at all, or some very random error messages like:
"Error: Bed calibration : 6 factor calibration requested but only X points provided" (the number of points provided changes every time, is often 0)
I can confirm that the LED on the Smart Effector is flashing every time it taps the bed. I've got a REALLY consistent trigger height at every location I've tested manually. I really don't get what I'm doing wrong.
Here is my config.g file:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M665 L600:600:600 R305 H774 B290 ; Set delta radius, diagonal rod length, printable radius and homed height M666 X0.533 Y0.079 Z-0.612 ; put your endstop adjustments here, or let auto calibration find them ; Drives M569 P0.0 S1 V100 ; physical drive 0.0 goes forwards M569 P0.1 S0 V46 ; physical drive 0.1 goes backwards M569 P0.2 S0 V46 ; physical drive 0.2 goes backwards M569 P0.3 S0 V46 ; physical drive 0.3 goes backwards M584 E0.0 X0.1 Y0.2 Z0.3 ; set drive mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M350 E8 I0 ; extruder X8 microstepping with no interpolation M92 X160.00 Y160.00 Z160.00 E1900 ; set steps per mm M566 X1200.00 Y1200.00 Z1200.00 E6 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z12000.00 E2400 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z1000.00 E120 ; set accelerations (mm/s^2) M906 X1400 Y1400 Z1400 E400 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z-3 S1 ; set minimum Z ; Endstops M574 X2 S1 P"io1.in" ; configure active-high endstop for high end on X via pin io1.in M574 Y2 S1 P"io2.in" ; configure active-high endstop for high end on Y via pin io2.in M574 Z2 S1 P"io3.in" ; configure active-high endstop for high end on Z via pin io3.in ; Z-Probe M558 P8 R0.4 C"io5.in+io5.out" H5 F1200 T6000 ; set Z probe type to effector and the dive height + speeds G31 P100 X0 Y0 Z-0.14 ; set Z probe trigger value, offset and trigger height M557 R280 S80 ; define mesh grid ; Heaters M308 S2 P"temp2" Y"thermistor" T100000 B4138 A"Bed" ; configure sensor 2 as thermistor on pin temp2 M950 H0 C"out2" T2 ; create bed heater output on out2 and map it to sensor 2 M307 H0 B0 S1.00 F10 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S170 A0 ; set temperature limit for bed M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.196220e-7 A"Hotend" ; 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 nozzle heater and set PWM limit M143 H1 S425 A0 ; set temperature limit for nozzle M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Chamber Monitor" ; configure sensor 0 as thermistor on pin temp 0 M308 S3 P"temp3" Y"thermistor" T100000 B4138 R4400 A"Chamber Heaters" ; configure sensor 3 as thermistor on pin temp3 (2 connected in series) M950 H2 C"out3" T3 ; create chamber heater output on out3 and map it to sensor 3 M307 H2 B0 S1.00 F10 ; disable bang-bang mode for the chamber heater and set PWM limit M141 H2 ; map chamber to heater 2 M143 H2 T0 A2 S120 ; set temperature limit for chamber based on secondary probe M308 S4 Y"drivers" A"Drivers" ; configure sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet M308 S5 Y"mcu-temp" A"MCU" ; configure sensor 5 as thermistor on pin eltemp for left stepper ; Fans M950 F0 C"out8" Q500 ; create fan 0 on pin out8 and set its frequency M106 P0 S0 H-1 C"Part cooling" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out7" Q500 ; create fan 1 on pin out7 and set its frequency M106 P1 H1 T45 C"Hotend" ; set fan 1 value. Thermostatic control is turned on M950 F2 C"!out4" Q2500 ; create fan 2 on pin out4 and set its frequency M106 P2 H4:5 L0.50 X1 B0.3 T35:50 C"Electronics" ; set fan 2 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 R0 S0 ; set tool 0 axis offsets and set active and standby temperatures to 0C ; Custom settings M207 S1.5 F900 ; firmware retraction M376 H10 ; taper off bed compensation by 5mm height ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool
(the M666 commands are derived from a previous auto calibration I performed successfully weeks ago)
Here's the current bed.g file, though I've gone through countless permutations at this point:
M561 ; clear any bed transform G28 ; home all towers ; bed.g file for RepRapFirmware, generated by Escher3D calculator ; 16 points, 6 factors, probing radius: 280, probe offset (0, 0) G30 P0 X0 Y279.9 H0 Z-99999 G30 P1 X242.4 Y-139.95 H0 Z-99999 G30 P2 X-242.4 Y-139.95 H0 Z-99999 G30 P3 X0 Y139.9 H0 Z-99999 G30 P4 X121.16 Y-69.95 H0 Z-99999 G30 P5 X-121.16 Y-69.95 H0 Z-99999 G30 P6 X0 Y0 H0 Z-99999 S6 ;G29 S1 ; load current bed mesh compensation map
And this is my homedelta.g file, since that gets called by bed.g:
; homedelta.g ; called to home all towers on a delta printer ; G91 ; relative positioning G1 H1 X1305 Y1305 Z1305 F6000 ; move all towers to the high end stopping at the endstops (first pass) G1 H2 X-5 Y-5 Z-5 F1800 ; go down a few mm G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass) ;G1 Z-5 F6000 ; move down a few mm so that the nozzle can be centred G90 ; absolute positioning ;G1 X0 Y0 F6000 ; move X+Y to the centre
There are no M665 or M666 commands in my config-override.g since that's what I'm trying to generate with auto calibration.
jay_s_uk last edited by
That sounds like the issues with beta 2 rather than your setup.
Either roll back to 3.1.1 or wait for beta 3 to be released.
GoremanX last edited by GoremanX
Ugh, I already tried that and it's not trivial. My SD card is super difficult to get to right now, otherwise I'd just flash a new image. If it is something wrong with beta 2, I haven't seen any activity about it in github, so it's likely something that still needs fixing. I'd like to hear from the devs to confirm or deny it.
jay_s_uk last edited by
It's to do with macros that are called being processed out of order.
I reported it pretty much as soon as beta 2 was released last month. It's also covered in the release notes for the imminent beta 3.
Beta 3 was due on Monday but that got missed...
@jay_s_uk When I tried to revert the software back to 3.1.1, I was having issues with DCS connecting to the board. Am I correct in assuming that this is caused by the board firmware being at 3.2 and not being compatible with 3.1.1 software on the SBC? Can I downgrade the firmware before downgrading the software packages?
jay_s_uk last edited by jay_s_uk
Yes, that's correct. They changed the SPI protocol in beta 2 and it can't connect to any version of DSF below that.
To downgrade from beta 2 to anything beneath you must first downgrade the firmware on the board to the version you are aiming for.
After that, you can downgrade the software on the pi
@jay_s_uk Thank you!
That works as expected now and I was able to complete the calibration