-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
M851 behaves strange (nozzle crashes into bed) #4577
Comments
G92 can't be used for this kind of trickery anymore because it's been fixed. The software endstops now remain in the same relative positions. Thus if Z is at zero ( |
Your Do an |
Perhaps the I will try this evening the BTW: My workaround for now is the following: G28 ; home all axes
G92 Z-3 I have no idea why it works, but it does. |
Did you try without G92 or has it always been in the start script? |
When I used |
I have the same problem. If the Thanks You! |
@christianh17 , @rubimart |
@Blue-Marlin: Unfortunately I did not use git and a local repository, I just downloaded the source code. The zip file ist from August, 6th 9:48 MEST. As far as I remember there were three commits on this day, so it could be after commit 5347f39 . |
In Version.h it shows RCBugFix. I downloaded and unzipped the files August, 04. 13:59 |
I just updated to 58c8e6c and now it works as I think it should work. I use G28 ; home all axes
M851 Z-1.1 in my start script, for me it means: the inductive probe senses the bed when there is 1.1 mm distance to the board. That is reasonable. |
I'm having a similar problem: Using RCBugFix (58c8e6c), it seems that the This is a new problem - everything was fine as of a few days ago, though after updating to the latest today I'm seeing this new 'behavior'. I'll take a look at the most recent commits and see if I can figure out what might be going on, but in the meantime, any thoughts? EDIT: I'm using ABL, grid mode. |
Really strange. I just reverted to RC7 and I'm seeing the same thing. After G28, Z0 is where it should be (nozzle touching the glass); after G29, Z0 is above the bed by what seems to be the M851 Z offset. I've done a M502, M851, then M500, but there's no difference. I was having no trouble up until today. Scratching my head. |
Back to the latest RCBugFix. I've sorted out that I can 'trick' it into 'working' by increasing the M851 Z offset from -0.8mm (nozzle on glass after G28, G1 Z0) to -1.5mm (nozzle on glass after G28, G29, G1 Z0). I'm quite sure the -1.5mm offset would cause a nozzle crash after G28 if I were to send it to Z0 without first doing a G29, though I don't intend to try it. |
Changing the offset after |
@bgort What kind of probe are you using? A Z offset of -0.8 implies that your nozzle is 0.8mm above the bed when the probe triggers. Please ensure you are not using
That certainly is curious. What is your |
Understood. I am setting it prior to G28/G29,
It's an IR sensor/probe, and though it's not as repeatable as I'd like, it's decent. There seems to be a +/- 0.05-0.15mm variance based on time of day (light entering from the adjacent window, I think), so will be replacing it with a BLTouch shortly. |
@bgort If you enable |
That's my next step. Was just finishing up a print and will try it directly. |
Logged M851->G28->G29->G1 with both offsets, attached here. Some annotations surrounded w/*s. |
Formatted with both CR+LF, in case the previous version is a mess. |
Just saw your edited comment.
Yes, that's right - the IR probe triggers with the nozzle ~0.8mm above the bed. Replacing it with a BLTouch today, which should result in a more reliable trigger height (though I don't think that's a factor here). I'm not using G92 or M206 anywhere.
|
Disregard this. Thinking back, I did experience some weirdness, generally, after moving to RC7 and then RCBugFix. At the time, I chalked it up to the new IR sensor being flaky (new printer, new sensor - a lot of moving parts at the moment), but I just worked around it by setting the offset to what was necessary after |
I've replaced my flaky IR sensor with a BLTouch, and continue to see the same issue. The Z offset necessary to put nozzle on glass at Z0 after I don't believe this is just a configuration issue but is instead a bug, though I am, of course, open to configuration-related suggestions if you feel otherwise, @thinkyhead. |
@Roxy-3D Does this bed level matrix look healthy to you, or is this the sort that could throw off the Z position?
|
Yes, that looks fine. In fact... Unless they are printing something really big, this is saying they have their bed pretty level. Check out the +0.000002 in the first column. That almost for sure should be +0.000000 but I think we are getting some floating point round off error. It is so far down into the 'noise' level it won't affect the calculations or positioning of the nozzle. |
@bgort After the above PR is merged give |
Odd, in my version -- a few commits behind, it looks like -- I have
Where yProbe is perhaps incorrectly referenced prior to being initialized, and perhaps incorrectly referenced period? The xProbe float also has the same problem in what I'm using. xProbe and yProbe have been fixed as of 28d1e5a. I suspect that will take care of the axes flying off into never-never land, and explains the inconsistent behavior (the uninitialized, effectively random, variable). I'll do a pull to get to current and then test again. Also, I'll gladly add the code to produce additional debug info, and send the log, if you think that's still relevant? |
Let's see what the latest version of RCBugFix does for you. But I'm still concerned about this: #4577 (comment) Oh wait! That thing I'm concerned about is the first deploy of the grid probe. That is consistent with what you pointed out. The latest RCBugFix probably will clean that up. Let's load that and see what happens! |
The latest RCBugFix resolved the probing-in-the-same-place issue, and there's been no attempt, as of yet (6-8 trials with Now I'm just seeing the original problem - that Z0 is higher after Setting a I'll log everything again momentarily, now that things are seemingly back to 'normal'(-ish) ... |
Yeah, that's definitely concerning. I'd think it should never try to set a position beyond a min or max. I need to spend some time getting up to speed on how everything works so I can meaningfully contribute. Mostly just flopping around right now. |
Well... Another annotated log will give us good information about the Z-Offset issue you are seeing. If you annotate another one for us with it probing in the right places... That will be a very valuable contribution! |
This log from a bit ago shows the problem, albeit with an IR sensor instead of the BLTouch: I'll do another with the BLTouch momentarily. |
Here's a just-now annotated debug log using the BLTouch: |
I haven't looked at the log in great detail. But at the very end of it, it says:
At the very end, when you did the G1 Z0.000 did the nozzle end up just barely touching the glass? If so, isn't this what we want? |
Yes, it is, but the problem is that it's necessary to use different To get nozzle-on-glass after The log reflects that in that there's two sections - one series of |
OK... I'll review the logs with that information in mind. Do you know of anything that is .8 mm big in your system? (I'm just looking for a clue why the difference is .8mm) |
No, I don't believe anything in particular is 0.8mm - at least not that I know of. Also, I can add that the difference - prior to pulling the latest - was -0.45, not -0.8. I was using -2.4 and -2.85 instead of -2.4 and -3.2. After pulling the latest I had to re-figure the post- Since the -2.4 has remained constant, I'd think it has to be in software somewhere. If anything had changed on the printer, the -2.4 would have had to change, also, I believe. |
OK... I'll see what I can find. (It will probably be later today before I can get my head clear enough to dive into this.) |
Thank you. No rush. The post- |
Yes. Agreed. However, it is interesting to note that ever since the G29 command arrived on the scene, we have been seeing these issues. Part of the problem was G29 used Run_Z_Probe to measure things and G28 used Probe_Pt(). (I could have this backwards or not quite correct). Anyway, they used different methods to find the bed. That is no longer the case. So that isn't what is happening here. |
Here's the thing. After G29 has completed a matrix is generated to use for bed-leveling correction. Then the matrix is used to correct the current XYZ position. However, there is a flaw in this section of the code. I know the precise location of the flaw, but we haven't quite figured out how to fix it. In the interest of gathering more information and trying alternative approaches, I created a branch a few days ago. The fix I propose will work for any probe that doesn't change its XY position after the probing procedure. So, for example, it won't work with an Allen Key or Docking Sled probe because their last action is to move off to the side. But if your probe is one of the ordinary kinds then it should prove more accurate. Download this branch and give it a try: https://github.com/thinkyhead/Marlin/tree/rc_final_z_correction |
No. With the new probe code all kinds of probes do return to the place where the deploy/stow begun. |
@thinkyhead |
Will give it a shot at some point today, hopefully. Thanks. |
@thinkyhead Yes, whatever you changed in rc_final_z_correction fixed it. |
What changed? I'm guessing I should cross the change over to the devel_ubl branch. |
Looks like just this?: |
@bgort I'm gratified to hear that the rc_final_z_correction branch worked. Unfortunately we're most likely not going to be able to use it, because it is highly idealized for a certain kind of setup. I looked more deeply into bed leveling issues for rc_fix_leveling_maths and that is probably going to end up being merged if it passes muster. So you should try it and let us know whether it also produces better results. |
@thinkyhead Will give the other branch a try sometime midweek, and will let you know. Thanks. |
@thinkyhead Finally able to test rc_fix_leveling_maths. Sorry for the delay. It seems to work perfectly - perhaps even a little bit better than rc_final_z_correction (there was a tiny bit of deviation [20-30um or something] that I had written off to a probe or axis repeatability issue, which I'm not seeing with rc_fix_leveling_maths). |
Thanks for the feedback. I've been looking a lot at the leveling code lately and there are some definite improvements still to be made. But I think the approach in |
Great. Let me know if you need anything else tested. Happy to help. |
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 use a prusa I3 clone with inductive z-probe. In the past (till RC6) I used a start script like:
G28 ; home all axes
G92 Z1.05
and the distance nozzle - bed was perfect.
Yesterday I decided to upgrade to the newest version (there was no issue with RC6 but I wanted to use the new one and perhpas give some feedback) and used the newest bugfix release from August 6th, in the morning.
Now I have a problem with the distance nozzle-bed.
The script from above does not work any more, after G29 the nozzle raises (i think it is Z_PROBE_TRAVEL_HEIGHT which is 5 in my configuration) and when I use the G92 command this actual height is used as the starting point.
So I decided to do it the "right" way and want to use the M851 command to adjust the height. So I started with different tests and numbers.
But I could not get it to work.
with M851 Z -2.6 the nozzle crashes in the bed doing the first printing move and with M851 Z -2.5 there are around 2 mm space between nozzle and bed.
My settings (I stripped all comments)
I am not sure if it is a bug or if I did a big mistake in configuration.
Shall I send any more information?
Kind regards
Christian
The text was updated successfully, but these errors were encountered: