Delta Calibration with mini IR probe

  • I put new arms on my delta, going from injection molded arms to CF. I adjusted the rod length in my config.g, re-did my height offsets… and my calibration went from a 0.05 to a 0.15 or so.

    I took the time today to paint the bottom of my glass with high temp matte black paint & cured it in the oven. Retested, and am getting the same kind of deviation.

    Here are my results after 3 rounds of auto-calibration (each probe point has a height offset), using 10 probe points and calibrating 6 factors.

    Diagonal 300.150, delta radius 143.921, homed height 373.207, bed radius 150.0, X -0.095°, Y 0.482°, Z 0.000°
    Endstop adjustments X-0.61 Y1.57 Z-0.96, tilt X0.00% Y0.00%

    After doing that, I change the S6 in my bed.g to a S-1, and ran 5 rounds of it to check the consistency, here's what I got:

    Here is my bed.g:

    G30 P0 X0.00 Y135.00 Z-99999 H0.07; 2.34
    G30 P1 X116.91 Y67.50 Z-99999 H-0.33; 1.94
    G30 P2 X116.91 Y-67.50 Z-99999 H-0.31; 1.96
    G30 P3 X0.00 Y-135.00 Z-99999 H0.18; 2.45
    G30 P4 X-116.91 Y-67.50 Z-99999 H0.31; 2.58
    G30 P5 X-116.91 Y67.50 Z-99999 H0.33; 2.60
    G30 P6 X0.00 Y67.50 Z-99999 H-0.04; 2.23
    G30 P7 X58.46 Y-33.75 Z-99999 H-0.11; 2.16
    G30 P8 X-58.46 Y-33.75 Z-99999 H0.18; 2.45
    G30 P9 X0 Y0 Z-99999 S6 ;2.24

    And the probe setup from config.g
    M558 P1 X0 Y0 Z0 ; Z probe is an IR probe and is not used for homing any axes
    G31 X0 Y0 Z2.27 P500 ; Set the zprobe height and threshold (put your own values here); 1.2
    M556 S78 X0 Y0 Z0 ; Axis compensation here

    Clearly things are showing a higher reading at each of my towers, and a low reading opposite them. Any advice on how to chase this down?

    I've verified with two different squares, and a digital angle gauge that all 3 towers are level to the bed, and to the frame of the printer. I verified they're equal distances from each other at the top and bottom (using calipers to measure between the towers).

    I do see I have effector tilt in my height offsets, Haven't figured out why yet.

    Thanks for any advice!

  • Just in case it's helpful, my config.g

    ; Configuration file for Rostock Max v2
    ; Communication and general
    M111 S0 ; Debug off
    M550 Rostock Max V2 ; Machine name and Netbios name (can be anything you like)
    M551 Preprap ; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
    ;*** Wifi Networking
    M552 S1 ; Enable WiFi

    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves

    ; Axis and motor configuration
    M569 P0 S0 ; Drive 0 goes forwards (X)
    M569 P1 S1 ; Drive 1 goes forwards (Y)
    M569 P2 S0 ; Drive 2 goes forwards (Z)
    M569 P3 S0 ; Drive 3 goes forwards (E0)
    M569 P4 S1 ; Drive 4 goes forwards (E1)
    M574 X2 Y2 Z2 S1 ; set endstop configuration (all endstops at high end, active high)

    ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
    ;M665 R143.271 L291.060 B150 H384.866 ; delta radius, diagonal rod length (from seemecnc default), printable radius and homed height (Injection molded arms)
    M665 R143.271 L300.15 B150.0 H373.0 ; delta radius, diagonal rod length, printable radius, homed height (tricklaser CF arms)
    M666 X-0.28 Y0.70 Z-0.42 ; endstop adjustments from auto calibration

    M350 X16 Y16 E16 I1 ; Set 16x microstepping with interpolation
    M92 X80 Y80 Z80 ; Set axis steps/mm
    M906 X1000 Y1000 Z1000 E1000 I60 ; Set motor currents (mA) and increase idle current to 60%
    M201 X1500 Y1500 Z1500 E5000 ; Accelerations (mm/s^2)
    M203 X21000 Y21000 Z21000 E7500 ; Maximum speeds (mm/min)
    M566 X1750 Y1750 Z1750 E1750 ; Maximum instant speed changes mm/minute

    ; Thermistors
    M305 P0 T100000 B4450 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction 3950
    M305 P1 T100000 B4388 R4700 H30 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds

    ; Fans
    M106 P0 H-1 ; disable thermosatic mode for fan 0
    M106 P0 S0 ; turn off fan 0
    M106 P1 H-1 ; disable thermostatic mode for fan 1
    M106 P1 S0 ; turn off fan 1
    M106 P2 H1 T60 S255 ; enable thermostatic mode for fan 2, turn on above 60c on H1, set to full

    ; Bed
    M307 H0 A82.8 C442.7 D28.1 B0 ; Heater 0 model: gain 82.8, time constant 442.7, dead time 28.1, max PWM 1.00, in use: yes, mode: PID

    ; Tool definitions
    M563 P0 D0 H1 F1 ; Define tool 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    M307 H1 A326.1 C168.0 D6.1 B0
    M92 E93.17:93.17 ; Set extruder steps per mm

    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    M558 P1 X0 Y0 Z0 ; Z probe is an IR probe and is not used for homing any axes
    G31 X0 Y0 Z2.27 P500 ; Set the zprobe height and threshold (put your own values here)

    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0 ; Axis compensation here

    M208 S1 Z-0.2 ; set minimum Z
    T0 ; select first hot end

    ; Firmware Retraction configuration
    M207 S3.5 R-0.03 F4500 T1350 ; Z0.25 disabled z-hop

  • administrators

    Sadly imgur is telling me that it is over capacity, so I can't see the image you linked to.

    Have you read ?

  • I have.

    Here's the table I linked on imgur. Hopefully the formatting works.

    Z Z/Y Y Y/X X X/Z Z.5 Y.5 X.5 C mean deviation
    0.193 -0.246 0.175 -0.208 0.278 -0.206 0.024 0.082 -0.108 0.010 -0.001 0.176
    0.180 -0.246 0.175 -0.196 0.265 -0.206 0.024 0.082 -0.121 0.010 -0.003 0.172
    0.205 -0.234 0.175 -0.196 0.278 -0.206 0.037 0.082 -0.108 0.010 0.004 0.175
    0.218 -0.234 0.200 -0.208 0.278 -0.193 0.049 0.082 -0.108 0.023 0.011 0.179
    0.155 -0.259 0.175 -0.208 0.278 -0.206 0.037 0.082 -0.121 0.010 -0.006 0.175

  • More details about my printer.

    SeeMeCNC Rostock max v2, with their injection molded carriages & ball end barbells. I just installed CF arms from tricklaser, they measure 300.15mm according to tricklaser. I don't know of a great way to precisely measure them, but they do match up and using a common tape measure they appear to be right at that. Aluminum effector platform, again with the seemecnc ball ends. 80 steps/mm belt driven.

    The pattern of the high probe height at each tower, and negative number opposite each tower is really odd to me.

  • Updated to 1.17b, ran an 8 point calibration.

    Diagonal 300.150, delta radius 143.937, homed height 373.250, bed radius 150.0, X 0.463°, Y 1.232°, Z 0.000°
    Endstop adjustments X0.66 Y0.63 Z-1.30, tilt X-0.94% Y-0.28%

    Z Z/Y Y Y/X X X/Z Z.5 Y.5 X.5 C mean deviation
    0.280 -0.225 0.234 -0.215 0.260 -0.2 0.015 -0.002 0.019 0.019 0.018 0.183
    0.255 -0.237 0.209 -0.227 0.235 -0.2 0.015 -0.002 0.006 0.007 0.006 0.177
    0.243 -0.237 0.222 -0.227 0.235 -0.2 0.002 -0.015 0.006 0.007 0.003 0.176

  • administrators

    Are you certain that you have entered the correct rod length, as measured between bearing centres? What sorts of bearings do you have, and how are you measuring the rod length? Do you have equal bearing spacings at top and bottom of each pair of rods?

    It might be interesting to try 7 factor calibration and see what the firmware thinks the rod length is.

  • I don't have an accurate way of measuring the new rods, as they're much longer than my calipers.

    Earlier I had run a 7 factor calibration, and it said they were ~304.5mm, instead of their 300.15 as sold.

    They're not bearings, they're ball ends:

    The specific rods I got are these:

    And, unfortunately, the bed on my printer isn't long enough that I'm meeting the "probe well outside the printable area" to get a good measurement on the arms using a 7 factor calibration.

  • Running a 9 factor calibration today, it gives a diagonal length of 310mm. I'm sure they're not that long! (Using a common tape measure and eyeballing it, they're right at 300mm)

    (Just to check, from a clean start, a 7 factor calibration also says 310mm)

  • Just for grins, here's a full 9 point calibration result, after 3 iterations:

    Diagonal 308.484, delta radius 146.441, homed height 373.347, bed radius 150.0, X 0.146°, Y 0.756°, Z 0.000°

    Endstop adjustments X0.30 Y1.24 Z-1.54, tilt X-0.23% Y-0.31%

    Bed probe heights: 0.002 -0.002 0.025 0.007 0.020 -0.022 -0.028 -0.014 -0.015 0.069, mean 0.004, deviation from mean 0.027

  • A couple notes:

    1 - I resolved the majority of the tilt. It was actually the hotend not sitting level in the groove mount, and since the probe is attached to the hotend… tilt. Didn't take much for it to be off.

    2 - I'm also checking with a different probe type now (accelerometer & tapping the nozzle on the bed) and still seeing the same "high at the towers, low opposite" pattern going in the results of an S-1 check after a few rounds of auto calibration.

    3 - The amount of error is worse with the longer (300.15mm) CF arms than with my shorter (291.6mm) injection molded arms.

    4 - in both cases, if I put in the arms are longer than they are, the error reduces greatly, and can nearly be negates.

    5 - Swapping the "barbells" around between positions, or from the carriages to the effector, or switching the location of any of the pairs of arms has zero bearing on this pattern.

  • Testing dimensional accuracy, the 300.15mm arm length for the CF arms (as sold length, and looks accurate by eyeing them) gives dimensionally accurate prints.

  • administrators

    I suggest the following test:

    1. Run 6-point auto calibration. Print 2 parallel lines, from one edge of the bed to the other, one half a bed width to the left of centre and one half a bed width to the right. Then test them for straightness with a ruler.

    2. Do the same, but this time run 7-point auto calibration first. RRF will adjust the diagonal rod length to even out those height differences.

    What will be interesting is which test print has the straighter lines.

    Is the 300mm length quoted for the new arms measured between the centres of the balls?

  • Here are the prints:

    S6 Calibration:
    Endstop adjustments X-0.24 Y1.37 Z-1.13, tilt X0.00% Y0.00%
    Diagonal 300.150, delta radius 144.174, homed height 373.490, bed radius 150.0, X 0.126°, Y 0.565°, Z 0.000°

    S7 Calibration:

    Diagonal 310.832, delta radius 147.461, homed height 373.605, bed radius 150.0, X 0.103°, Y 0.586°, Z 0.000°
    Endstop adjustments X-0.26 Y1.37 Z-1.12, tilt X0.00% Y0.00%

    It may be hard to tell from the photos, but the S7 calibration lines were bowed in the center, slightly curved.

  • Here's a 250mm bed test printed with an S6 calibration. You can see it's thin at the towers, and matches the pattern I see in the S-1 test.

  • Oh, and the new arms are measured center of the pivot point to center, yes.


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