True bed leveling but in reverse?
-
Hello,
my printer is set up to use 3 independent Z motors, I recently added individual end stops for each motor on it's maximum position. I use touch probe as minimum limit.my config:
M584 X0 Y1 Z7:8:9 E3 ; Endstops M574 X1 S1 P"xstop" M574 Y1 S1 P"ystop" M574 Z1 S2 M574 Z2 S1 P"exp.e4stop+exp.e5stop+exp.e6stop"
when I power down my machine the bed tilts so much that I can't run true bed leveling anymore. that's a problem because I like to start it remotely.
Is it possible to create a macro which moves the individual Z drives (simultaneously!) until they hit their assigned end stop?
Then I could run true bed leveling again. -
That's basically already how it would work to home the Z axis using a endstop move to Z max.
-
@Nordle you can add Z endstops and pre-home before true bed leveling. If you use optical or hall effect sensors, the bed can pass through the homing point which is helpful if you home close to the print head. Alternately you can home to Z max, and then drive to a small Z distance for tramming.
-
@oliof said in True bed leveling but in reverse?:
,,...........Alternately you can home to Z max, and then drive to a small Z distance for tramming.
I'm not trying to be pedantic here but one of my pet hates is that people use the words levelling and tramming interchangeably when they are not the same thing. From the brief description of the OPs printer, it seems to me that the 3 lead screws are mounted at the base of the printer frame (as is usually the case). So levelling the build plate (and assuming that the plate is flat), will result in the bed being level with a plane described by the Z position of the 3 lead screws. BUT, if there is any twist or misalignment of the X or Y gantries at the top of the machine with respect to that plane, then the bed will not be tram. That is to say, a plane described by the XY gantries will not necessarily be parallel with the (levelled) bed. So the process of tramming would involve adjusting the XY gantries, after the bed has been levelled, to ensure that the bed plane is truly parallel with the XY gantry plane. There is only one case where tramming and levelling are the same, and that is if the lead screws are suspended from the XY rails.
A quick and dirty way to check if the bed is both level and tram, and assuming 3 lead screws are employed in a triangular fashion, is to probe the bed near each lead screw as normal and set it level. Then probe the bed at positions diametrically opposite the lead screws. If there is a difference, the bed is level but not tram and you'll never be able to do an edge to edge print.
-
@Phaedrux
Should this work to move to Z max?G91 G1 H1 Z420 F600 G1 Z-3 G90
@oliof thanks, I'll keep that in mind for a future upgrade
@deckingman I appreciate the explanation as a non native english speaker.
Would mesh bed compensation take care of that? -
@Nordle said in True bed leveling but in reverse?:
@deckingman I appreciate the explanation as a non native english speaker.
Would mesh bed compensation take care of that?In theory it should, as long as the mesh probe points cover the entire build plate. But being a mechanical engineer I prefer to get things right "mechanically", rather than rely on software to compensate for errors. Which is why personally, I have 3 lead screws driven by a single motor and a continuous belt, and a bed which is level, tram, flat, and stays that way without any form of compensation. Having had a machine which needed constant checks and adjustment ever time the power was cycled, I know which I prefer.
-
@Nordle said in True bed leveling but in reverse?:
Should this work to move to Z max?
G91 G1 H1 Z420 F600 G1 Z-3 G90
I think I need different H parameter. but I am not sure exactly
-
@Nordle that looks correct to me. H1 is correct, it means move each motor the specified amount, stopping early if the endstop is triggered.
-
@Nordle That looks correct. What seems to be the problem?
Your Z endstop is defined as a max endstop (
M574 Z2 ...
), and H1 terminates the move when the endstop switch(es) is/are triggered and sets the axis position to the axis limit defined by M208. And you're using relative coordinates, which is correct.Can your axis move more than 420mm? If so, increase the Z move to the maximum it can move, then add 20mm.
Make sure that the three endstops are defined in the same order in the M574 command as the corresponding Z motors in your M584 command, ie that exp.e4stop is on the same Z axis as motor 7, exp.e5stop is on the same Z axis as motor 8, and exp.e6stop is on the same Z axis as motor 9.Ian
-
Works like it should, thanks for the clarifications
-
-