Error: Number of calibration factors

  • All,
    I just upgraded to latest firmware and when I try to do 4 points bed probes, I am getting
    Error: Number of calibration factors (4) not equal to number of leadscrews (2)

    The commands I sent are

    G28 X0 Y0 Z0
    G30 P0 X30 Y30 F100 Z-99999       ; define 4 points in a clockwise direction around the bed, starting near (0,0)
    G30 P1 X30 Y270 F1500 Z-99999
    G30 P2 X200 Y270 F1500 Z-99999
    G30 P3 X200 Y30 F1500 Z-99999 S0

    My config is as follow, I am having since quite a while and there may be some old stuffs that are now causing issues.
    I am especially wondering about the M671 but there may be something else.

    ; Communication and general
    M111 S0                             	; Debug off
    M550 pp3steel		; Machine name and Netbios name (can be anything you like)
    ;M551 Ppreprap                        	; 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
    ; misc settings
    M555 P2                           	; Set output to look like Marlin
    M575 P1 B57600 S1			; Comms parameters for PanelDue
    ; setting for all axis
    G21                                 	; Work in millimeters
    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 S1				; Drive 2 goes forwards (z)
    M569 P3 S0				; Drive 3 goes forwards (e1)
    M569 P4 S1				; Drive 4 goes forwards (E2)
    ; microstepping and homing switch config
    M350 X16 Y16 Z16 E16 I1             ; set 16x microstepping with interpolation
    M574 X1 S0		    ; set homing switch configuration (X homing switch only, at low end, active high)
    M574 Y1 S0		    ; set homing switch configuration (Y homing switch only, at low end, active high)
    M574 Z0 S1		    ; set homing switch configuration (z homing switch only, at low end, active high)
    ; Motor current and acceleration
    M906 X1000 Y1100 Z1000 E1100 I60		; Set motor currents (mA) and increase idle current to 60%
    M84 S60 ; Set idle timeout
    M201 X600 Y600 Z10 E600		; Accelerations (mm/s^2) 
    M203 X5000 Y5000 Z100 E9000		; Maximum speeds (mm/min)
    M566 X1200 Y1200 Z30 E200		; Maximum instant speed changes mm/minute
    M210 X6000 Y6000 Z10  			; set hming feedrate
    ; steps per mm
    M92 X80 Y80 Z4000  ; Set axis steps/mm
    M92 E492.45:492.45                          ; set extruder 0 and 1 steps/mm
    ; max travel and origin
    M208 X210 Y305 Z200 
    ; setting for all axis
    G21                                 	; Work in millimeters
    G90                                	; Send absolute coordinates...
    M83                                 	; ...but relative extruder moves
    ; Thermistors
    M305 P0 R4700 T100000 B4388   ; set bed thermistor parameters
    M305 P1 R4700 T100000 B4388   ; set E0 thermistor parameters
    M307 H1 A474.7 C114.3 D5.5 B0; PID settings for extruder 0
    M143 H1 S270 ; Set maximum heater temperature to 270C
    M307 H0 D20
    ; Fans
    M106 P1 H-1 				; disable thermostatic mode for fan 1
    ; Tool definitions
    M563 P0 D0 H1                       	; Define tool 0
    G10 P0 S0 R0                        	; Set tool 0 operating and standby temperatures
    ; Z probe and compensation definition
    M558 P1 X0 Y0 Z1 H3 F200 T3000    ; smart IR Z probe, used for homing Z axis only, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min
    G31 P500 X10 Y24 Z1.90        ; set threshold and offsets
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                   	; Axis compensation here
    M208 X0 Y0 Z0 S1 				; set minimum Z
    T0					; select first hot end
    M671 X--60:270 Y45:45
    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory

  • administrators

    You have included a M671 command in config.g, so G31 and bed.g will do leadscrew calibration. If you want to implement bed compensation, use G29 mesh bed compensation.

  • Thanks
    So I should really only use M671 when I want to do a leadscrew calibration or a bed adjustment. In such case, how do I start the process, is that a G32?

  • administrators

    Yes, if you use M671 then G32 does leadscrew calibration or manual adjustment calculation.

  • Thanks,
    Is there a user guide on G32 and M671?
    I basically get
    12 points probed, mean error 0.002, deviation 0.144
    Height map saved to file heightmap.csv


  • administrators

    If you are getting that message, you must have a G29 command in bed.g.

    Instructions for using M671 are at and

  • Thanks a million! that works

  • @dc42 said in Error: Number of calibration factors:

    Instructions for using M671 are at and

    Hi @dc42 ,

    I am trying to use the manual bed levelling assistant and I am getting the same error as above.

    Here is my bed.g and config.g; any help would be appreciated.



  • administrators

    You have only 2 mounting screw points defined in the M671 command in config.g, but you have S4 on the last g30 command in bed.g. If there really are only 2 mounting points for the bed (unlikely!), use S2. Otherwise, add the coordinates of the other mounting screws to the M671 command.


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