Auto level using 3 ball screw
-
-
@R006 they should all have separate P numbers for a start...
The S value is wrong if you're wanting to use 5 points.
I also suggest you look at using iteration to perform the measurements more than once -
My bed.g file as an example
; bed.g G32 echo "bed.g G32" M118 P3 S"M118 bed.g" L1 M561 ; clear any bed transform G90 ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed G28 if sensors.probes[0].value[0] == 1000 ; if sensor is value other than 1000 do this, 0=probe attached echo "already homed, going to pick up probe" M98 P"/macros/ProbePickUp" ; probe pick up if sensors.probes[0].value[0] == 0 ; Probe the bed and do auto calibration G90 G1 X14 Y44 F20000 ; go to just above the first probe point while true if iterations = 5 M98 P"/macros/ProbeDropOff" ; probe drop off; end loop abort "Too many auto calibration attempts" G30 P0 X12 Y12 Z-99999 ; probe starboard bow if result != 0 continue G30 P1 X293 Y12 Z-99999 ; probe port bow if result != 0 continue G30 P2 X293 Y274 Z-99999 ; probe port stern if result != 0 continue G30 P3 X12 Y274 Z-99999 S3 ; probe starboard stern S3 = number of z axis motors if result != 0 continue if move.calibration.initial.deviation <= 0.07 break echo "Repeating calibration because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)" echo "Auto calibration successful, deviation", move.calibration.final.deviation ^ "mm" G1 F12000 X149.5 Y177.5 ; probe to center bed G30 F2000 ;Single Z-Probe M98 P"/macros/ProbeDropOff" ; probe drop off G1 Z30 F1000 ; get the head out of the way
-
@jay_s_uk
hi i thourght the s value was for number of motors as in this example from the Duet 3 documentation
G30 P2 X100 Y10 Z-99999 S3 ; probe point 2 near a leadscrew and calibrate 3 motorsi didnt read it correctly
The S parameter on the last G30 command in the sequence indicates that a complete set of points has been probed and instructs the firmware what sort of calibration to perform. -
The S parameter on the last G30 command in the sequence indicates that a complete set of points has been probed and instructs the firmware what sort of calibration to perform.
and
Cartesian/CoreXY kinematics: S-1 will report the Z offset for each probed point, but no calibration is done. S0 specifies that the number of factors to be calibrated is the same as the number of points probed. Otherwise, the value indicates the number of factors to be calibrated, which must be no greater than the number of points probed, eg S3 in the above example with 3 points probed
my understanding is its the number of points
-
@jay_s_uk ok when i set it s4 with 4 points probed i get this error
Error: Number of calibration factors (4) not equal to number of leadscrews (3) -
@moth4017 maybe you're right then
-
@jay_s_uk whick means the documentation on the Duet doc sight is incorrect
-
@moth4017 maybe @droftarts can investigate
-
@jay_s_uk yes i know it's mistake in copy paste.
Please help me
-
What does the console report after you run G32?
If you run it several times in a row, what does it say each time?
How are you homing before?Please share all your config.g and homing files. It would also be nice to know your firmware version and what type of probe.
-
@R006 i ran this code on my printer
G28
;do what you need to deploy probe
G30 P0 X30 Y30 Z-9999
G30 P1 X30 Y270 Z-9999
G30 P2 X270 Y270 Z-9999
G30 P3 X270 Y30 Z-9999 S3This is the result in the console
Leadscrew adjustments made: 1.149 -0.144 -0.766, points used 4, (mean, deviation) before (-0.119, 0.653) after (-0.000, 0.023)
you would need to run the same code again without the G28
and here are my results
Leadscrew adjustments made: 0.006 0.021 0.025, points used 4, (mean, deviation) before (0.019, 0.024) after (0.000, 0.023)you will see that the mean deviation from the first run was
(-0.119, 0.653)
second run
(0.019, 0.024)the more times you run it the deviation should become less ,
-
@moth4017 ok i will try this
-
@R006 hi it would be good to see your config .g file and bed.g file
-
@moth4017
config.g; Drives
M569 P0 S1
M569 P1 S1
M569 P2 S1
M569 P3 S1
M569 P4 S1
M569 P5 S1
M584 X0 Y1 Z2:3:4 E5
M350 X8 Y8 I0
M350 Z16 E16 I1; Auto level, coordinates as per motor order in M584
M671 X150.05:-52.00:372.00 Y375.05:23.50:23.50 S5.0; bed.g
G30 P0 X30 Y30 Z-9999
G30 P1 X30 Y270 Z-9999
G30 P2 X270 Y270 Z-9999
G30 P3 X270 Y30 Z-9999 S3 -
@R006 said in Auto level using 3 ball screw:
M671 X150.05:-52.00:372.00 Y375.05:23.50:23.50 S5.0
this doesnt look correct- M671 X150.05:-52.00:372.00 Y375.05:23.50:23.50 S5.0
if i took a guess at yours it would be
M671 X-52 150: 375 Y-15:318:-15your M671 coordinates need to be in the order of z2,z3,z4
-
@moth4017 sorry it's my mistake in copy paste
My M671 X-52.00:150.05:372.00 Y-23.50:375.05:-23.50 S5.0
and i will try hope so it's working
-
@moth4017 hello,
i try but it's not working
reading
trigger height-1.30
Before auto level:0.240,0.680,-1.317,0.071
After 4 time auto level:0.718,1.511,0.651,1.547then change trigger which is 1.47
Before auto level:0.223,0.119,-1.132,0.722
After 4 time auto level:-0.262,0.415,-0.440,0.636Please help me
-
@Phaedrux said in Auto level using 3 ball screw:
Please share all your config.g and homing files. It would also be nice to know your firmware version and what type of probe.
-
@R006 can you try this probe repeatability test just to see if it is ok
;you need to home all axis's first and make sure your probe is deployed M291 P"Probe will be tested 10 times and return mean and standard deviation. Ok or Cancel?" R"WARNING" S3 ; User must click OK or cancel. ;G28 G30 P0 X150 Y150 Z-9999 G30 P1 X150 Y150 Z-9999 G30 P2 X150 Y150 Z-9999 G30 P3 X150 Y150 Z-9999 G30 P4 X150 Y150 Z-9999 G30 P5 X150 Y150 Z-9999 G30 P6 X150 Y150 Z-9999 G30 P7 X150 Y150 Z-9999 G30 P8 X150 Y150 Z-9999 G30 P9 X150 Y150 Z-9999 S-1 M402
your result should look like this
2/7/2024, 5:01:11 PM G32 bed probe heights: 0.016 0.013 0.012 0.011 0.011 0.009 0.009 0.009 0.009 0.009, mean 0.011, deviation from mean 0.002please post the result