G32 error while bed leveling
-
I have a printer with a 3 motor Z-Axis and the pivot point connections are kinematic mounts. I keep getting an error when I have the duet3 6HC attempt to level the bed with the G30 commands. It will probe the correct locations (as close as I could get the sensor, a BL Touch, to the pivot points), however when it finishes the last probe, it kicks out the following error:
G32
Error: This kinematics does not support auto-calibrationI thought I setup the config.g and bed.g files correctly with the pivot points and probe points but it seems I’m missing something. It also doesn't seem to be moving the probe to the center of the bed during the initial homing even though the homeall.g file seems to be subtracting out the offsets. If i manually input the offsets it will put the probe where it should be.
What am I missing?
Below is my bed.g, config.g and homeall.g code
Below is bed.g, i commented out the while loop to see if that was the cause of the issue
; bed.g ; called to level the bed ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 G28; home G30 P0 X133 Y1 Z-99999 ; Probe near Z motor 1 pivot point G30 P1 X35.5 Y294 Z-99999 ; Probe near Z motor 2 pivot point G30 P2 X262.5 Y294 Z-99999 S3 ; Probe near Z motor 3 pivot point ;while ;if abs(move.calibration.initial.deviation) < 0.01 || iterations > 3 ; break G29 ; call mesh bed compensation
Below is Config.g
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 ; General M90; Absolute coordinates; M83; Realtive extruder moves M550 P"Railcore" ; set hostname ; Network M552 P0.0.0.0 S1 ; configure Ethernet adapter M586 P0 S1 ; configure HTTP M552 i1 S2; Start Wifi AP ; Wait a moment for the CAN expansion boards to become available G4 S2 ; Accelerometers M955 P121.0 I20 ; configure accelerometer on board #121 ; Smart Drivers M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Y axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (Z axis) M569 P0.4 S1 D2 ; driver 0.4 goes forwards (Z axis) M569 P121.0 S0 D2 ; driver 121.0 goes forwards (extruder 0) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.0 Y0.1 Z0.2:0.3:0.4 ; set axis mapping M671 X133:6.5:263 Y-36:317:317; Z-Axis pivot point locations M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X1000 Y1000 Z1000 ; set axis driver currents M92 X160 Y160 Z1600 ; configure steps per mm M208 X0:285 Y0:298 Z0:300 ; set minimum and maximum axis limits M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min) M201 X500 Y500 Z20 ; set accelerations (mm/s^2) ; Extruders M584 E121.0 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E8000 ; set extruder driver currents M92 E420 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E3600 ; set maximum speeds (mm/min) M201 E250 ; set accelerations (mm/s^2) ; Kinematics M669 K1 ; configure CoreXY kinematics ; Probes M558 K0 P9 C"121.io0.in" H5 F120 T6000 ; configure BLTouch probe via slot #0 G31 P500 X35.5 Y1 Z2.55 ; set Z probe trigger value, offset and trigger height M950 S0 C"121.io0.out" ; create servo #0 for BLtouch ; Endstops M574 X1 P"121.io2.in" S1 ; configure X axis endstop M574 Y1 P"io0.in" S1 ; configure Y axis endstop M574 Z1 S2; Configure Z Axis endstop ; Mesh Bed Compensation M557 X35.5:285 Y10:285 P7:7 ; define grid for mesh bed compensation ; Sensors M308 S0 P"temp1" Y"thermistor" A"Bed Temp" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"121.temp0" Y"thermistor" A"Revo Temp" T100000 B4725 C7.06e-8 ; configure sensor #1 M308 S2 P"temp2" Y"thermistor" A"Backup Bed Temp" T100000 B4725 C7.06e-8 ; configure sensor #2 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M307 H0 R0.275 K0.218:0.000 D27.94 E1.35 S1.00 B0; configure model of heater #0 M950 H1 C"121.out0" T1 ; create heater #1 M143 H1 P0 T1 C0 S300 A0 ; configure heater monitor #0 for heater #1 M307 H1 R4.761 K0.389:0.019 D3.35 E1.35 S1.00 B0 V24.0 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"121.out2" ; create fan #0 M106 P0 C"Revo Cooling Fan" S0 B0.1 H1 T45; configure fan #0 M950 F1 C"121.out1" ; create fan #1 M106 P1 C"Part Cooling Fan" S0 L0 X1 B0.1 ; configure fan #1 ; Tools M563 P0 S"Revo" D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C ; Miscellaneous M501 ; load saved parameters from non-volatile memory
homeall.g
; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 ; lift Z G91 ; relative positioning G1 H2 Z5 F6000 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home XY var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G91 ; relative positioning G1 H1 X{-var.xTravel} Y{-var.yTravel} F2500 ; coarse home G1 H1 X{-var.xTravel} F4000 ; coarse home in the -X direction G1 H1 Y{-var.yTravel} F4000 ; coarse home in the -Y direction G1 H2 X5 Y5 F5000 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home G1 H1 X{-var.xTravel} F300 ; fine home in the -X direction G1 H1 Y{-var.yTravel} F300 ; fine home in the -Y direction G90 ; absolute positioning ; home Z var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F6000 ; go to bed center G30 ; probe the bed
-
Does your bed.g work if you remove the indentations and run it without conditional gcode commands?
@Q2101 said in G32 error while bed leveling:
; Kinematics
M669 K1 ; configure CoreXY kinematicsOrder dependency
M669 must come earlier in config.g than any M671 command.https://docs.duet3d.com/en/User_manual/Reference/Gcodes#order-dependency-26
-
I did not notice the order dependency on the M671 command, that is most likely the issue. I'll move that command around and see what that does tomorrow after work. Thank you for pointing that out.
-
The M671 command being in the wrong place was indeed the issue. I also had to adjust the maximum allowable correction to 2mm. Thanks again for pointing that, it would have taken me a while to find it.
-
-