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

    Calibration factors do not equal number of leadscrews

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    5
    21
    692
    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.
    • BDPrintersundefined
      BDPrinters
      last edited by BDPrinters

      Hello,

      I am having an issue setting up a new printer for auto calibration with 3 independent Z screws.

      I think I have it set up properly, but I am getting errors which make me question this.

      When probing 3 points using G32, the points get probed (am using a laser sensor, not a BlTouch) but I receive this error in the console, even before all points are finished probing

      Error: Number of calibration factors (0) not equal to number of leadscrews (3)

      I have been able to make the printer calibrate each motor individually, but one motor always overshoots the calibration, making the bed noticeably not level to the gantry. This could be a different issue but I am not sure at the moment.

      bed.g

      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.16 on Wed Nov 01 2023 09:48:25 GMT-0400 (Eastern Daylight Time)
      G28
      
      G30 P0 X105 Y50 Z-99999
      G30 P1 X0 Y550 Z-99999
      G30 P2 X240 F550 Z-99999 S3
      

      config.g

      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.16 on Wed Nov 01 2023 09:48:25 GMT-0400 (Eastern Daylight Time)
      
      ; General preferences
      G90                                     ; send absolute coordinates...
      M83                                     ; ...but relative extruder moves
      M550 P"Modix Big 60"                    ; set printer name
      
      ; Network
      M551 P"bd3dcustoms"                     ; set password
      M552 S1                                 ; enable network
      M586 P0 S1                              ; enable HTTP
      M586 P1 S0                              ; disable FTP
      M586 P2 S0                              ; disable Telnet
      
      ; Drives
      M569 P0 S1                              ; physical drive 0 goes forwards
      M569 P1 S1                              ; physical drive 1 goes forwards
      M569 P2 S1                              ; physical drive 2 goes forwards
      M569 P3 S0                              ; physical drive 3 goes forwards
      M569 P4 S0
      M569 P5 S0
      
      
      M584 X1 Y0 Z2:4:5 E3                        ; set drive mapping
      M671 X300:610:50.8 Y-76:711:711 S50
      
      M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
      M92 X200 Y200 Z2008.9 E420.00           ; set steps per mm
      M566 X900.00 Y900.00 Z60.00 E120.00     ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z600 E1200.00    ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z20.00 E250.00     ; set accelerations (mm/s^2)
      M906 X2000 Y2000 Z1680 E1680 I30        ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                 ; Set idle timeout
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                        ; set axis minima
      M208 X550 Y550 Z550 S0                  ; set axis maxima
      
      ; Mesh
      
      
      ; Endstops
      
      ; X & Y endstops do not match up here. This is because I wanted to keep left&right, forward&backward motion the same between BD3D and Modix, did not want to change pins, software easier 
      ;	ie. from front of printer, right is +y, towards you is +x
      ; 
      ;		-x		
      ;		
      ; -y	Home 	+y
      ;		
      ;		+x
      ;
      ;Shown, X uses Y Endstop, Y uses X endstop
      M574 X1 S1 P"!ystop"                     ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
      M574 Y1 S1 P"!xstop"                     ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
      M574 Z2 S2                               ; configure Z-probe endstop for low end on Z
      
      ; Z-Probe
      M558 P3 C"!zprobe.in" H55 F300 T6000      ; set Z probe type to unmodulated and the dive height + speeds
      G31 P100 X0 Y0 Z6.3                      ; set Z probe trigger value, offset and trigger height
      M557 X15:550 Y15:550 S50                 ; define mesh grid
      
      ; Heaters
      M140 H-1                                ; disable heated bed (overrides default heater mapping)
               
      M308 S0 P"e0temp" Y"thermistor" T100000 B4725  ; configure sensor 0 as PT1000 on pin e1temp
      M950 H0 C"e1heat" T0                    ; create nozzle heater output on e1heat and map it to sensor 0
      M307 H0 B0 S1.00                        ; disable bang-bang mode for heater  and set PWM limit
      M143 H0 S300                            ; set temperature limit for heater 0 to 300C
      
      ; Fans
      M950 F0 C"fan0" Q500                    ; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1                          ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500                    ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H0 T45                       ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H0 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
      
      
      code_text
      

      Any help would be appreciated.

      Tom

      gloomyandyundefined dc42undefined fcwiltundefined 3 Replies Last reply Reply Quote 0
      • gloomyandyundefined
        gloomyandy @BDPrinters
        last edited by

        @BDPrinters said in Calibration factors do not equal number of leadscrews:

        M671 X300:610:50.8 Y-76:711:711 S50

        Do the above points match the order that you have used when specifying the motors in your M584 command? Also do you really mean to allow up to 50mm of adjustment (the default is 1mm)?

        BDPrintersundefined 1 Reply Last reply Reply Quote 1
        • dc42undefined
          dc42 administrators @BDPrinters
          last edited by

          @BDPrinters said in Calibration factors do not equal number of leadscrews:

          Error: Number of calibration factors (0) not equal to number of leadscrews (3)

          The bed.g file you posted looks OK but perhaps it contains a hidden character.

          I have been able to make the printer calibrate each motor individually, but one motor always overshoots the calibration, making the bed noticeably not level to the gantry. This could be a different issue but I am not sure at the moment.

          That's usually caused by a mismatch between the order in which the leadscrew locations are specified in the M671 command and the order in which the Z motors are declared in M584.

          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

          BDPrintersundefined 1 Reply Last reply Reply Quote 1
          • BDPrintersundefined
            BDPrinters @gloomyandy
            last edited by

            @gloomyandy I believe they do, I checked them a few times but I will verify. I did want to allow 50mm of adjustment, the bed had quite a bit of deviation (40mm roughly), and I wanted to correct it as much as i could without unplugging the motors and manually turning the z screws

            1 Reply Last reply Reply Quote 0
            • BDPrintersundefined
              BDPrinters @dc42
              last edited by

              @dc42 I double checked the bed.g file for hidden characters but I do not see anything other than the text that is shown. I will recheck the order of the screw locations. Does a mismatched order typically lead to this error triggering after the first point is probed but before the second?

              BDPrintersundefined 1 Reply Last reply Reply Quote 0
              • BDPrintersundefined
                BDPrinters @BDPrinters
                last edited by

                @BDPrinters I have verified that the order of the leadscrew locations are correct. I got a second set of eyes hoping I overlooked this and made a mistake, but that isn't the issue unfortunately.

                Any other ideas?

                Thanks
                Tom

                gloomyandyundefined 1 Reply Last reply Reply Quote 0
                • fcwiltundefined
                  fcwilt @BDPrinters
                  last edited by

                  @BDPrinters

                  The last G30 P2 has F550 instead of Y550

                  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

                  BDPrintersundefined 1 Reply Last reply Reply Quote 3
                  • gloomyandyundefined
                    gloomyandy @BDPrinters
                    last edited by

                    @BDPrinters The usual way to correct large deviations is to run several iterations of the correction (search the forum and you will find scripts to do this), I really would not try to correct 50mm in one go...

                    BDPrintersundefined 1 Reply Last reply Reply Quote 1
                    • BDPrintersundefined
                      BDPrinters @fcwilt
                      last edited by

                      @fcwilt @fcwilt Excellent catch on that typo, I completely missed that. Unfortunately after changing it, the issue still persists

                      fcwiltundefined 1 Reply Last reply Reply Quote 0
                      • fcwiltundefined
                        fcwilt @BDPrinters
                        last edited by fcwilt

                        @BDPrinters

                        I think you M671 is wrong.

                        I think the X50.8 should be the in the 2nd position based on the three G30s but perhaps they are out of order.

                        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

                        BDPrintersundefined 1 Reply Last reply Reply Quote 1
                        • BDPrintersundefined
                          BDPrinters @gloomyandy
                          last edited by

                          @gloomyandy I will take that into account next time I run into this issue (hopefully never but you never know).

                          Somehow it worked fine enough to be able to change my calibration settings back to where they were before, so I am happy for now about that

                          1 Reply Last reply Reply Quote 0
                          • BDPrintersundefined
                            BDPrinters @fcwilt
                            last edited by BDPrinters

                            @fcwilt Couple questions with this.

                            What makes you think the order could be wrong? Not trying to challenge what you are saying, I just don't see what you are seeing to come to that conclusion, some clarity on that would be welcomed.

                            In my config file, I have that specific z screw being listed third, but in the bed.g file, it is set to be the second probe of the three to be probed. Do the screws need to be probed in the same order in bed.g as they are listed in the config.g?

                            Essentially, how it is set up now, I probe 1,2 then 3,(see below) but the order in the config file would say to probe 1,3, then 2. Is this an issue?

                            Also, I have since changed the bed.g probing locations to a more exact number, the original ones were rough estimates taken with a tape measure. Do the Z screw locations and the probing locations need to be the same? My initial thought is that they do not need to be, as it is the actual location, but specific coordinates to probe for those stated screws, but I could be wrong.

                            My setup for Z screws is laid out as such

                            (0,0) Home                                     2 screw
                            
                            
                            1 screw
                            
                            
                                                                             3 screw```
                            Phaedruxundefined gloomyandyundefined 2 Replies Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator @BDPrinters
                              last edited by

                              @BDPrinters said in Calibration factors do not equal number of leadscrews:

                              Do the Z screw locations and the probing locations need to be the same?

                              No.

                              The order and position of the points probed in bed.g isn't critical, but the order of the points in M671 need to match the order of the motors in M584.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 1
                              • gloomyandyundefined
                                gloomyandy @BDPrinters
                                last edited by

                                @BDPrinters Just to be clear the M671 locations need to be the points at which the bed actually pivots (this may or may not be the same location as the Z-screw locations, that depends on how the bed is mounted).

                                1 Reply Last reply Reply Quote 1
                                • BDPrintersundefined
                                  BDPrinters
                                  last edited by

                                  One other thing I just noticed is that I get this error just by homing all. Maybe the issue lies there.

                                  Here is my homeall.g file.

                                  ; homeall.g
                                  ; called to home all axes
                                  ;
                                  ; generated by RepRapFirmware Configuration Tool v3.3.16 on Wed Nov 01 2023 09:48:25 GMT-0400 (Eastern Daylight Time)
                                  G91                     ; relative positioning
                                  G1 H2 Z20 F6000          ; lift Z relative to current position
                                  G1 H1 X-555 Y-555 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
                                  G1 H2 X5 Y5 F6000       ; go back a few mm
                                  G1 H1 X-555 Y-555 F360  ; move slowly to X and Y axis endstops once more (second pass)
                                  G90                     ; absolute positioning
                                  G1 X15 Y15 F600        ; go to first bed probe point and home Z
                                  G30 S0                  ; home Z by probing the bed
                                  
                                  ; Uncomment the following lines to lift Z after probing
                                  G91                    ; relative positioning
                                  G1 Z5 F100             ; lift Z relative to current position
                                  G90                    ; absolute positioning
                                  
                                  
                                  
                                  
                                  gloomyandyundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                                  • gloomyandyundefined
                                    gloomyandy @BDPrinters
                                    last edited by

                                    @BDPrinters I don't think your G30 should have the S0 option to it. Just a simple G30 should be fine.

                                    1 Reply Last reply Reply Quote 2
                                    • Phaedruxundefined
                                      Phaedrux Moderator @BDPrinters
                                      last edited by

                                      @BDPrinters said in Calibration factors do not equal number of leadscrews:

                                      I get this error just by homing all

                                      which error exactly?

                                      Z-Bot CoreXY Build | Thingiverse Profile

                                      BDPrintersundefined 1 Reply Last reply Reply Quote 1
                                      • BDPrintersundefined
                                        BDPrinters @Phaedrux
                                        last edited by

                                        @Phaedrux I get the error that calibration factors are not equal to the number of leadscrewsg28.PNG

                                        gloomyandyundefined 1 Reply Last reply Reply Quote 0
                                        • gloomyandyundefined
                                          gloomyandy @BDPrinters
                                          last edited by

                                          @BDPrinters Did you remove the S0 from the G30 command in your homez.g file?

                                          BDPrintersundefined 1 Reply Last reply Reply Quote 3
                                          • BDPrintersundefined
                                            BDPrinters @gloomyandy
                                            last edited by

                                            @gloomyandy Yes, that actually seemed to be the problem for the calibration factors not equaling the number of leadscrews. Things seem to be working fine now.

                                            Thanks to all who have given advice on this, it is much appreciated.

                                            Tom

                                            fcwiltundefined 1 Reply Last reply Reply Quote 1
                                            • Phaedruxundefined Phaedrux marked this topic as a question
                                            • Phaedruxundefined Phaedrux has marked this topic as solved
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA