-
-
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
Fix G28 O #18727
Fix G28 O #18727
Conversation
That doesn't fix I enabled |
Using - if (!homing_needed() && parser.seen('O')) {
+ if (all_axes_known() && parser.seen('O')) { I had to change similar logic in #17681 to get Marlin to work as expected, which made me think it'd help here...and it did! Maybe the Marlin/Marlin/src/module/motion.h Lines 46 to 48 in cea097d
|
Is Either the code or documentation is incorrect (or incomplete). From the G28 page with no mention of |
I think this PR is not needed at all. It seems original code works the same way, but an answer to above question should be given |
I think removing |
If you have The |
So the |
For boolean arguments to a G-code command, The reasoning is that some default behaviors may be changed by configuration so that a command behaves as if it is always getting —for example— an " |
No. That is not correct. |
Should I put in a PR to update the Currently, it’s not clear that |
It doesn't require |
That’s the issue we’re trying to solve. If we disable steppers and send |
Then someone needs to do a better analysis to determine whether |
And of course… make sure the tests are being done with the latest code. |
The problem is not boolvar VS seen (latter works for sure but maybe former works as well). Then the
is more than correct. Now G28 O is changes its behaviours because of such flag hence
is right but such option changes behaviours. In conclusion. Issue is because documentation reports "unknown position" but this is true only when HOME_AFTER_DEACTIVATE. |
Since O is used without any value I think yes, O1 and O0 should behave the same so it seems more "correct" seen |
Its behavior should be understood as "Home only if 'needed'" and there is no setting that makes
Try this procedure both with You will see that Therefore, it makes a difference when you have
All "boolean" parameters are allowed to be used without any value as a substitute for "1". |
With
|
I already tested all situation and, as written before, I totaly agree with current program behaviour. G28 O does exactly what I "logically" think it should do.
As written above, I think that only misunderstaning here is: What does it means "unknown position"? Because if you consider the "home after deactivate" (forgive me if I'm wrong) it means after "de-energization" position is no more to be considered valid, then if this is disabled the "de-energization" is no more considered as a condition to be in a "unknown position" state. I simply follow the idea to be more detailed in G28 O to let people understand this logic |
Why? When
What it says is "If the position is known then exit without homing." The If you want to clarify this point with more verbiage in the configuration or website, please submit those changes. No changes to code logic are needed. |
P.S. The |
So the inverse of that must be true:"If the position is not known then do not exit without homing." The position is unknown after steppers timeout, so it should also home with another If you say the code is fine, then yes, the documentation needs updating because it not clearly written to explain that you need to have |
Perhaps adding this diagram to the website will help…
|
Maybe it'd make sense to make it a feature request to have That'd keep documentation the same & prevent further confusion of this g-code parameter. |
Keeping in mind also that most folks have no idea if HOME_AFTER_DEACTIVATE is enabled or not in the firmware they use. The default firmware from the manufacturer will never be known, the same as the million random binaries floating around. This makes it almost impossible for the end user to know how their printer will behave without resorting to trial and error. Resorting to trial and error also makes the documentation hard - as it then becomes: |
@CRCinAU there so problem with this, just remember that G28 is what you want/like. I think that to fully use Marlin you have to understand the available options, but I understand some are really cryptic for a lot of people. |
This should fix #18725