M48 Measure Z Probe repeatability and print to serial output.
-
I've added a note to https://duet3d.dozuki.com/Wiki/G-Codes_not_implemented.
-
The M48 without an X and Y location appears to simply move right to the end of travel.
Could it be changed so that without X an Y, it probes at the current location?
The intended use is:
Probe_Corners.g
; Test repeatability at mesh bed compensation locations
G1 X5 Y5
M48
G1 X300 Y5
M48
G1 X300 Y200
M48
G1 X5 Y200
M48 -
M48 in RepRapFirmware does nothing, unless you have a file called M48.g in the /sys folder (in which case, it executes that macro).
-
@dc42 I understand that. The macro early in this thread that takes 10 measurements at the point X151 Y161 works fine in the /sys folder. However, if it is edited to remove the X and Y co-ordinates like:
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 Z-9999
G30 P1 Z-9999
G30 P2 Z-9999
G30 P3 Z-9999
G30 P4 Z-9999
G30 P5 Z-9999
G30 P6 Z-9999
G30 P7 Z-9999
G30 P8 Z-9999
G30 P9 Z-9999 S-1it does not stay at the current position but moves in X. I believe it should just take 10 points at the current location without moving.
-
@dc42 sorry to bring up such an old thread, but im having trouble trying to get this IR sensor to work.
ive got the macro saved, but where to do i view the SD from the probed points?
-
@joehsmash said in M48 Measure Z Probe repeatability and print to serial output.:
@dc42 sorry to bring up such an old thread, but im having trouble trying to get this IR sensor to work.
ive got the macro saved, but where to do i view the SD from the probed points?
The final G30 command (with the S-1 parameter) should display the mean and standard deviation.
-
Oh boy, this is some old thread. But... I actually tried G30 without X and Y parameters (G30 P0 Z-9999 - to be specific).
What it does it moves head according to pobe offset and basically probes in Z. However... it does not move the head back to original position. As soon as You give the X and Y this is not a problem, but probing current location few times basically requires explicitly moving head to the original position using relative move with X and Y set to Z probe offset after each G30. Is that intended behavior of G30? -
@BoA said in M48 Measure Z Probe repeatability and print to serial output.:
Is that intended behavior of G30?
That's normally how it's used in homeall. You position the probe manually with a G1 XY command to place the probe where you want, and then send G30 by itself to probe the bed, then you manually position the head where you want it with another G1 XYZ move.
-
@Phaedrux Yes. G30 without ANY parameter works fine, but as soon You use it like that: G30 P0 Z-9999 it move the head according to z probe offset.
-
@BoA https://duet3d.dozuki.com/Wiki/Gcode#Section_G30_Single_Z_Probe
Using the P parameter implies providing an X Y coordinate.
-
@Phaedrux So shoudn't it return an error if X and Y are not given?
-
@BoA I'll check.
-
@Phaedrux Also... executing this G30 Px sequence causes printhead going outside of XY limits (which is understandable, as it allows to probe outside of bed area).
-
@BoA Yes that is mentioned too.
Caution: the XY coordinates are permitted to be outside the normal printable bed area! This is intentional, because some printers (e.g. delta printers) benefit from probing areas not used for printing.
-
@Phaedrux That is true, and it is acceptable and even desired, but ONLY if you specify X and Y. And probing "current location" by G30 P0 Z-9999 should not lead to "brrr-brrr-brrr" noise from steppers
But perhaps this is just my opinion.
-
This is similar enough that I don't think it warrants its own thread.
Is there a way to use multiple probes per point and use the average of those measurement as the Z height for that point.
The script above gives me pretty good deviation (±0.005mm, and it's consistant enough that I imagine this is a actually the stepper resolution), but I still feel like double or triple probing would be a better practice.
Is there a way to do this today? do you think it's worth implementing?
-
@Leav When You define z probe with M558 there are params:
Snnn Tolerance when probing multiple times, default 0.03mm
and
Annn Maximum number of times to probe each point, default 1.
This probes until results are within defined tolerance.
Not sure if this does averaging measurements tho
-
Thanks! (link to g-code reference page)
The 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. However, if the number of attempts specified by the A parameter is reached without getting two consecutive results within tolerance of each other, no further probe attempts are made and the average result of all the attempts is used.
Looks like I could manipulate this to do exactly what I wanted! (1 femtometer repeatability goal, here I come!)
-
@Leav said in M48 Measure Z Probe repeatability and print to serial output.:
Is there a way to use multiple probes per point and use the average of those measurement as the Z height for that point.
Using a S parameter of -1 results in averaging the number of readings specified by the A parameter.
Frederick
-
@dc42 If I use the macro:
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
M401
G30 P0 X151 Y161 Z-9999
G30 P1 X151 Y161 Z-9999
G30 P2 X151 Y161 Z-9999
G30 P3 X151 Y161 Z-9999
G30 P4 X151 Y161 Z-9999
G30 P5 X151 Y161 Z-9999
G30 P6 X151 Y161 Z-9999
G30 P7 X151 Y161 Z-9999
G30 P8 X151 Y161 Z-9999
G30 P9 X151 Y161 Z-9999 S-1
M402It probes on the center of the bed X=0, Y=0 (I am using a Delta). Shouldn't it probe on X=151, Y=161????