Delta calibration failed



  • Hi all,
    I have this delta printer.
    0_1551027629792_k250vs_bse__74539.1448594807.1280.1280.jpg

    I have replaced the defective Azteeg X5 mini by the DUET3D 2 WiFi.
    After calibrated the printer I'm only able to print small parts, since the calibration is not good on the edge of the bed.

    I made a video to clearly explain the situation. The resolution of the micrometer is 0.01mm. Which means that the difference between the max and min height after calibration is about 0.6mm on the edge of the bed.

    https://dai.ly/k3UsOmQYkj40dtsYV26

    Here is my beg.g

    M561						; clear any bed transform, otherwise homing may be at the wrong height
    G31 X0 Y0					; don't want any probe offset for this
    G28							; home the printer
    
    ;*** Remove the following line if your Z probe does not need to be deployed
    ;M98 Pdeployprobe.g			; deploy the mechanical Z probe
    
    ; The first time the mechanical probe is used after deployment, it gives slightly different results.
    ; So do an extra dummy probe here. The value stored gets overwritten later. You can remove this if you use an IR probe.
    ;G30 P0 X0 Y0 Z-99999
    
    ; Probe the bed and do 6- or 7-factor auto calibration
    G30 P0 X-86.60 Y-50.00 Z-99999 ;H-0.04	; Pos 1 X tower
    G30 P1 X0.00 Y-100.00 Z-99999 ;H0.054	; Pos 2 between X-Y towers
    G30 P2 X86.60 Y-50.00 Z-99999 ;H-0.055	; Pos 3 Y tower
    G30 P3 X86.60 Y50.00 Z-99999 ;H.023	; Pos 4 between Y-Z towers
    G30 P4 X0.00 Y100.00 Z-99999 ;H0.019	; Pos 5 Z tower
    G30 P5 X-86.60 Y50.00 Z-99999 ;H0.058	; Pos 6 between Z-X towers
    G30 P6 X-43.30 Y-25.00 Z-99999 ;H0.008	; Pos 7 X tower
    G30 P7 X0.00 Y-50.00 Z-99999 ;H0.027	; Pos 8 between X-Y towers
    G30 P8 X43.30 Y-25.00 Z-99999 ;H0.018	; Pos 9 Y tower
    G30 P9 X43.30 Y25.00 Z-99999 ;H0.023	; Pos 10 between Y-Z towers
    G30 P10 X0.00 Y50.00 Z-99999 ;H0.044	; Pos 11 Z tower
    G30 P11 X-43.30 Y25.00 Z-99999 ;H0.053	; Pos 12 between Z-X towers
    G30 P12 X0 Y0 Z-99999 S9		; center and auto-calibrate 6 factors
    
    ;*** Remove the following line if your Z probe does not need to be retracted
    ;M98 Pretractprobe.g				; retract the mechanical Z probe
    
    G1 X0 Y0 Z150 F15000			; get the head out of the way of the bed
    

    And my config.g

    ; General preferences
    G90                             ; Send absolute coordinates...
    M82				; and absolute extruder moves
    ;M83                             ; ...but relative extruder moves
    ;M555 P1                         ; Set firmware compatibility to look like RepRapFirmare
    M555 P2                         ; Set firmware compatibility to look like Marlin
    
    ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration.
    ;M665 R105.6 L215 B85 H230       ; Set delta radius, diagonal rod length, printable radius and homed height
    ;M665 L290.810 R171.507 H227.139 B114.0 X-0.045 Y-0.138 Z0.000
    ;M666 X0.184 Y-0.468 Z0.284 A0.00 B0.00
    
    ;M665 L292.355 R172.023 H227.087 B114.0 X0.217 Y0.195 Z0.000
    ;M666 X0.113 Y-0.816 Z0.703 A-0.22 B0.24
    
    M665 L290.542 R171.422 H226.851 B114.0 X-0.242 Y-0.211 Z0.000
    M666 X-0.276 Y-0.097 Z0.373 A0.25 B0.14
    
    
    ;CPU temperature correction
    M912 P0 S-1.5
    
    ; Network
    M550 K250VS                    ; Set machine name
    M551 xk250vs                    ; Set password
    M552 S1                         ; Enable network
    ;M586 P0 S1                      ; Enable HTTP
    M586 P1 S0                      ; Disable FTP
    M586 P2 S0                      ; Disable Telnet
    
    ; Drives
    M569 P0 S1                      ; Drive 0 goes forwards
    M569 P1 S1                      ; Drive 1 goes forwards
    M569 P2 S1                      ; Drive 2 goes forwards
    M569 P3 S0                      ; Drive 3 goes backwards
    M350 X16 Y16 Z16 E16 I1         ; Configure microstepping with interpolation
    M92 X200 Y200 Z200 E850         ; Set steps per mm
    M566 X1200 Y1200 Z1200 E1200    ; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E1500 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E500     ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E500 I40 ; 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 P4 H5 F120 T6000           ; Set Z probe type to switch and the dive height + speeds
    M558 P5 X0 Y0 Z0 H.5 I1 T15000 F50
    ;G31 P500 X0 Y0 Z-.189             ; Set Z probe trigger value, offset and trigger height
    G31 P500 X0 Y0 Z-0.25
    
    ; Heaters
    M305 P0 T100000 B4138 C0 R4700  ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                    ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700  ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                    ; Set temperature limit for heater 1 to 280C
    
    M307 H0 A152.3 C416.0 D2.0 S1.00 V23.7 B0
    M307 H1 A393.8 C209.3 D1.7 S0.80 V24.0 B0
    
    ; Fans
    M106 P0 S0 F500 H-1        ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 F500 H1 T40       ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ;M106 P2 S1 I0 F500 H1 T45       ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 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 saving after power loss is not enabled
    
    ; Custom settings are not configured
    
    ; Miscellaneous
    ;T0                              ; Select first tool
    
    ; Mesh Grid
    M557 R120 S30
    
    ;Scale Correction
    ;M579 X1.020 Y1.012 Z1
    M579 X1.013 Y1.01
    

    I guess that defective bed leveling comes from the glass but I did the same test after rotating the glass by 180°, and the issue is still the same.

    Any help will be appreciated.

    Thank you.


  • administrators

    Your dial gauge probe is offset from the nozzle, which means that if you have a geometric error that causes effector tilt (very common in delta printers) then it won't give you an accurate reading of nozzle height. My suggestions:

    1. Measure the FSR trigger height at various points on the bed, not by using the dial probe but but dropping the nozzle until it just grips a piece of paper, sending G92 Z0, raising the nozzle a few mm and using G30 S-1 to measure the trigger height. This is to check that the FSRs are giving you consistent trigger heights.

    2. If the FSR trigger height is consistent, after calibration run G29 to generate a height map. Then the difference between the dial gauge reading and the height map is caused by effector tilt. See https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer#Section_Make_sure_your_build_is_accurate for common causes.



  • Thank you for quick help.

    I already do such calibration for FSRs.

    As you can see in my bed.g, I have commented all the H parameters to do new tests. because even with H parameters I have bad results.

    G30 P0 X-86.60 Y-50.00 Z-99999 ;H-0.04	; Pos 1 X tower
    G30 P1 X0.00 Y-100.00 Z-99999 ;H0.054	; Pos 2 between X-Y towers
    G30 P2 X86.60 Y-50.00 Z-99999 ;H-0.055	; Pos 3 Y tower
    G30 P3 X86.60 Y50.00 Z-99999 ;H.023	; Pos 4 between Y-Z towers
    G30 P4 X0.00 Y100.00 Z-99999 ;H0.019	; Pos 5 Z tower
    G30 P5 X-86.60 Y50.00 Z-99999 ;H0.058	; Pos 6 between Z-X towers
    G30 P6 X-43.30 Y-25.00 Z-99999 ;H0.008	; Pos 7 X tower
    G30 P7 X0.00 Y-50.00 Z-99999 ;H0.027	; Pos 8 between X-Y towers
    G30 P8 X43.30 Y-25.00 Z-99999 ;H0.018	; Pos 9 Y tower
    G30 P9 X43.30 Y25.00 Z-99999 ;H0.023	; Pos 10 between Y-Z towers
    G30 P10 X0.00 Y50.00 Z-99999 ;H0.044	; Pos 11 Z tower
    G30 P11 X-43.30 Y25.00 Z-99999 ;H0.053	; Pos 12 between Z-X towers
    G30 P12 X0 Y0 Z-99999 S9		; center and auto-calibrate 6 factors
    

    I followed as well all the calibration documentation including the possibility of mesh correction.
    Here is the height map result:
    0_1551030976466_Image 624.jpg
    As I already said on my first post, rotating le glass by 180° gives quite the same height map. So I guest that this comes from the frame and not the bed...

    Even with G29 S1 in the config.g, I still not be able to print big part, this is why I decided to replace the duct by a dial gauge probe to try to understand what's wrong.

    Just for fun, I think there is a bug in the mesh process. Changing the mesh grid to 9 points gives me this strange result.
    0_1551031260272_Image 621.jpg

    Thanks


  • administrators

    Looks like you have 6 points around the periphery, 6 points half way, and 1 in the centre. You may get better results with more peripheral points. I use 9 around the periphery, 3 half way, and the centre.

    Yes, that height map looks odd.



  • Ok, I will give a try with this settings.
    Thanks



  • What is the maximum number of points we can set for probing ?
    Does it make sense if I use the maximum ?


  • administrators

    Maximum points in bed.g is 32. Using more points helps if your height map shows substantial errors in places well away from your existing probe points.



  • Hello !
    Using this awesome tool http://escher3d.com/pages/wizards/wizardbed.php , I set 10 points on edge, 3 half way and 1 in the centre.

    G30 P0 X0.00 Y110.00 Z-99999 H0
    G30 P1 X70.71 Y84.26 Z-99999 H0
    G30 P2 X108.33 Y19.10 Z-99999 H0
    G30 P3 X95.26 Y-55.00 Z-99999 H0
    G30 P4 X37.62 Y-103.37 Z-99999 H0
    G30 P5 X-37.62 Y-103.37 Z-99999 H0
    G30 P6 X-95.26 Y-55.00 Z-99999 H0
    G30 P7 X-108.33 Y19.10 Z-99999 H0
    G30 P8 X-70.71 Y84.26 Z-99999 H0
    G30 P9 X0.00 Y55.00 Z-99999 H0
    G30 P10 X47.63 Y-27.50 Z-99999 H0
    G30 P11 X-47.63 Y-27.50 Z-99999 H0
    G30 P12 X0 Y0 Z-99999 S9
    

    Autocalibration result:

    G32
    Calibrated 9 factors using 13 points, deviation before 0.075 after 0.067
    

    Height map result
    0_1551082585355_Image 629.jpg

    This gives different result, but that still sounds not very good 😞



  • @viald I notice that you are using S9 on the last line of your G30's in the bed.g file I think you would do better if you changed that to S6 or S8 S7 and S9 will auto adjust the arm lengths for a best fit and we know that isn't always optimum as I am sure DC will explain.

    Just my thoughts.

    Doug



  • Thank you Doug.
    Here is the result with S6

    0_1551119352831_Image 630.jpg

    Unfortunately, almost the same.



  • @viald that's not actually auto calibration tho that is the result of mesh bed compensation!!



  • You are right, this is the height map calculation after the auto calibration I did
    What information do you what about the autocalibration ?



  • Finally, I set 19 points, 12 on edge, 6 half way and 1 in the center. I also add the trigger height for each point in real condition (head at 210° and bed at 65°)

    G30 P0 X0.00 Y110.00 Z-99999 H-0.092
    G30 P1 X55.00 Y95.26 Z-99999 H-0.024
    G30 P2 X95.26 Y55.00 Z-99999 H-0.005
    G30 P3 X110.00 Y0.00 Z-99999 H-0.073
    G30 P4 X95.26 Y-55.00 Z-99999 H0.03
    G30 P5 X55.00 Y-95.26 Z-99999 H0.011
    G30 P6 X0.00 Y-110.00 Z-99999 H0.026
    G30 P7 X-55.00 Y-95.26 Z-99999 H0.029
    G30 P8 X-95.26 Y-55.00 Z-99999 H0.015
    G30 P9 X-110.00 Y-0.00 Z-99999 H-0.039
    G30 P10 X-95.26 Y55.00 Z-99999 H-0.011
    G30 P11 X-55.00 Y95.26 Z-99999 H-0.072
    G30 P12 X0.00 Y55.00 Z-99999 H-0.05
    G30 P13 X47.63 Y27.50 Z-99999 H-0.015
    G30 P14 X47.63 Y-27.50 Z-99999 H-0.009
    G30 P15 X0.00 Y-55.00 Z-99999 H0.014
    G30 P16 X-47.63 Y-27.50 Z-99999 H0.010
    G30 P17 X-47.63 Y27.50 Z-99999 H-0.025
    G30 P18 X0 Y0 Z-99999 S6
    

    What do you think about the trigger heights ? Is it necessary to add it ?

    Here the autocalibration log

    Calibrated 9 factors using 19 points, deviation before 0.067 after 0.062
    

    The same using S6

    Calibrated 6 factors using 19 points, deviation before 0.065 after 0.064
    

    I don't know what this information means, what could be the conclusion ?
    As Doug said, what is the difference between S6/7/8/9 in G30 command ?

    Thank you.



  • It seems to be good 🙂

    0_1551215903154_IMG_20190226_221625 (Grand).jpg



  • In fact, the first layer is still no so good, so I still try to improve the precision of the Delta.

    I have completely disassembled the delta and check each part.
    I have rebuild it, calibrated again and again for in fact having the same poor calibration result

    G32
    Calibrated 6 factors using 19 points, deviation before 0.068 after 0.067
    

    0_1552839709433_Image 640.jpg

    The default seems to be symmetrical and I have absolutely no idea where it comes from.

    I switched the connection of the stepper and end switch on the board, X ->Y, Y->Z and Z->X, and did another calibration.
    I supposed that the height map will also rotate 90°, actually not, the height map has exactly the same symmetrical default in the same direction 😨

    What could it mean ? This Delta makes me crazy 😳



  • check out http://boim.com/DeltaUtil/CalDoc/Calibration.html for possible reasons for deviation.



  • Thanks. I already read this interesting information, but none of the effects exposed are precisely mine. It seems that my issue is a combination of multiple error effects.

    I think, I should start with the rod length effect. I should precisely manually measure each of them, and check is they are equal.

    But they are about 290mm long and my caliper is not large enough 🤔


  • administrators

    @Viald, have you read https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer#Section_Make_sure_your_build_is_accurate ? A circular (bulls-eye) spirit level mounted on the effector will show up many types of geometric error that can cause height variations.



  • Yes I read it several times. The bulls-eye spirit level is a very good idea, If the result is not correct, I think It won't be easy to interpret the feedback.
    If the bubble is fixed during effector mouvements, the issue clearly comes from the bed, at the opposite it could comes from too many things.

    I'm currently trying to compare rods length with a micrometer. I'm going step by step, because I'm lost.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.