Calibration factors do not equal number of leadscrews
-
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
-
@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)?
-
@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.
-
@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
-
@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?
-
@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 -
-
@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...
-
-
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
-
@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
-
@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```
-
@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.
-
@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).
-
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
-
@BDPrinters I don't think your G30 should have the S0 option to it. Just a simple G30 should be fine.
-
@BDPrinters said in Calibration factors do not equal number of leadscrews:
I get this error just by homing all
which error exactly?
-
@Phaedrux I get the error that calibration factors are not equal to the number of leadscrews
-
@BDPrinters Did you remove the S0 from the G30 command in your homez.g file?
-
@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
-
-