Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    G32 and This kinematics does not support auto-calibration

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    7
    415
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TimsWorkshopundefined
      TimsWorkshop
      last edited by

      Good morning/afternoon all!

      I've setup a rail system and a new E3D hotend for my Ender 5 Plus and while I've been working on recalibrating my Bed size, offsets, and mesh coordinates, I've run into a problem with my G32 command telling me the kinematics don't support the auto calibration.

      I've looked through a few previous posts and read the gcode documentation, and while I have 4 coordinates configured in M671 and 4 probe points configured in G30, I still get the above error. I can't seem to find the spot where this error is coming from...

      I can run G32 and it probes my 4 points as expected, but I can't get any output to adjust me screws.

      I've put my files below, would love any insight someone might have:

      config.g

      ; Configuration file for Duet WiFi (firmware version 3.4 beta 7)
      ; executed by the firmware on start-up
      
      ; ######################################################
      ; General preferences
      ; ######################################################
      G90                                                ; send absolute coordinates...
      M83                                                ; ...but relative extruder moves
      M550 P"Stargate SG-1 - Jackson"                    ; set printer name
      
      ; ######################################################
      ; Global Variables
      ; ######################################################
      
      global g_move_forward        = 5          ; can be used to always move Z to known height
      global g_move_back           = -{global.g_move_forward}          ; can be used to always move Z to known height
      global g_axes_speeds	     = 6000 ; Speeds to move axes during homing
      
      ; Z-Lead Screw Positions
      global l_zlead_screw_x		 = 30
      global r_zlead_screw_x		 = 335
      global zlead_screw_y		 = 208
      
      ; 4-P Bed Levelling Positions
      global fl_screw_x		 = 30
      global fl_screw_y		 = 76.8
      global fr_screw_x		 = 310
      global fr_screw_y		 = 76.8
      global bl_screw_x		 = 30
      global bl_screw_y		 = 338
      global br_screw_x		 = 310
      global br_screw_y		 = 338
      
      global g_print_end_mode      = "HEAT OFF" ; determines if heaters are turned off when print is done
      global g_map_mode            = "FULL"     ; determines which kind of height map is created/loaded
      global g_probe_mode          = "TWO"      ; determines if z proving used consecutive or averaging
      global g_level_mode          = "3PT"      ; determines if 3 or 4 points are used for leveling
      
      ; BL-Touch Probe Offsets
      global probe_offset_x		 = -39		  ; BL Touch X offset
      global probe_offset_y		 = 39.3		  ; BL Touch Y offset 
      global probe_offset_z		 = 1.523	  ; BL Touch Z offset
      
      ; ######################################################
      ; Network
      ; ######################################################
      M552 S1                                            ; enable network
      M586 P0 S1                                         ; enable HTTP
      M586 P1 S0                                         ; disable FTP
      M586 P2 S0                                         ; disable Telnet
      
      ; ######################################################
      ; Drives
      ; ######################################################
      M569 P0 S0                                         ; X drive 0 goes backwards
      M569 P1 S1                                         ; Y drive 1 goes backwards
      M569 P2 S1                                         ; Z1 drive 2 goes forwards
      M569 P3 S0                                         ; E drive 3 goes backwards
      M584 X0 Y1 Z2 E3                                   ; set drive mapping
      
      ; ######################################################
      ; Movement
      ; ######################################################
      M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z800.00 E409                  ; set steps per mm
      M566 X900.00 Y900.00 Z300.00 E2000.00 P1           ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z900.00 E6000.00            ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z500.00 E3000.00              ; set accelerations (mm/s^2) 200
      M906 X800 Y800 Z800 E800 I30                       ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                            ; Set idle timeout
      
      ; ######################################################
      ; Axis Min/Max 
      ; ######################################################
      M208 S1 X25 Y9 Z-10                                 ; set axis minima
      M208 S0 X380 Y350 Z400                              ; set axis maxima
      
      ; ######################################################
      ; Endstops
      ; ######################################################
      M574 X2 S1 P"xstop"                                ; configure active-high endstop for low end on X via pin xstop
      M574 Y2 S1 P"ystop"                                ; configure active-high endstop for low end on Y via pin ystop
      M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
      
      ; ######################################################
      ; Kinematics
      ; ######################################################
      M669 K0
      
      ; ######################################################
      ; Custom Probe config file
      ; ######################################################
      M98 P"configs/probe_config.g"                         ; Config settings for my EZABL probe
      
      ; ######################################################
      ; Heaters
      ; ######################################################
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     ; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bedheat" T0                              ; create bed heater output on bedheat and map it to sensor 0
      M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                            ; map heated bed to heater 0
      M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
      M308 S1 P"e0temp" Y"thermistor" T100000 B4138      ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
      M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S285                                       ; set temperature limit for heater 1 to 280C
      
      ; ######################################################
      ; Fans
      ; ######################################################
      ;M950 F0 C"nil"									   ; Free up pin F0
      ;M950 F0 C"fan1" Q500							   ; Assign Fan0 for Prusa Slicer
      ;M106 P0 S0 H-1   
      M950 F0 C"nil"	                                
      M950 F0 C"fan0" Q500                               ; create fan 0 on pin fan3 and set its frequency
      M106 P0 S0 H1 T45                                  ; set fan 0 value. 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 Configurations
      ; ######################################################
      
      ; Filament Runout Sensor
      M591 D0 P1 C"e0stop" S1
      
      ; TFT Display Config
      M575 P1 S1 B57600
      
      ; Miscellaneous
      M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
      M501                                               ; load saved parameters from non-volatile memory
      

      bed.g

      ; ######################################################
      ; bed.g
      ; called to perform automatic bed compensation via G32
      ; ######################################################
      
      ; ######################################################
      ; Probe points for my 4x Adjustment Knobs
      ; ######################################################
      M671 X{global.fl_screw_x}:{global.fr_screw_x}:{global.bl_screw_x}:{global.br_screw_x} Y{global.fl_screw_y}:{global.fr_screw_y}:{global.bl_screw_y}:{global.br_screw_y}
      
      ; ######################################################
      ; Home and probe near bed spring knobs
      ; Lead Screw Positions
      ; ######################################################
      G28 Z; home
      G30 P0 X{global.probe_offset_x} + {global.fl_screw_x} Y{global.probe_offset_y} + {global.fl_screw_y} Z-9999 ; Front-Left
      G30 P1 X{global.probe_offset_x} + {global.fr_screw_x} Y{global.probe_offset_y} + {global.fr_screw_y} Z-9999 ; Front-Right
      G30 P3 X{global.probe_offset_x} + {global.bl_screw_x} Y{global.probe_offset_y} + {global.bl_screw_y} Z-9999; Back-Left
      G30 P2 X{global.probe_offset_x} + {global.br_screw_x} Y{global.probe_offset_y} + {global.br_screw_y} Z-9999 S4; Back-Right
      

      Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

      fcwiltundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @TimsWorkshop
        last edited by

        @infidelprops

        To do Auto Bed Leveling you have to have 3 or 4 Z axis lead screws/belts with a separate stepper for each one.

        You config file only specifies one Z axis with one stepper.

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        TimsWorkshopundefined 1 Reply Last reply Reply Quote 0
        • TimsWorkshopundefined
          TimsWorkshop @fcwilt
          last edited by

          @fcwilt That's a bit weird... On my other Ender 5 printer, same setup as this one (but with different offsets/axis) and with that I am able to do a G32

          config.g

          ; Configuration file for Duet WiFi (firmware version 3)
          ; executed by the firmware on start-up
          
          ; ######################################################
          ; General preferences
          ; ######################################################
          G90                                                ; send absolute coordinates...
          M83                                                ; ...but relative extruder moves
          M550 P"Stargate SG-1 - Oneill"                     ; set printer name
          
          ; ######################################################
          ; Global Variables
          ; ######################################################
          
          global g_move_forward        = 5          ; can be used to always move Z to known height
          global g_move_back           = -{global.g_move_forward}          ; can be used to always move Z to known height
          global g_axes_speeds		 = 6000 ; Speeds to move axes during homing
          
          ; Lead Screw Positions
          global l_zlead_screw_x		 = 45
          global r_zlead_screw_x		 = 307
          global zlead_screw_y		 = 187.5
          
          global g_print_end_mode      = "HEAT OFF" ; determines if heaters are turned off when print is done
          global g_map_mode            = "FULL"     ; determines which kind of height map is created/loaded
          global g_probe_mode          = "TWO"      ; determines if z proving used consecutive or averaging
          global g_level_mode          = "3PT"      ; determines if 3 or 4 points are used for leveling
          
          ; ######################################################
          ; Network
          ; ######################################################
          M552 S1                                            ; enable network
          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 S1                                         ; physical drive 2 goes forwards
          M569 P3 S1                                         ; physical drive 3 goes backwards
          M584 X0 Y1 Z2 E3                                   ; set drive mapping
          
          ; ######################################################
          ; Movement
          ; ######################################################
          M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
          M92 X80.00 Y80.00 Z800.00 E138.00                  ; set steps per mm
          M566 X900.00 Y900.00 Z300.00 E2000.00 P1           ; set maximum instantaneous speed changes (mm/min)
          M203 X6000.00 Y6000.00 Z900.00 E6000.00            ; set maximum speeds (mm/min)
          M201 X500.00 Y500.00 Z500.00 E3000.00              ; set accelerations (mm/s^2) 200
          M906 X800 Y800 Z800 E800 I30                       ; set motor currents (mA) and motor idle factor in per cent
          M84 S30                                            ; Set idle timeout
          
          ; ######################################################
          ; Axis Min/Max 
          ; ######################################################
          M208 X5 Y0 Z-20 S1                                 ; set axis minima
          M208 X355 Y355 Z400 S0                             ; set axis maxima
          
          ; ######################################################
          ; Endstops
          ; ######################################################
          M574 X2 S1 P"xstop"                                ; configure active-high endstop for low end on X via pin xstop
          M574 Y2 S1 P"ystop"                                ; configure active-high endstop for low end on Y via pin ystop
          M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
          
          ; ######################################################
          ; Custom Probe config file
          ; ######################################################
          M98 P"configs/probe_config.g"                         ; Config settings for my EZABL probe
          
          ; ######################################################
          ; Heaters
          ; ######################################################
          M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     ; configure sensor 0 as thermistor on pin bedtemp
          M950 H0 C"bedheat" T0                              ; create bed heater output on bedheat and map it to sensor 0
          M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
          M140 H0                                            ; map heated bed to heater 0
          M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
          M308 S1 P"e0temp" Y"thermistor" T100000 B4138      ; configure sensor 1 as thermistor on pin e0temp
          M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
          M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
          M143 H1 S280                                       ; set temperature limit for heater 1 to 280C
          
          ; ######################################################
          ; Fans
          ; ######################################################
          M950 F0 C"nil"									   ; Free up pin F0
          M950 F0 C"fan1" Q500							   ; Assign Fan0 for Prusa Slicer and default for other slicers
          M106 P0 S0 H-1   
          M950 F1 C"nil"									   ; Free up pin F0                                
          M950 F1 C"fan0" Q500                               ; create fan 0 on pin fan3 and set its frequency
          M106 P1 S1 H1 T45                                  ; set fan 1 value. Thermostatic control is turned on
          
          ; ######################################################
          ; Tools
          ; ######################################################
          M563 P0 D0 H1 F1                                   ; 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 Configurations
          ; ######################################################
          
          ; Filament Runout Sensor
          M591 D0 P1 C"e0stop" S1
          
          ; TFT Display Config
          M575 P1 S1 B57600
          
          ; Miscellaneous                                          ; load saved parameters from non-volatile memory
          M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
          M501     
          

          bed.g

          ; ######################################################
          ; bed.g
          ; called to perform automatic bed compensation via G32
          ; ######################################################
          
          ; ######################################################
          ; Probe points for my 4x bed scews with stock bed springs
          ; ######################################################
          M671 X69:338:69:338 Y51:51:308:308 P0.5			   ; Front-Left:Front-Right:Back-Left:Back-Right
          
          ; ######################################################
          ; Home and probe near bed screws
          ; Lead Screw Positions
          ; ######################################################
          G28 Z; home
          G30 P0 X127 Y58 Z-9999 ; Front-Left
          G30 P1 X380 Y58 Z-9999 ; Front-Right
          G30 P3 X127 Y318 Z-9999; Back-Left
          G30 P2 X380 Y318 Z-9999 S4; Back-Right
          ;G30 P4 X127 Y187.5 Z-9999 ; Left Lead Screw
          ;G30 P5 X380 Y187.5 Z-9999 S6; Right Lead Screw
          

          Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator @TimsWorkshop
            last edited by

            @infidelprops said in G32 and This kinematics does not support auto-calibration:

            M671 X{global.fl_screw_x}:{global.fr_screw_x}:{global.bl_screw_x}:{global.br_screw_x} Y{global.fl_screw_y}:{global.fr_screw_y}:{global.bl_screw_y}:{global.br_screw_y}

            Can you send M671 by itself to see if it's evaluating your variables correctly?

            Are you trying to do auto leveling or the manual leveling asssitant?

            Z-Bot CoreXY Build | Thingiverse Profile

            TimsWorkshopundefined 1 Reply Last reply Reply Quote 1
            • TimsWorkshopundefined
              TimsWorkshop @Phaedrux
              last edited by

              @phaedrux Thanks mate. I'm trying first the assisted bed levelling so I can adjust the bed knobs, and then I will go and get my G29 and mesh.

              I just sent M671 and it says lead screws are not configured... I've put it in my config.g file towards the bottom of the file, and M671 still reports no leadscrews.

              But what's interesting is I just replaced my variables with the actual values, and M671 now reports leadscrew coordinates configured.

              ;M671 X{global.fl_screw_x}:{global.fr_screw_x}:{global.bl_screw_x}:{global.br_screw_x} Y{global.fl_screw_y}:{global.fr_screw_y}:{global.bl_screw_y}:{global.br_screw_y}
              M671 X30:310:30:310 Y76.8:76.8:338:338
              

              And now when I run G32, I get readings back to adjust the knobs. Is this a known feature where this Gcode doesn't accept variables?

              Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @TimsWorkshop
                last edited by dc42

                @infidelprops you are using the wrong syntax for using variables in a parameter that takes several values. See https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#Section_Use_of_expressions_within_GCode_commands.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                TimsWorkshopundefined 1 Reply Last reply Reply Quote 2
                • TimsWorkshopundefined
                  TimsWorkshop @dc42
                  last edited by

                  @dc42 ahhh, I did see that but didn't think it applied in this situation. Thanks for pointing that out mate

                  Ender 5 Plus - E3D Hemera Hotend - Duet 2 Wifi

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Unless otherwise noted, all forum content is licensed under CC-BY-SA