Difficulty calibrating Delta with Auto Cal and Bed compensation

  • Fixed my temp/heater issue . . .

    Now I'm having a heck of a time trying to get my delta calibrated. Its a modified rostock max. I've torn it down and rebuilt it a dozen times to see if maybe i got something wrong mechanically.
    I use FSRs to probe.
    I've added PEI to my boro glass plate.

    So here's my process. . .

    Added in my config.g

    M558 P4 X0 Y0 Z0 H3 F50 T6000 to probe (super slow)
    M557 R135 S15 enables grid probing map

    Added to Bed.g

    bed.g file for RepRapFirmware, generated by Escher3D calculator
    ; 16 points, 6 factors, probing radius: 120, probe offset (0, 0)
    G30 P0 X0.00 Y120.00 Z-99999 H0
    G30 P1 X77.13 Y91.93 Z-99999 H0
    G30 P2 X118.18 Y20.84 Z-99999 H0
    G30 P3 X103.92 Y-60.00 Z-99999 H0
    G30 P4 X41.04 Y-112.76 Z-99999 H0
    G30 P5 X-41.04 Y-112.76 Z-99999 H0
    G30 P6 X-103.92 Y-60.00 Z-99999 H0
    G30 P7 X-118.18 Y20.84 Z-99999 H0
    G30 P8 X-77.13 Y91.93 Z-99999 H0
    G30 P9 X0.00 Y60.00 Z-99999 H0
    G30 P10 X51.96 Y30.00 Z-99999 H0
    G30 P11 X51.96 Y-30.00 Z-99999 H0
    G30 P12 X0.00 Y-60.00 Z-99999 H0
    G30 P13 X-51.96 Y-30.00 Z-99999 H0
    G30 P14 X-51.96 Y30.00 Z-99999 H0
    G30 P15 X0 Y0 Z-99999 S6
    I will then probe and run the M665 and M666\.
    enter in the variables in the config g and do it again until they converge. . . (i do this both hot and cold and not much difference)
    here are some runs:
    Run 1
    Endstop adjustments X-0.08 Y-0.05 Z0.13, tilt X0.00% Y0.00%
    Diagonal 269.000, delta radius 129.521, homed height 431.005, bed radius 125.0, X -0.107°, Y 0.350°, Z 0.000°
    Run 2:
    Endstop adjustments X-0.07 Y-0.08 Z0.15, tilt X0.00% Y0.00%
    Diagonal 269.000, delta radius 129.471, homed height 431.006, bed radius 125.0, X -0.172°, Y 0.352°, Z 0.000°
    Run 3
    Endstop adjustments X-0.08 Y-0.06 Z0.14, tilt X0.00% Y0.00%
    Diagonal 269.000, delta radius 129.558, homed height 431.013, bed radius 125.0, X -0.145°, Y 0.367°, Z 0.000°
    Run 4
    Endstop adjustments X-0.05 Y-0.07 Z0.13, tilt X0.00% Y0.00%
    Diagonal 269.000, delta radius 129.538, homed height 431.019, bed radius 125.0, X -0.080°, Y 0.363°, Z 0.000°
    After I feel my readings are just going up and down, I go through bed compensation.
    added to config.g

    G29 S1 ; load bed leveling compensation

    Run G32 without homing
    Run G29
    A nice graph pops up with this.
    So here's the problem:
    What in the world is going on. Its like I never calibrated . . .
    I can't be that far off the mark.
    A couple of things. I do adjust my G31 command in my config.g

    G31 X0 Y0 Z0.1 P500

    I vary Z in 0.025 increments hoping to find a sweet spot. The issue is it doesn't matter because its clear I'm high in one spot and low in another. Isn't bed compensation supposed to fix this?
    Please help.

  • administrators

    Have you measured the trigger height at various probe points (see https://duet3d.com/wiki/Calibrating_a_delta_printer#Measuring_the_trigger_height)) to check that your FSRs are triggering at a consistent height?

  • ah . . . that totally makes sense. A few questions:

    1.at each point: I assume i got to be within 20 to 25 microns repeatable or i've got something mechanical to fix?
    2. I assume i have to probe center first. . . .
    3. in my bed.g I've got the following example:

    G30 P1 X77.13 Y91.93 Z-99999 H0

    Where H = (trigger height at that point) - (trigger height at center point).
    Why wouldn't i just use the trigger height stand alone? Wouldn't this double up the trigger height?
    What do i do about Z? do i leave it at -99999

    4. does the bed have to be hot?

  • administrators

    Ideally, the nozzle height above the bed at which the Z probe (in your case, the FSRs) trigger will be the same all over the bed, in which case you don't need the H parameters on the G30 commands (or they can all be zero). However, if when you measure the trigger height at each point you find that it is significantly different at each probe point, then you can use the H parameters to compensate for that.

    Do your auto calibration results change much depending on whether you probe with the bed hot or cold?

  • Your bed map looks typical of a delta with 3 bed sensors. The further from the sensors the lower the nozzle has to go to trigger them. Also, probing outside the triangle of the sensors starts the teeter totter effect raising the bed up at the far sensor. It's very slight but even if not noticeable it will have a big effect at the minute numbers we are dealing with.

    With my delta I start with a clean bed and nozzle (and I mean clean if you want good numbers) at printing temps for an hour or so and auto calibrate (without bringing in the bed map) till converged the best it will get. I have a macro that probes 35 times each the center and the XY coordinates that my bed.g file probes. (yes overkill but it gets good mean values since for me the jump in numbers is +-.006 which I assume is due to ADC conversion or processor / code timing) I take the mean of each point minus the mean of center and enter that value in the H parameters. Rinse and repeat till everything converges. (twice most times but if changing anything to do with geometry usually three or four) At that point calibrating 6 factors with 13 points nets me .004 to .002 deviation. (I converted to under bed piezo's for more sensitivity but after I figured this routine out was getting .009 to .007 deviation with the FSR's when running auto calibrate) I still have high and low spots at that point but running G29 will take care of that. I use S15 in M557 to get lots of points. After that I uncomment the G29 S1 that I have at the end of my bed.g file so it will bring the correction map in at the end of an auto calibrate.

    Here is my crappy bed map because of the floating bed, under bed sensors, and physics:

    An effector mounted sensor and rigid mounted bed would make that map look pathetic.

  • @longshot:


    I have not read this whole thread yet but as I was, I thought the M561 command at the end of bed.g was jumping out at me.
    Doesn't this clear out any calibration you just did?
    My M561 command is at the beginning of bed.g.

    Ok, back to reading..

    My G31 command does not have a Z parameter on it and it comes immediately after the M561 command at the beginning.
    G31 X0 Z0

    How do you get the height map?

  • administrators

    M561 shouldn't be needed in bed.g any more because the height map is ignored when bed probing. Including it shouldn't matter, but of course it will clear any height map you have loaded.

    You do need to make sure that no height map is loaded when measuring Z prove trigger heights.

  • @longshot:

    Run G32 without homing
    Run G29

    A nice graph pops up with this.


    So here's the problem:


    What in the world is going on. Its like I never calibrated . . .
    I can't be that far off the mark.

    When I run G29 I get an error about no valid grid defined for G29. I am guessing you have a G29 grid defined too?
    I'd love to see a graph…

    Anyway, now I cannot print anything. Need to start all over but am lost as to what to delete and where to start.

    Have you made any progress?

    @DC42, you said disable bed compensation before calibrating? How do you do this and how long does the setting last? I see an option for this under the "Auto Delta Calibration" button, but it never changes to Enable bed compensation.

    For a Delta, which is better Auto Delta Calibration (G30 P0 - P<whatever>) or Grid (G29?)

    How do I start over? delete all offsets, calibration, and start fresh with Z height and ensure there is no fragments from previous releases or betas that remain?


Log in to reply