Open Phil1988 opened 5 months ago
Thank you for submitting a PR, please refer to point 3 in "What to expect in a review" in https://github.com/Klipper3d/klipper/blob/master/docs/CONTRIBUTING.md and provide a signed off by line.
Thanks James
Thanks @JamesH1978 for your comment. Added the Signed-off-by line.
Is it sufficient or am I missing something?
Looks like a useful feature, will need test it out. Can you add the files for command documentation. Thanks.
Can you add the files for command documentation. Thanks.
Hey @devond76180 , thanks for your interest. What files do you exactly mean?
What are the parameters for the command? Is it the same as quad_gantry_level? The file would be Config_Reference.md with quadbedlevel added.Sent from my Galaxy -------- Original message --------From: Phil1988 @.> Date: 1/25/24 1:49 PM (GMT-05:00) To: Klipper3d/klipper @.> Cc: Devon Davis @.>, Mention @.> Subject: Re: [Klipper3d/klipper] Added QuadBedLevel feature (PR #6452)
Can you add the files for command documentation. Thanks.
Hey @devond76180 , thanks for your interest. What files do you exactly mean?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>
@devond76180 : Please have a look at the config section in my first comment here. Its all you need, but if you have questions, please reach out to me :)
bed_corners parameters same as quad_gantry_level.gantry_corners? Can you show example?
@madnezzm yes, its similar. Here an example:
[quad_bed_level]
bed_corners:
# X/Y coordinates describing the location of each bed "pivot point".
# These points beeing measured from the coordinates of the nozzle
-170, -5
-170, 634
604, 630
604, -5
points:
# X/Y coordinates of each probe point during a Quad_bed_level command.
# The location is measured from the nozzle coordinates, so make sure to adjust the coordinate according to the probe offset
50, 60
50, 600
540, 600
540, 60
speed: 150
# The speed (in mm/s) of non-probing moves during the calibration.
# The default is 50.
horizontal_move_z: 20
# The height (in mm) that the head should be commanded to move to
# just prior to starting a probe operation. The default is 5.
max_adjust: 7
# Safety limit if an adjustment greater than this value is requested
# quad_gantry_level will abort.
retries: 5
# Number of times to retry if the probed points aren't within
# tolerance.
retry_tolerance: 0.010
# If retries are enabled then retry if largest and smallest probed
# points differ more than retry_tolerance.
I'm currently running this code on two machines, and I really like it. In the coming weeks, I'll likely be depolying it to at least 2 more. It's of particular use on larger beds as it's easier for them to get twisted out of plane. Even on my machine, which has a 9.5mm thick bed, it's pretty easy for the z axis to twist the bed.
So far in testing, one machine went from 0.581mm bed range to 0.395mm range, big improvement IMHO. But even more importantly, this will lead to increased consistency because any bed twist throws off the bed_mesh. Having the probe points bent back into place before each print assures the mesh actually works for the bed. The second machine didn't see much improvement, the bed was pretty flat to begin with. However this module ensures that the bed will return to the same position prior to print.
What's really nice about this has not many changes from code that has been run by voron users for a very long time now, so I don't expect many (if any) strange bugs to pop up in this well tested code.
Thank you Phil for doing the work on this!
Note the "Range" in the before and after pics. Before:
After (please forgive the floating bed, someone messed with the z-offset, and the machine was turned off for the weekend):
Tried the command. got the following error. Used the same config as quad_gantry_level. Assume I did something bad in the config but not sure. Send: quad_bed_level Recv: // probe at 5.000,10.000 is z=1.391418 Recv: // probe at 5.000,580.000 is z=1.338918 Recv: // probe at 250.000,580.000 is z=1.361418 Recv: // probe at 250.000,10.000 is z=1.346418 Recv: // Bed-relative probe points: Recv: // 0: 3.608582 1: 3.661082 2: 3.638582 3: 3.653582 Recv: // Klipper state: Shutdown Recv: !! Internal error on command:"QUAD_BED_LEVEL"
Do you want the klippy.log and where do I send it?
Here is the short cut of the error from the log
Bed-relative probe points: 0: 3.608582 1: 3.661082 2: 3.638582 3: 3.653582
quad_bed_level f1: (0.00018367346938663798, 3.601602818273141), f2: (-9.183673469394933e-05, 3.664572206028035)
Internal error on command:"QUAD_BED_LEVEL"
Traceback (most recent call last):
File "/home/pi/klipper/klippy/gcode.py", line 198, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 135, in
@devond76180
Very little information on this one.
With these pieces I can not help.
Show us your config and add the full log.
Then we might be able to help you.
@clearchris Thanks for your nice feedback and I'm happy with your good result 👍
The bed_corners and gantry_corners are very different. Gantry is only z and z2 which should cover all needed information. Bed_corners is z, z1, z2, z3. If there are cases where Z1 and Z3 cannot be derived in the bed_level case, would this also be true for the gantry_level?
Please show us your config :)
The bed_corners and gantry_corners are very different. Gantry is only z and z2 which should cover all needed information. Bed_corners is z, z1, z2, z3. If there are cases where Z1 and Z3 cannot be derived in the bed_level case, would this also be true for the gantry_level?
You need to enter all 4 points, whether or not they can be derived.
Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html
There are some steps that you can take now:
Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.
Best regards, ~ Your friendly GitIssueBot
PS: I'm just an automated script, not a human being.
It would be great, if a reviewer can have a look and make this feature availible for others. Already 4 different people showed interessed in this here and the results looking good to me.
I have a Anycubic Chiron into VORON Quadent conversion in the works, so this is a really exciting feature; I'd love to see it ported/supported in Klipper-main!~
Quad bed level: Adds QBL feature
QBL is a new function for moving beds with 4 independent z steppers. It is able to flatten/level beds of any shapes like ones with a hyperbolic parabola effect (potato chip). It's based/derived on quad_gantry_level. I did several successfull tests and had no issue at all.
Signed-off-by: Phil Groenewold philgroenewold@gmx.de
Some examples: Bed before:
Bed after 3 iterations of leveling (took ~6min)
Here is the console output during another test of the quad_bed_level:
It started from
points range: 1.017500
after 3 iterations it went down topoints range: 0.006000
Configuration is similar to "[quad_gantry_level]"
So the section would look like this: