Clarification of self-leveling bed
-
Hello and thanks for the reply. So, if I understand correctly, all the values in G30 refer from X0Y0 up to the nozzle tip and the system takes into account the bltouch offset set in G31 .... Correct?
-
@luc Yes that's correct
-
G30 does not take the offset on the calculation. Only M557 does.
So for example If you want to probe at X200 Y200 and your probe ist 20 mm to the left you have to have this code
G1 X180 Y200 G30
But when you run a
G29 S0
then the offset will be taken into place.
So If your M557 isM557 X5:200 Y5:200 P3
and your G31 says X20 Y0 Z0
Then the first probe point ist X20 but the head will move to X40 to compansate for that. Only keep in mind that the last Point is X200 so the firmware will try to go to X220. Sometime the carriage can not get that far because it goes into a mechanic end!
Edit to clarify
G30 X200 Y200 P1
will use the offset of the probe. Only a normal G30 ignores them! But the command can not be used to home Z
-
Thanks for the replies. I did some tests and I think I got better accuracy.
I still have a doubt: In M558 I added "A3" to get the probe 3 times in the same point but I didn't get anything. I'm definitely wrong.
This is mine: M558 P9 H5 F120 T6000, what should I do to probe 3 times for each point? -
@luc See https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M558_in_RepRapFirmware_2_x_and_earlier
Annn Maximum number of times to probe each point, default 1. Maximum, as of 2.03, is 31. Setting M558 A parameter to anything >31 set it to 0 instead of to 31
Snnn Tolerance when probing multiple times, default 0.03mmThe A and S parameters control multiple probing. Probing is repeated until two consecutive probe attempts produce results that differ by no more than the S parameter; then the average of those two results is used.
So adding A3 may result in only two probes, if they are within 0.03mm of each other:
M558 P9 H5 F120 T6000 A3 S0.03
Don't forget if you change config.g you need to reset the board, or run M98 P"config.g" to implement new M558 command, or enter the command into the Gcode console. Check settings by sending M558 with no parameters, eg (from RRF3):M558
Z Probe 0: type 1, input pin zprobe.in, output pin nil, dive height 5.0mm, probe speed 120mm/min, travel speed 6000mm/min, recovery time 0.00 sec, heaters normal, max taps 1, max diff 0.03Ian
-
Yes, I've been reading that guide since yesterday but something escapes me.
I had entered this M558 P9 H5 F120 T6000 A3 without "S0.003" and it didn't work. Now I don't know if it didn't work because I didn't write "S0.003" or because I didn't reset the card.Is it also sufficient to turn it off and on again to reset it? If yes I had.
-
Normal power reset is good enough. What is now you config.g?
-
luc
Wed 23 Sep 2020, 17:47At this time the leveling system seems to be working correctly. I would like to try to probe the same point 3 times in a row:
; Drives
M569 P0 S1 ; Physical drive 0 goes forwards
M569 P1 S1 ; Physical drive 0 goes forwards
M569 P3 S0 ; Physical drive 3 goes backwards
M569 P2 S0 ; Drive 2 goes forwards Ant Sx
M569 P5 S0 ; Drive 5 goes forwards Post Center
M569 P6 S0 ; Drive 6 goes forwards Ant Dx
M584 X0 Y1 E3 ; Driver 0 controls X motor, 1 control Y, 3 control E motor
M584 Z2:5:6 ; Driver 2,5,6 for control the three z-axis
M671 X-54:149:350 Y54:374:54 S10 ; Defines leveling screw locations-Snn Maximum correction in mm to apply to each leadscrew dal nozzle
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
M92 X160.00 Y160.00 Z800.00 E880.00 ; Set steps per mm; Speeds
M566 X900.00 Y900.00 Z60.00 E3000.00 ; Set maximum instantaneous speed changes (mm/min) Jerk (era E1600)
M203 X15000.00 Y15000.00 Z600.00 E6000.00 ; Set maximum speeds (mm/min)(era Z400)
M201 X1000.00 Y1000.00 Z100.00 E6000.00 ; Set accelerations (mm/s^2)(era Z60)
M204 P3000 T2000 ; Set printing and travel accelerations; Motor currents
M906 X1700.00 Y1700.00 Z1700.00 E1100.00 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 X293 Y290 Z270 S0 ; Set axis maxima; Endstops
M574 X1 Y1 S0 ; Set active low and disabled endstops
; M574 X1 Y1 S3 ; use sensorless homing for X and Y, endstops are at low end; Z-Probe
M574 Z1 S2 ; Set endstops controlled by probe
M307 H3 A-1 C-1 D-1 ; Disable heater on PWM channel for BLTouch
; M307 H5 A-1 C-1 D-1 ; Disable heater on PWM channel for BLTouch
M558 P9 H5 F120 T6000 ; Set Z probe type 9 to bltouch and the dive height + speeds
G31 P25 X33.5 Y0 Z1.00 ; Set Z probe trigger value, offset and trigger height (0.9)
M557 X40:260 Y30:270 P3 ; Define mesh grid; bed.g
M561 ; clear any bed transform
G29 S2; Clear bed height map
; Probe 3‐point
G28 ; home
G30 P0 X40 Y30 Z-99999 ; probe near front left corner
G30 P1 X149 Y267 Z-99999 ; probe near center rear
G30 P2 X280 Y30 Z-99999 S3 ; probe near front right corner -
@luc said in Clarification of self-leveling bed:
M558 P9 H5 F120 T6000
to
M558 P9 H5 F120 T6000 A3 S0.003
-
A3 is just saying probe up to 3 times or until you get 2 consistent results, whichever happens first. If you specify an S value it will use that for the consistency variance. The default is 0.03mm difference.
Why do you want 3 times each?
In my opinion if you want the highest accuracy you would want a high A value and a small S value and then let the probe go as many times as needed to get the accuracy you set with S.
For example, I use A10 and S0.003. Sometimes it will probe twice and both will be within 0.003 of each other and it's done. Other times it may take 3 or 4 or more attempts.
Also, if you're using a BLTouch you can increase accuracy simply by slowing down the dive speed from 120 to 60, and adding a brief pause before the probe to allow the pin and printer to settle with a R0.2 which pauses for 0.2 seconds.
-
@Phaedrux said in Clarification of self-leveling bed:
Why do you want 3 times each?
I try and try to understand the logic of the operation.
I did 3 tests with three attempts and it was very interesting without the pause and without changing anything else: in two points he probed only 2 times and in one point he probed 3 times. This result makes me reflect and I try to understand why only at that point.In my opinion if you want the highest accuracy you would want a high A value and a small S value and then let the probe go as many times as needed to get the accuracy you set with S.
For example, I use A10 and S0.003. Sometimes it will probe twice and both will be within 0.003 of each other and it's done. Other times it may take 3 or 4 or more attempts.
Also, if you're using a BLTouch you can increase accuracy simply by slowing down the dive speed from 120 to 60, and adding a brief pause before the probe to allow the pin and printer to settle with a R0.2 which pauses for 0.2 seconds.
very interesting and useful to know .... thank you very much
-
I suggest you do a probe repeatability test, it will show you the results of several probing moves in a row and you'll see how there is a bit of variability.
Do this procedure but run the G30 S-1 multiple times and check the results. Now you can modify some of the parameters in M558 and redo the test to see how they change the results.