G10 vs g31
-
I am having issues wrapping my mind around these two.
I have a Creality CR10 s5 printer. The printer uses a BLTouch probe to set it's z zero. The probe is 21 mm offset in X (towards x=0) from the nozzle.What I would like to see when I ask for a 'home all' is that the carriage goes to position x250 y250 PLUS the probe offset so that the actual probing is done at x250 y250. Once the printer has set z=0 then I expect the nozzle to go to x250 y250
I can't seem to make that happen - the carriage positions the nozzle over x250 y250 and then does the probing for z=0 but since the BLTouch is offset, Z zero is actually measured at x229 y250.
Forget about the offset being positive or negative, that can be sorted out later. At this point I would just like the probing to happen offset from the nozzle.
I have tried setting the offset with G31 and also G10 but when I do a g1 x250 y250 the nozzle goes to the center of the bed but if I follow that up with G30 to set z zero the carriage does not move - the BLTouch doesn't get moved to x250 y250.
-
Do you mean the probing during G29 or when?
I don't know if this helps, but here's an example using the object model and prove offsets to reach a probe position.
; bed.g ; called to perform automatic bed compensation via G32 ; M291 R"Manual Bedleveling Assistant" P"Probe the bed at 3 points and indicate amount to adjust screws." S3 M561 ; clear any bed transform G28 ; home all axes M561 ; clear any bed transform M913 X50 Y50 Z50 M671 X-15:142:295 Y305:-15:305 P0.5 ; adjusting screws at rear left (-15,305), front middle (142,-15) and rear right (295,305), thread pitch 0.5mm ; Probe offset X-43.3 Y32.7 G30 P0 X{45+sensors.probes[0].offsets[0]} Y{260+sensors.probes[0].offsets[1]} H0 Z-99999 ; probe at rear left G30 P1 X{183+sensors.probes[0].offsets[0]} Y{0+sensors.probes[0].offsets[1]} H0 Z-99999 ; probe at front middle G30 P2 X{320+sensors.probes[0].offsets[0]} Y{260+sensors.probes[0].offsets[1]} H0 Z-99999 S3 ; probe at rear right M98 P"0:/macros/Calibration/Bed Leveling/1_Center Probe on Bed"
-
@Phaedrux, no, I haven't even gotten to doing a bed mesh at this point. All I am attempting to do is set z zero at position x250 y250. That is where the nozzle is at that point. The BLTouch used for probing is offset by 21 mm. The printer does the probing but it does not move the BLTouch over the point I want to probe x250 y250 but probes with the nozzle at that position. The result is that the probe effectively happens at x229 y250.
-
Yea that's expected got a single g30. It proves at the current location. The mesh will take the offset into consideration though.
My example shows how you could format a g1 command using the object model to adjust the position by the offset.
-
@Phaedrux, can you confirm that I understand this correctly: When the printer does an initial 'home all', it does not take any tool offset into account so that if the center of the bed is at x250 y250 but the z probe is not at that location, it uses the Z at the probe location to be the z at the nozzle location.
Thinking about it, I guess it doesn't matter if the bed is probed and automatic compensation is switched on. For those that are lucky enough to not need bed compensation because they have a flat bed it makes no difference anyway.I will take a closer look at your bed.g file. I will also run some tests to confirm that probing is done at the right point when running a bed surface scan. Looks like I got myself all screwed up when I was trying to figure out what was happening.
Thanks for clarifying.If I might ask another related question: For a tool changer I would set g31 at zero and then set g10 for all the individual tools. For a single tool printer, do I do the same thing - set g31 to zero offset and set G10 to the tool offset from the probe? If so, why do we have G31? Under what circumstance would one set G31 to anything other than zero?
-
@jens55 said in G10 vs g31:
For a single tool printer, do I do the same thing - set g31 to zero offset and set G10 to the tool offset from the probe?
No, for a single tool you'd usually have the G10 offsets as 0 since the nozzle tip is your only reference point. So your G31 would be the offset between the nozzle tip (0) and the probe position.
@jens55 said in G10 vs g31:
When the printer does an initial 'home all', it does not take any tool offset into account so that if the center of the bed is at x250 y250 but the z probe is not at that location, it uses the Z at the probe location to be the z at the nozzle location.
Well you've moved the nozzle to x250 y250, not the probe. It does use the offset so when you probe it's using the location of the probe. If you want to probe the center of the bed, move the probe to the center.
In my examaple, it's using an absolute position and adding the probe offset, but you could also use the object model entry for the M208 axis limit and divide by half (or whatever math makes sense) first and then apply the offset so that the probe will go to the center regardless of what the M208 or G31 is changed to in the future.
-
@Phaedrux, I am sorry for being dense, there probably is a very logical answer but:
In the following scenario, I am only concerned with the first of 4 probing points. The BLTouch is 21.6 mm to the left (towards x=0) of the nozzle.
The probing command in my macro is
M557 X40:400 Y18:400 P2:2 ; set area to be probed and number of probe points
M566 Z0 ; set jerk to zero
M201 z2 ; set acceleration
G29 ; bed probeThe offset is done in a file called Toffset.g and is:
G31 p25 x21.6 y-1.2 z0.30
G10 p0 x0 y0 z0What in fact happens is that the first probe point is at right around x0 for the BLTouch (I am ignoring y here) and the nozzle is obviously about x21.6. The map point generated says that it is at X40!
So, if I am printing something at x40 y-whatever the height offset being applied was measured around x0 y-whatever.
If I manually run Gt0 P0 it reports as 0 and if I run G31 I get the correct offset.
I don't get it.
About the only thing that I haven't taken into account is the coordinate system and relative vs absolute position but I am not applying any of those (as far as I know)
Edit: the height map records the first probing point at x40, just like what I asked it to do in the M557 command.
I would expect the BLTouch to actually probe at x40 but instead it probes at roughly x0 -
OK, it's official, I am too old to play with 3D printers
I reversed the sign in the offset to -21.6 (from +21.6) and did a probing run. The first point probed was at x61.6.
The height map would still record that as x40. If I now do a g1 x40 then the print nozzle does actually end up at roughly (by eye) the point where the first probe operation happened.
This will require some more experimenting to sink in but at least I know that it is actually measuring the right point (x40) for which the height map has a measured z offset. -
@jens55
I remember dimly, that I also had an AHA-effect with positive or negative offset....but even when I wrap my mind around it this time, the next time I start all over again... -
@o_lampe, thanks for that!
-
@jens55 this is how it works:
-
Decide where you want the Head Reference Point (HRP) to be. All offsets will be relative to this point. On a single nozzle machine it is usually chosen as the tip of the nozzle. On a single head/dual nozzle machine it cold be chosen as the tip of one of the nozzles, or midway between them. On a tool changer it would be somewhere on the tool pickup head. The E3D tool changer has a Z probe n the tool pickup head and the position of that probe is normally used as the HRP.
-
Then define the M208 limits as where the HRP can reach, and all G10 and G31 offsets relative to the HRP. Exception: for historical reasons the G31 Z parameter is the height of the HRP at which the probe triggers, whereas if expressed as an offset it would be the negative of that value.
-