G32 Error: Auto calibration failed

  • G32 Error: Auto calibration failed because probe point P0 was unreachable using the current delta parameters. Try a smaller probing radius.

    I'm running a small delta, 130mm height, 55mm bed radius.

    printed some early stage calibration prints last night. Had some decent results other than having to use about 0.6-7mm baby stepping to the my 1st layer down.
    decided to go back to the "calibrating a delta printer" guide to do it properly. got my Z height set and did a probe of the 16 points to identify any variance from X0Y0, entered these into my bed.g, ran auto calibration and get the message above.

    I can probe P0 manually using G1 X0 Y48 Z10 followed by G30 S-1 and on current config get the following:

    10:46:14 PMG30 S-1
    Stopped at height -1.331 mm
    10:46:04 PMG1 X0 Y48 Z10
    10:45:43 PMG28

    I have no idea what I have done to cause this and cannot revert to any autocalibration

    my config is:

    ; Configuration file for Duet Maestro (firmware version 2.03)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v2.0.4 on Tue Sep 17 2019 20:28:32 GMT+0100 (British Summer Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"My Printer" ; set printer name
    M665 L121.290 R64.4 H125 B55.0 X0.058 Y-1.035 Z0.000 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 ; put end stop adjustments here, or let auto calibration find them

    ; Network
    M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 E256 I0 ; configure microstepping without interpolation
    M350 X32 Y32 Z32 I1 ; configure microstepping with interpolation
    M92 X200 Y200 Z200 E1675 ; 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 Y1000 Z1000 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 Z-3 S1 ; set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S0 ; set active low and disabled endstops

    ; Z-Probe
    M558 P1 H20 I1 F800 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 P0001 X0 Y0 Z-0.655 ; set Z probe trigger value, offset and trigger height
    M557 R54 S10 ; define mesh grid

    ; Heaters
    M307 H1 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P1 T100000 B4138 R2200 ; set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M305 P0 T100000 B4138 R2200 ; set thermistor + ADC parameters for heater 2
    M143 H0 S129 ; set temperature limit for heater 2 to 120C

    ; Fans
    M106 P0 S0 I0 F500 H1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 F0 ; 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

    ; Custom settings are not defined

    ; Miscellaneous
    M501 ; load saved parameters from non-volatile memory

    and bed.g is:

    ; bed.g
    ; called to perform automatic delta calibration via G32
    ; generated by RepRapFirmware Configuration Tool v2.0.4 on Tue Sep 17 2019 20:28:32 GMT+0100 (British Summer Time)
    M561 ; clear any bed transform
    G28 ; home all towers
    ; Probe the bed at 12 peripheral and 3 halfway points, and perform 3-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.40
    G30 P0 X0 Y48 Z-99999 H0.13
    G30 P1 X24.95 Y43.21 H0.0772 Z-99999
    G30 P2 X43.21 Y24.95 H-0.159 Z-99999
    G30 P3 X48 Y0 H0.099 Z-99999
    G30 P4 X43.21 Y-24.95 H0.1712 Z-99999
    G30 P5 X24.95 Y-43.21 H-0.027 Z-99999
    G30 P6 X0 Y-48 H-0.0902 Z-99999
    G30 P7 X-24.95 Y-43.21 H0.133 Z-99999
    G30 P8 X-43.21 Y-24.95 H0192 Z-99999
    G30 P9 X-48 Y0 H0-0.512 Z-99999
    G30 P10 X-43.21 Y24.95 H-0.022 Z-99999
    G30 P11 X-24.95 Y43.21 H0.1116 Z-99999
    G30 P12 X0 Y24.9 H0.116 Z-99999
    G30 P13 X21.56 Y-12.45 H0.008 Z-99999
    G30 P14 X-21.56 Y-12.45 H0.146 Z-99999
    G30 P15 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)

    Really confused as everything I did tonight should only have improved my calibration, instead of maing things worse. I got a 20mm cube to print at +/-0.5mm so was hopeful of getting good dimensional accuracy with improved calibration and set up.

    When I run calibration it fails, giving the message, and when I home after it, DWC gives me an error that home cannot be reached but the X, Y, Z co-ordinates ahowing are:


    Diagnostic is as follows:

    10:56:22 PMM122
    === Diagnostics ===
    RepRapFirmware for Duet 2 Maestro version 2.04RC1 running on Duet Maestro 1.0
    Board ID: 08DAM-9F9GA-J24TD-6J1F2-3S86P-TP3AT
    Used output buffers: 3 of 24 (8 max)
    === RTOS ===
    Static ram: 19664
    Dynamic ram: 87552 of which 88 recycled
    Exception stack ram used: 332
    Never used ram: 23436
    Tasks: NETWORK(ready,660) HEAT(blocked,1300) MAIN(running,472) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:11:44 ago, cause: software
    Last software reset at 2019-10-06 22:44, reason: User, spinning module GCodes, available RAM 23428 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 15.0MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 35.2, current 35.6, max 38.2
    Supply voltage: min 0.0, current 13.0, max 13.1, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, read errors 0, write errors 1, ifcount 247, reads 28145, timeouts 0
    Driver 1: standstill, read errors 0, write errors 1, ifcount 247, reads 28145, timeouts 0
    Driver 2: standstill, read errors 0, write errors 1, ifcount 247, reads 28145, timeouts 0
    Driver 3: standstill, read errors 0, write errors 1, ifcount 70, reads 28150, timeouts 0
    Driver 4: standstill, read errors 0, write errors 1, ifcount 70, reads 28150, timeouts 0
    Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 28156
    Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 28156
    Date/time: 2019-10-06 22:56:20
    Slowest loop: 30.58ms; fastest: 0.06ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 169, MinFreeDm: 166, MaxWait: 461810ms
    Bed compensation in use: none, comp offset 0.000
    === DDARing ===
    Scheduled moves: 66, completed moves: 66, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    lcd is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 9.62ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    Interface state 5, link 100Mbps full duplex

    Any help would be appreciated as I am totally confused. I m hoping that I have put a character in the wrong place or something stupid, but I am now lost.

    edited to add some machine dimensions

  • administrators

    @Dugee not sure quite why it was working and then stopped when you added the H offsets. Try:

    1. Try moving down before trying to probe. might be that its trying to go to Y48 with the axis at the top, hard up against the endstops..
      So in bed.g, after the G28 try adding:
    G1 X0 Y0 Z50 F9000 ; move down before probing

    It should not be that because from the documentation:
    With a Z parameter of -9999 or less, the head moves to the specified XY coordinates and the dive height (set using the H parameter in the M558 command), and probes the bed.

    1. It might be the order of the commands (although i doubt it). you have the H value after the Z value in your first line or probing, change to:
    G30 P0 X0 Y48 H0.13 Z-99999 

    also should not be this as the command order should be interchangeable, but try it.

    1. Try sending the exact command that is failing from the console and see if it works.

  • Upgrade to firmware 2.04 RC1 as there is a bug in 2.03 for delta auto calibration.

  • @T3P3Tony

    prior to running the 1st autocalibration last night I manually probed all the bed points and returned the following figure:

    X	Y	1	2	3	4	5	AVERAGE	variance from x0y0

    P0 0 48 -0.192 -0.192 -0.212 -0.212 -0.217 -0.205 0.13
    P1 24.95 43.21 -0.207 -0.258 -0.263 -0.278 -0.283 -0.2578 0.0772
    P2 43.21 24.95 -0.492 -0.492 -0.497 -0.497 -0.492 -0.494 -0.159
    P3 48 0 -0.242 -0.237 -0.237 -0.232 -0.232 -0.236 0.099
    P4 43.21 -24.95 -0.155 -0.171 -0.166 -0.166 -0.161 -0.1638 0.1712
    P5 24.95 -43.21 -0.366 -0.376 -0.356 -0.356 -0.356 -0.362 -0.027
    P6 0 -48 -0.446 -0.42 -0.42 -0.42 -0.42 -0.4252 -0.0902
    P7 -24.95 -43.21 -0.232 -0.212 -0.171 -0.212 -0.182 -0.202 0.133
    P8 -43.21 -24.95 -0.156 -0.151 -0.136 -0.136 -0.136 -0.143 0.192
    P9 -48 0 -0.4 -0.384 -0.384 -0.384 -0.379 -0.3862 -0.0512
    P10 -43.21 24.95 -0.356 -0.351 -0.356 -0.361 -0.361 -0.357 -0.022
    P11 -24.95 43.21 -0.202 -0.218 -0.228 -0.233 -0.236 -0.2234 0.1116
    P12 0 24.95 -0.218 -0.218 -0.218 -0.218 -0.223 -0.219 0.116
    P13 21.56 -12.45 -0.331 -0.326 -0.326 -0.326 -0.326 -0.327 0.008
    P14 -21.56 12.45 -0.201 -0.186 -0.186 -0.186 -0.186 -0.189 0.146
    P15 0 0 -0.354 -0.334 -0.329 -0.329 -0.329 -0.335

    and I was also able to manually probe using a G1 X0 Y48 Z20 followed by G30 S-1.

    When I get home later I will retry the autocalibration, but change from S-6 to S-1 initially just to check that there are values being returned for all the probe point before doing anything else, if autocalibration fails after returned data I will remove all the H parameters and try again.

    @jay_s_uk I am running 2.04 RC1 firmware, so hopefully that isn't the issue.

    edited for spelling

  • the G30 P8 line in your Bed.g is missing a decimal point on the H parameter causing it to think the offset at that point is huge (192mm)also I notice in your M563 line you have the dive hight set to 1mm maybe increase this as well.

    Maybe that is what is causing it too fail?


  • @Dougal1957 I think that missing decimal point may be it! that would throw everything way out. I looked at those files about 40 times and never spotted this.

    You may be my new hero. I'll report back as soon as I can.

  • Easy to miss lol

  • administrators

    @Dougal1957 great spot!

  • @T3P3Tony. @Dougal1957

    Calibrated 6 factors using 16 points, deviation before 0.887 after 0.071

    1st calibration run after putting the decimal place back in!

    Dougal, you are my new hero.

Log in to reply