-
-
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
Latest RCBugFix Homing weirdness #4325
Comments
Moving Z to 0.0 is dangerous with a print on the bed. That must be in your Slicer's Ending GCode because that is not a default behavior. If there is any miscalculation, you are going to drive the nozzle into the newly printed part. |
Let's be pragmatic, changing the Z-pos with melted plastic laying out on the bed is not a smart move. Look at the following g-code: ; Fast move
G91
G0 X10 F15000
; Lift Z
G0 Z5.0 F120
G90
; Park
G0 X5 Y295 F9000 It uses relative coordinated to lift Z a bit and them move to a park position somewhere on the bed. When #4299 is merged you just have to replace all that gcode with a simple |
I am using Cura, nothing exotic. I am probably wrong in that it used to go Z=0 when done, it makes sense that it should never do that, even at X=0, Y=0. This is the ending sequence (as generated by cura):
There are two problems here, first and most importantly, Z moves when print is done. This ruins the print. Secondly, the behaviour when doing a normal auto home is also weird. I think both these are due to G28 (just different parameters)? I have this behaviour on RCBugFix as it was late yesterday. |
@meros Apologies! A lot of changes have gone into homing/leveling and these changes do need more review. I have been unable to do as much testing on my own as I would like, and have been mostly relying on feedback. Are you using an ordinary Z min endstop for homing, and no Z probe on your machine? (I speculate that perhaps some probe-deploy move is happening here but in the wrong instance…) Are you using Some new choices in movement functions for |
I have no probe, only z min endstop. I use bed mesh leveling, perhaps that is part of the problem? G28 in combination with bed mesh leveling could be an edge case? That leveling normally works really good though :) I have tried with and without SAFE_HOMING with the same result. |
@meros What do you have set as your |
It's not explicitly set: // @section homing |
There is indeed a bug with G28. G28
G28 X0
G28 Y0
G28
G28 X1
G28 Y1
G28
G28 X1Y1 ; from now on each time I issue a individual axis home
; the Z axis goes lower into the bed despite MIN_Z_HEIGHT_FOR_HOMING being 5
; even if I try G28 alone Z will dig deeper into the bed |
Enable |
|
Yes I know, but I was testing for errors on the parser. |
I suspect if we revert |
Reverting to the previous style makes no sense if we already decided to start using them as the standard, I suppose we shall start a daemon* hunting session, get your pitchforks !
|
I suggest it as something to try. Experimentation to narrow down the cause. In other words, I don't feel like reading through the code hoping the bug will just jump out at me. |
Hmmm. :-( if (home_all_axis || homeX || homeY) {
// Raise Z before homing any other axes and z is not already high enough (never lower z)
- float z_dest = home_offset[Z_AXIS] + MIN_Z_HEIGHT_FOR_HOMING;
- if (z_dest > current_position[Z_AXIS]) {
+ destination[Z_AXIS] = home_offset[Z_AXIS] + MIN_Z_HEIGHT_FOR_HOMING;
+ if (destination[Z_AXIS] > current_position[Z_AXIS]) {
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) {
- SERIAL_ECHOPAIR("Raise Z (before homing) to ", z_dest);
+ SERIAL_ECHOPAIR("Raise Z (before homing) to ", destination[Z_AXIS]);
SERIAL_EOL;
}
#endif
- feedrate = homing_feedrate[Z_AXIS];
- line_to_z(z_dest);
- stepper.synchronize();
- destination[Z_AXIS] = current_position[Z_AXIS] = z_dest;
+ do_blocking_move_to_z(destination[Z_AXIS]);
}
} The reason is the less and less use off destination so
gets somewhat random historic values at the other (not homed) axis. By investigating this I discovered that I'm close to a fix. Needs more testing. PR likely tomorrow. |
Don't rely on |
Preview at AnHardt#58 |
Will test when I arrive home later today. |
G28 seems to work as expected now for me. |
@jbrazio @thinkyhead I'll move my G27 to G25. (G26 is already defined as the Mesh Validation Command) Please don't assign G24 to anything. |
@Roxy-3D which g-codes and their descriptions/function have you added for UBL ? |
M43 GPIO pin scan (to help identify logical pin locations of expansion header with physical location) |
@meros More adjustments have been made to coordinate handling in the last several days. Please give |
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. |
Using a i3 style printer homing behaviour has changed drastically last few days. It used to go X->0, then Y->0, then Z->0. Now it drives X and Z at same time, then Y, then Z again. After homing is done it goes to X=90, Y=90, Z=0 (also new, it used to stay put).
This ruined a print due to G28 in the end of the print caused the head to crash into printed plastic.
My configuration is here: meros@a60ef94
The text was updated successfully, but these errors were encountered: