So, I've got the Promega, now I've pretty much rebuilt it. Linear rails for Z optical z end stop, plus much more. It's fantastically precise now in the Z axis.
There are oddities though. There are inconsistencies in the behavior.
If I disable all compensation, I can go from home to Z0 and it's perfect. If I enable mesh compensation, same story, works just right. Seems like the compensation isn't in use when manually sending g-code.
Now, I've manually mesh probed many times, but it never seems to work right.
When printing, the mesh surface seems to be calculated correctly in terms of shape and following the contour of the bed. The problem is, it's always too high. After the print starts, I have to baby step it down anywhere from .6 to 1+mm. Once I do that, like I said, it prints nicely.
Now, I cancel the print. I should mention, I modified the stop and cancel macros so nothing is disabled and the motors aren't turned off, etc., so I don't have to re-home. I print again, and the nozzle is too high again by the same amount. So I baby step it more. Now the baby steps are twice as much. Repeat, repeat, repeat and the baby step offset is now triple, quadruple, pentuple.
So, while trying to debug all of these bizarre behaviors, it's not obvious when different features are enabled. It seems like the baby steps are forgotten, why is my probing always too high, etc.?
I feel like there's a state machine with a sense of humour in there.
What are the rules for when compensation effects the Z, ... again for when baby steps are taken into account? How are they used? Other printers have "live Z tuning" which is a permanent offset dialed in, but it really seems like that's not the case with baby steps.
It's all so very conflating and obfuscating when trying to debug.
What are the rules/state machine exactly?
@dc42, bump