DIY Delta Auto Calibration Problem

  • Hi,

    I've just built a large delta with the smart effector and I'm trying to run auto calibration but seem to be having an issue.

    I run G32 which then homes all 3 axis and then moves down to probe the bed which it seems to do fine. Once complete my XYZ coordinates all show as 9999.90 in DWC and Panel Due and I get

    Calibrated 6 factors using 10 points, deviation before 6.500 after nan

    Pretty sure "nan" is not supposed to be there. When I enter M665 and M666 I get the following.

    Diagonal 360.220, delta radius nan, homed height nan, bed radius 150.0, X nan°, Y nan°, Z 0.000°
    Endstop adjustments Xnan Ynan Znan, tilt X0.00% Y0.00%

    Any help would be great bed config and homedelta below

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v2 on Sun Dec 09 2018 15:07:18 GMT+0000 (Greenwich Mean Time)
    ; General preferences
    G90                                                ; Send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M665 R216 L360.22 B150 H457                        ; 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
    ; Network
    M550 P"Kossel MAX"                                 ; Set machine name
    M551 P"snakes:                                     ; Set password
    M552 S1                                            ; Enable network
    M587 S"TNCAPE212AD" P"98FEA769BB" I10.0.0.10 J10.0.0.1 K255.255.255.0 ; Configure access point and IP addresses. You can delete this line once connected
    M586 P0 S1                                         ; Enable HTTP
    M586 P1 S0                                         ; Disable FTP
    M586 P2 S0                                         ; Disable Telnet
    ; Drives
    M569 P0 S0                                         ; Drive 0 goes forwards
    M569 P1 S0                                         ; Drive 1 goes forwards
    M569 P2 S0                                         ; Drive 2 goes forwards
    M569 P3 S1                                         ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1                            ; Configure microstepping with interpolation
    M92 X200.00 Y200.00 Z200.00 E817.14                ; 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.00 Y1000.00 Z1000.00 E800.00 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 Y2 Z2 S1                                   ; Set active high endstops
    ; Z-Probe
    M558 P5 R0.4 H5 F1200 T6000                        ; Set Z probe type to effector and the dive height + speeds
    M558 H30                                           ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
    G31 P100 X0 Y0 Z-0.1                                ; Set Z probe trigger value, offset and trigger height
    M557 R150 S20                                      ; Define mesh grid
    ; Heaters
    M307 H0 B0 S1.00                                   ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B3950 R4700                        ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                                       ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4388 C7.060000e-8 R4700           ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                                       ; Set temperature limit for heater 1 to 280C
    ; Fans
    M106 P0 S1 I0 F500 H T45                           ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S1 I0 F500 H1 T45                          ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ; Tools
    M563 P0 S"E3D V6" D0 H1                            ; 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
    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
    ; Custom settings are not configured
    ; Miscellaneous
    M501                                               ; Load saved parameters from non-volatile memory
    ; homedelta.g
    ; called to home all towers on a delta printer
    ; generated by RepRapFirmware Configuration Tool v2 on Sun Dec 09 2018 15:07:18 GMT+0000 (Greenwich Mean Time)
    G91                       ; relative positioning
    ;*** Slow homing has been configured. Change F180 to F1800 below when your configuration is working
    G1 S1 X365 Y365 Z365 F1800 ; move all towers to the high end stopping at the endstops (first pass)
    G1 X-5 Y-5 Z-5 F1800 S2   ; go down a few mm
    ;*** Slow homing has been configured. Change F180 to F360 below when your configuration is working
    G1 S1 X10 Y10 Z10 F180    ; 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
    ; bed.g
    ; called to perform automatic delta calibration via G32
    ; generated by RepRapFirmware Configuration Tool v2 on Tue Dec 11 2018 18:55:20 GMT+0000 (Greenwich Mean Time)
    M561 ; clear any bed transform
    G28  ; home all towers
    ; Probe the bed at 6 peripheral and 3 halfway points, and perform 6-factor auto compensation
    ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
    G30 P0 X0 Y149.9 H0 Z-99999
    G30 P1 X129.82 Y74.95 H0 Z-99999
    G30 P2 X129.82 Y-74.95 H0 Z-99999
    G30 P3 X0 Y-149.9 H0 Z-99999
    G30 P4 X-129.82 Y-74.95 H0 Z-99999
    G30 P5 X-129.82 Y74.95 H0 Z-99999
    G30 P6 X0 Y74.9 H0 Z-99999
    G30 P7 X64.87 Y-37.45 H0 Z-99999
    G30 P8 X-64.87 Y-37.45 H0 Z-99999
    G30 P9 X0 Y0 H0 Z-99999 S6
    ; Use S-1 for measurements only, without calculations. Use S4 for endstop heights and Z-height only. Use S6 for full 6 factors
    ; If your Z probe has significantly different trigger heights depending on XY position, adjust the H parameters in the G30 commands accordingly. The value of each H parameter should be (trigger height at that XY position) - (trigger height at centre of bed)

  • @richardmckenna said in DIY Delta Auto Calibration Problem:

    M665 R216 L360.22 B150 H457

    Your starting M665 is pretty close to physically impossible.

    B150 = Bed Radius 150mm.

    R216 = Delta Radius 215mm. This is the HORIZONTAL distance from rod-joint to rod-joint.

    It is almost impossible for R to be that much larger than B radius. The towers would have to be very distant from the edge of the bed. And if they were that distant, the effector wouldn't be able to reach all of the bed with the diagonal rod length specified. Etc, etc.

    Assuming your rod length and bed radius are correct, try starting with a delta radius of in the area of 155 to 165. Auto-cal will set the final accurate number of this for you. (Although I can't remember sitting here if a 6 factor sets R... it may take a 7 or 8 factor...)

    You may want to run auto-cal several times. If R is not changing, generate a 7 or 8 factor file. Once you've set that, you can run the 6 factor on a "before every print" basis.

  • administrators

    That's right, in the M665 command R plus B cannot exceed L. Typically, R is about half of L, and B is a little lower than R. So if L is the measured length of the rods between bearing centres, and the nozzle really can reach all points within distance B from the centre, you must have R set too high.

  • Thanks both, yes I measured the delta radius from the center of the effector which obviously I now realise is wrong. Measuring from ball to ball centers I get a distance of 200mm which now meets the requirements of R+B <= L.

    I'm now able to calibrate and I'm pleasantly surprised how accurte my build seems to be. However it has highlighted a problem with my cariage design which pops the ball connection off slightly at the extreams of the bed radius. Reducing my bed radius slightly fixes that temporaraly, so they will be the first thing I re-print with more clearance when I've tuned the heaters.

    Very exciting, I've nearly finished my large delta build 🙂

Log in to reply