Delta X and Y head position change during Z autocalibration



  • Hello

    I am trying to calibrate the delta printer with Duet2Wifi + Delta Smart Effector + Haydn Magball Rods, following this document:

    https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer

    I send the head to various xy coordinates of my circular 240mm bed (the delta frame is from an Anycubic Kossel Linear Plus), with the Z coordinate at about 5 mm above the bed. In that position, I execute

    G30 S-1

    4 or 5 times, to get multiple readings of the same xy spot, and to make sure the readings are consistent.

    Well, in the web UI I see that the X and Y coordinates of the nozzle changes during those 4-5 probes.

    For instance

    Heat the nozzle to 210C and the bed to 100C;

    G90
    G1 x0 y0 z5
    ; now run the following sequence of two commands 4-5 times
    G30 S-1
    G1 Z5

    then look at the top-left in the web UI. The X and/or Y did not keep their initial position, and also the final value of Z is not 5.

    I did the test for x0 y0 and for other 6 points along the edge of the circular bed (which has 240 mm diameter)

    The results are

    G1 X0 Y0 Z5
    ; average value for the "Stopped at height message" logged in the GCode console is -0.181 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = 0, y = 0.08, z = 4.84

    G1 X0 Y-109 Z5
    ; average value for the "Stopped at height message" logged in the GCode console is +0.170 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = 0, y = -108.94, z = 5.19

    G1 X0 Y+110 z5
    ; average value for the "Stopped at height message" logged in the GCode console is +0.674 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = 0 , y = +110.06, z = 5.57

    G1 X-95 Y+64 z5
    ; average value for the "Stopped at height message" logged in the GCode console is +0.094 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = -94.98, y = 64.06, z = 5.12

    g1 X96 y64 z5
    ; average value for the "Stopped at height message" logged in the GCode console is +1.151 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = 95.98, y = 64.07, z = 6.18

    g1 X96 Y-64 z5
    ; average value for the "Stopped at height message" logged in the GCode console is +0.741 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = 96, y = -63.92, z = 5.77

    g1 X-95 Y-64 z5
    ; average value for the "Stopped at height message" logged in the GCode console is -0.076 mm
    ; final position of the head shown in web GUI after 5 z probes is: x = -95, y = -63.92, z = 4.91

    Is it normal for the x, y and z values to deviate from their theoretical positions ?

    I have 0.9 degrees stepper motors 42BYGHM810 with 20-teeth pulleys and GT2 belts. My config.g is below.

    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M665 R138 L288.14:288.14:288.15 B120 H205 ; 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"..................." ; Set machine name
    M552 S1 ; Enable network
    M587 S".............." P"........................" ; Configure access point. 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 S1 ; Physical drive 0 goes forwards
    M569 P1 S1 ; Physical drive 1 goes forwards
    M569 P2 S1 ; Physical drive 2 goes forwards
    M569 P3 S1 ; Physical drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X160.00 Y160.00 Z160.00 E145.51 ; 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 X3000 Y3000 Z3000 E3000 ; 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 Z-0.1 S1 ; Set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S1 ; Set active high endstops

    ; Z-Probe
    ; M558 P5 R0.4 H10 F1200 T2400 ; Set Z probe type to effector and the dive height + speeds
    M558 P8 R0.4 F1200 T6000 X0 Y0 Z0 H3 ; Z probe is a Smart Effector and is not used for homing any axes R0.4 not used. Reduced F300 to 100
    G31 P100 X0 Y0 Z-0.2 ; Set the zprobe height and threshold for Smart Effector
    M557 R110 S20 ; Define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 S"bed240mm" T85000 B3950 R4700 H30 L0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 S"nozzle" X200 ; Configure PT100 for heater 1
    M143 H1 S240 ; Set temperature limit for heater 1 to 240C

    M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds

    M307 H0 A135.0 C793.3 D0.9 S1.00 V23.8 B0
    M307 H1 A622.9 C269.7 D5.6 S1.00 V23.8 B0

    ; Fans
    M106 P0 S0 I0 F500 H1 T45 ; Set fan 0 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
    M501 ; Load saved parameters from non-volatile memory
    T0 ; Select first tool

    Thanks in advance
    Mihai



  • @mihaitintea said in Delta X and Y head position change during Z autocalibration:

    M665 R138 L288.14:288.14:288.15 B120 H205 ; Set delta radius, diagonal rod length, printable radius and homed height

    I have an AKL+ with a Duet and Smart Effector. SLIGHTLY different rods, I happened to already have a set of 304s from Hayden when I built this printer.

    M665 L304.190 R140.174 H202.010 B110.0 X0.436 Y0.226 Z0.000

    Most of our settings are very close. I appear to be getting quite a bit more B (printable radius).



  • I ran the experiments you described at 0,0 and 0,110. ABSOLUTELY NO unexpected changes in X,Y on the DWC display. During the execution of the G30, I see what I'd expect, movement, probe hits, etc, etc.

    So... not normal... don't know what's going on with yours.

    Here's the dashboard, and the log:

    0_1563054577451_ce8c7927-2057-4c48-9e98-5433adf123b1-image.png

    
    7/13/2019, 4:46:03 PM	G30 S-1
    Stopped at height -0.403 mm
    7/13/2019, 4:45:59 PM	G1 Z5
    7/13/2019, 4:45:59 PM	G1 Z5
    7/13/2019, 4:45:57 PM	G30 S-1
    Stopped at height -0.428 mm
    7/13/2019, 4:45:53 PM	G1 Z5
    7/13/2019, 4:45:50 PM	G30 S-1
    Stopped at height -0.416 mm
    7/13/2019, 4:45:44 PM	G1 Z5
    7/13/2019, 4:45:41 PM	G30 S-1
    Stopped at height -0.403 mm
    7/13/2019, 4:45:37 PM	G1 Z5
    7/13/2019, 4:45:35 PM	G30 S-1
    Stopped at height -0.353 mm
    7/13/2019, 4:45:27 PM	G1 X0 Y+110 Z5
    7/13/2019, 4:44:01 PM	G1 Z5
    7/13/2019, 4:44:00 PM	G1 Z5
    7/13/2019, 4:43:54 PM	G30 S-1
    Stopped at height -0.374 mm
    7/13/2019, 4:43:49 PM	G1 Z5
    7/13/2019, 4:43:44 PM	G1 Z5
    7/13/2019, 4:43:39 PM	G30 S-1
    Stopped at height -0.374 mm
    7/13/2019, 4:43:23 PM	G1 Z5
    7/13/2019, 4:43:23 PM	G1 Z5
    7/13/2019, 4:43:19 PM	G30 S-1
    Stopped at height -0.387 mm
    7/13/2019, 4:43:07 PM	G1 Z5
    7/13/2019, 4:42:58 PM	G30 S-1
    Stopped at height -0.374 mm
    7/13/2019, 4:42:33 PM	G1 X0 Y0 Z5
    

  • administrators

    The trilateration algorithm in firmware 2.03 is incorrect in the case that the first 3 rod lengths in the M665 command are not exactly the same. This probably explains your observation. So I suggest you set them all to be the same until I release 2.04RC1, which is imminent.



  • @dc42 said in Delta X and Y head position change during Z autocalibration:

    bservation. So I suggest you set them all to be the same until I release 2.04RC1, which is i

    Hello. Mr. DC42,

    Thank your so much for your suggestion. Now the X Y values are perfectly constant during the execution of "G30 S-1".

    Also I want to point out something about the autocalibration procedure https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer, and I do that here because the forum topic

    https://forum.duet3d.com/topic/5075/homed-height

    is locked and I cannot post my thanks there.

    That topic seems to be the only place in the whole duet3d website where I could find the following priceless piece of information about using Delta Smart Effector as a nozzle Z Probe:

    "You should not need to use any H parameters on the G30 commands in bed.g when using the Smart Effector, or any other nozzle contact bed probe."

    Oh, my, I wish I've found that info ages ago, that does not seem to pop out very clearly from the autocalibration procedure (https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer). Maybe you could consider updating that document. Adding H corrections to the bed.g file made my iterative autocalibration attempts to diverge increasingly exponential, and my print head was always ramming into the X, Y or Z towers (my Hayden Magball rods didn't break yet, though !)

    After putting H0 everywhere in the bed.g file, instead of whatever H corrections I found during my "G30 S-1" tests at various X Y positions, the autocalibration does not diverge exponentially any more. It always starts from values between 1 and 3-ish, and ends with a value less than 0.05. I cannot tell if successive autocalibration attempts can be called "convergent" because, here are 3 successive attempts:

    Calibrated 6 factors using 16 points, deviation before 0.072 after 0.034
    Calibrated 6 factors using 16 points, deviation before 3.062 after 0.034
    Calibrated 6 factors using 16 points, deviation before 1.234 after 0.032

    Maybe I have a wrong understanding of the convergence concept, or maybe that could be another enunciation that may be corrected in the Duet documentation. Please can you give me feedback on this.

    Anyway, many thanks with the recommendation about M665 L parameter.

    Truly yours,
    Mihai


  • administrators

    @mihaitintea said in Delta X and Y head position change during Z autocalibration:

    Calibrated 6 factors using 16 points, deviation before 0.072 after 0.034
    Calibrated 6 factors using 16 points, deviation before 3.062 after 0.034
    Calibrated 6 factors using 16 points, deviation before 1.234 after 0.032

    There is a bug in firmware 2.03 whereby if the firmware updates the delta radius or the rod length, it adjusts the homed height incorrectly. I think that is what is happening in your case, and explains why the deviation went up from 1.234mm to 3.062mm before coming down again. This bug is fixed in the forthcoming 2.04RC1.


 

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