-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bed autolevel isn't working on delta-printers. #1731
Comments
I have been having "true" level issues too but I've also been recoding and testing and such. On most recent commits my test array is in the front-right origin although it does still seem to do as many probings. For a bit I had it probing just about the whole bed but I still have more testing and modification to do. |
I've just fixed this in #1740 and will merge that soon. |
This is not mechanics or general delta calibration issue. General movement ( I'm not understand Marlin code very well, looks like |
@roboprint That is unusual, because for delta, if the moves are linear during regular moves, they should also be linear during probing moves. I'm examining the code closely, but so far nothing obvious stands out. I will be messing with homing and leveling code generally, so keep checking the latest code, especially once #1764 is committed. |
I have as well experienced this...I just added more in between probing Z height for now. But a curiosity @roboprint...is your bed leveling probing the whole bed or just a quarter of it? |
I have found problem. It is because of movement isn't split into segments in Generally, the So difference is If you have delta printer you can test this, splitting path in |
Ah that is definitely sound research there. If it were only processing 1 kinematic segment for the whole move I could see how it could bow in a U pattern like that. |
|
Oh yeah cause every segment is coordinating a new movement. Where else is the raw movement used? |
|
@roboprint Thank you for your excellent insight into the issue. I've still been studying the code, thinking all is well and good with the longstanding methodology, but apparently there's some flawed thinking going on. So, what is the comprehensive solution here? Do we just have to call different movement functions for delta during probing, or is this going to be more involved? |
If my...less that excellent understanding of code has a penny for thought...it sounds pretty reasonable. If it's going through prepare_move rather than prepare_move_raw it would be going through the same channel that all print movements go through and get the kinematics calculations for the given type of printer. Or is that a false assumption? |
I think If anyone with delta printer can reproduce this U-movements using Just replace original function:
with this one:
|
Well I could already tell you mathematically your theory was sound. But I did just do an actual test using old skool 3 tower adjustment macros 30mm Z up and yup there's a total bowl curve at 1 segment per second...glad I made it 30mm up lol. If just moving 100 mm straight X or Y...you only notice the effect slightly. But if moving both X and Y (like when the probings move to the next row) it is Very apparent. |
Even at 20 segments per second its visually unnoticable to the naked eye without print layers...let alone 150-200 segments. |
And I just tested the hack...its definitely not doing the 1 segment per second bowl...but it is moving z in an odd fashion like a straight diagonal line...that could be partially due to the Z_RAISE_AFTER_PROBING adding additional height between probings bug that was talked about in another issue. But yeah it does seem the Raw movement code unaltered is not using more than 1 delta segment which over an X and Y consecutive movement is largely noticeable as a bowl or U curve. |
Arg, I just want to go back to the old code sometimes and start over. Moving in a "U" and only probing a corner of the bed on deltas. I wish I had a completed delta to test this on, but right now mine is only half-built, needing a new stronger base to make it rigid. I was comparing this to the "official" delta branch by @jcrocholl and I might have missed something. It looks to be doing the same thing. I will have a closer look. Maybe the way to do this is to still use the more expensive movement, but just reduce the number of segments so it doesn't eat too much processor. Or does it matter? Delta is expensive computationally anyway. |
In terms of probing its only moving in straight lines, it by far uses more processing to do circles because so much gcode and changing is happening per second. Shouldn't be of any issue to use the normal movement call using the segments per sec we use for printing. |
Anyone down to test @roboprint's solution? |
@thinkyhead I did test it the posts above were my results. I've just gotten through testing the current merges and it seems Taking that off everything seems to work pretty good except for that little curve that happens from it only using 1 segment to make the diagonal movement as it probes the next row. And it's still only probing the same quarter pie of the bed. On the + side the |
Hey this is trippy @thinkyhead ...G29 remains to do the quarter pie on my printer...if I do G29 E...it now does the whole bed! Thats like...the most complete calibration I've seen so far. |
@Natealus Interesting. So the option intended to just make the probe raise between probes… also makes the bed probing do the correct area? Gotta love code. |
Yes it seems if I had anything after the command too like //comment type thing it screws with it too. The kicker is that G29 by itself now does not extend the servo probe and just drove the nozzle down to the bed. Luckily I was watching for something odd to happen. Any other additional stuff after it sends it to do the quarter pie with servo up down for each probing. Probe goes up and down with the G29 E thats working right now. Probably a good thing too cause it swings the nozzle pretty damn close to the surface when switching to the next row cause of only using 1 delta segment. I increased BETWEEN_PROBINGS to 10mm to make sure it doesn't contact. |
@Natealus I hope your GCode comments are actually starting with Yeah, must deal with that U-shaped move very soon! |
Guess that would help I tend to not do it anyways but I saw some like that in the program before. Perhaps they were mistaken in the first place lol. Yeah no its correct now in the places they commented things in default settings. Probably was a typo I saw once. |
I'm heating up for a test print to see how this bed leveling is actually doing now. :) |
From the print it looks like the bed leveling is correctly applying to the delta radius/grid. +1 I have to redo my Kapton tape from all the...unfortunate testing incidents...lol but after that then I can fine tune the probe z offset and switch to a 0.25 mm nozzle and get really detailed tests and results. :) |
@Natealus Does that include |
Still working well with
|
And
This is what a normal one looks (with it commented out)
|
Doing some tweaking at #1811… |
I will do more testing after a...4-6 hour nap. ;) |
i have similar. when tuning between the rows of dots head moves in a parabola |
Yeah I detailed some of my testing in another article on this issue too. I think thinkyhead might look at it when he has time. |
Lots of probing and homing logs to read through on #1769 and elsewhere… |
Getting closer, I have a rolled-back branch ready for testing. Please move to #2040 to help narrow down the most likely culprit. |
With the serious leveling issues patched up, we can next ensure that moves aren't U-shaped any more. I probably asked this before, but does the problem exist with the @jcrocholl branch? |
How is this bug fix going? |
@a4jp-com Generally bed auto-leveling is working well, with some lingering issues. Moves between probes on deltas may still be u-shaped, but it's easier to tune the height between moves to compensate for any lowering of the nozzle. We might just close this issue and work on the more specific issues in each of their own topics.... |
Okay. Cool. |
Bug Fixing Round 2 is done ^^ |
Is anyone having U shape problem? |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Hello, I'm using latest firmware (commit f47fc87) with delta-printer and trying to setup auto bed level feature, but this feature isn't working at all.
Array of bed level points
bed_level[][]
is filled inG29
inMarlin_main.cpp
. Bed level must be adjusted in functionprepare_move()
, butadjust_delta()
is not called fromprepare_move()
, so Z-position of hotend is not adjusted at all.See line 4268 here for reference: https://github.com/jcrocholl/Marlin/blob/deltabot/Marlin/Marlin_main.cpp#L4268
Also, then hotend moving from one row of bed calibration points to another in
G29
(i.e. then changing Y position) it moves not straight line like '---', but touching bed in the middle of move moving like 'U' letter.The text was updated successfully, but these errors were encountered: