-
-
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
Behavior change: Z value not displayed when '#define DISABLE_Z' set to 'true' #2661
Comments
You have ether not homed Z or |
"#define DISABLE_Z true" is defined so the Z motors can rest during layer time (and allow me to tweak layer height manually)... -------- Original Message -------- You have ether not homed Z or #define DISABLE_Z true. Reply to this email directly or view it on GitHub: |
Sadly we can not detect manual turning the z-axis. If wee could, it would make much sense to deactivate the z.display for that. |
I don't expect the software to detect manual intervention but I do expect it to display what it know. But lets leave the theoretical debate aside for a second... Make sense? -------- Original Message -------- Sadly we can not detect manual turning the z-axis. If wee could, it would make much sense to deactivate the z.display for that. Reply to this email directly or view it on GitHub: |
It's not a bug, they did it on purpose and I feel your pain but it's been there for ages and doesn't look like it's ever going back to the way it was unless you (we) modify it for ourselves. I've basically given up on marlin from here, I just cherry pick bits and pieces and bug fixes that I add into my own version of it after getting sick of all the behaviour changes going back to the whole homing debacle. |
How about a compromise? |
question that doesn't affect me but if the extruder motors are set to disable the inactive extruders, does marlin then forget where the inactive extruder is at next time it goes to use a second extruder? or is this ridiculous behaviour limited to x y and z? |
@ntoff Noting is forgotten, just not displayed here. Please search for When a stepper driver receives a disable signal it will unpower the coils of the stepper motor. The motor will skip to the full step it is forced to. The forces are its own magnetic field, mecanical resistances, gravity, filament pressure, ... . If the external forces are bigger than the motors own (unpowerd) holding torque, the motor will not only skip one step but begin to move. When the driver is enabled again it applies the current again. When all is working well to the same currents when disabled. Again the rotor adds the internal and external torques and skips in the forced direction. If the external forces where big enough we now have lost a full step. So this "ridiculous behaviour" is physics - not Marlin. |
@KiteLab -- Your excellent description of how the "physics" works when you remove power from a stepper, coupled with the reality that we don't really want to keep powering all of the extruder stepper motors all of the time, and the fact that the external forces on the filament are not likely to cause a significant movement of the filament while the stepper is powered off, suggests the following: Since we typically perform a "retract" before removing power, could we not ALWAYS make THAT retraction to a full step position? I don't think that the amount of retraction is all that critical, as long as we track the amount accurately so that we can, upon reactivating that extruder, return to the proper position. If this is a viable approach, then we might make it into a feature that gets included in a future release. |
Back to the problem. Displaying "---" was meant to force the users to home their printers. As While testing this patch we observed several times a "---" display after homing. During longer waits for heating up the bed, or long lasting G29 the mechanism was triggered. Investigating this we discovered that the "shut down the steppers when the printer is unused" mechanism did not respect the DISABLE_? settings - and changed that. Sadly this prevented the "shut down the steppers when the printer is unused" mechanism to work at all, because no one wants DISABLE_? = true. Increasing the default DEFAULT_STEPPER_DEACTIVE_TIME could have been more efficient and or refreshing Why we don't want DISABLE_? = true was explained again by @KiteLab. What has the AUTO_BED_LEVELING_FEATURE to do with this complex? Extruder: @Wackerbarth |
@AnHardt -- Whether, or not, it is worth the effort is a somewhat separate issue. In the stepper domain, it is very easy to determine the nearest full step (an integer round, or more likely a truncate because you want to retract a little extra rather than too little). So, at the stepper level, rather than trying to do relative movements, do them in absolute form. printing away .... |
For the record, in my specific case, each Z step is less then 0.008mm. Not showing Z value (or any value) before homing is more than acceptable. Ps. I have prints with layers that can take up to few minutes each, so I don't see a reason to power up two Z motors for all that time just for the friction of a second of work... its more than 99.9% of power just to keep accuracy of 0.008mm which statistically will be evened anyway. -------- Original Message -------- Back to the problem. Displaying "---" was meant to force the users to home their printers. As While testing this patch we observed several times a "---" display after homing. During longer waits for heating up the bed, or long lasting G29 the mechanism was triggered. Investigating this we discovered that the "shut down the steppers when the printer is unused" mechanism did not respect the DISABLE_? settings - and changed that. Sadly this prevented the "shut down the steppers when the printer is unused" mechanism to work at all, because no one wants DISABLE_? = true. Increasing the default DEFAULT_STEPPER_DEACTIVE_TIME could have been more efficient and or refreshing Why we don't want DISABLE_? = true was explained again by @KiteLab. What has the AUTO_BED_LEVELING_FEATURE to with this complex? Extruder: @Wackerbarth Reply to this email directly or view it on GitHub: |
Sometimes i'd love to fork a issue-thread. @Wackerbarth @Aviv22 Obviously i have not be clear enough when i admitted that blanking the coordinate display for disabled steppers was a surprising side effect. I did not try to defend blanking for disabling, but tried to explain what is going on and what went wrong. What i need now is not further complaining - it's wrong - it's wrong - it's an issue. issue a: issue b: issue c: issue d: issue e: issue f: issue g: |
My opinion(s): /Aviv -------- Original Message -------- Sometimes i'd love to fork a issue-thread. @Wackerbarth @Aviv22 Obviously i have not be clear enough when i admitted that blanking the coordinate display for disabled steppers was a surprising side effect. I did not try to defend blanking for disabling, but tried to explain what is going on and what went wrong. What i need now is not further complaining - it's wrong - it's wrong - it's an issue. issue a: issue b: issue c: issue d: issue e: issue f: issue g: Reply to this email directly or view it on GitHub: |
A. 4.) When printer start, show |
Because it's easier to just make the firmware work for me how I want it than to fight all of you on simple issues. During the homing debacle it took the developer of (I think) octoprint? coming in here to say no this isn't how it should be, for the devs to get their heads out of the sand and change it back. Lowly useless people like me have no power here so I keep all my changes to myself, as I also do with all the other things I've changed like pronterface as submitting pull requests would just result in them being denied. However those changes ARE on my github repo for anyone who does want them. Plus I am not a coder in any way shape or form so any code I do change is most likely not the most efficient way of doing it but it still works for me. |
For now quite untested, but the direction i want to go. |
To get an impression of the optics. GLCD: All axes unhomed GLCD: Z with reduced accuracy |
Looks reasonable enough... |
Because the '~' shows on the japanese 2004's as a '->' (arrow right) i switched to a ' ' (space). Looks even better. |
I like that, good work! |
Although space doesn't mean approximate like tilde sign does, it still reasonable enough and in some way even look cleaner... |
My plan for this weeked... will check it out in the next 24 hours... |
Tested fix2661 from your repo and it looks ok to me. |
@AnHardt -- I'm still waiting for a proposal concerning the DOCUMENTATION. We have, and always will have, multiple versions of the firmware. Even if we have "moved on" to Marlin 3.17, the documentation for 1.1 should still be available SOMEWHERE that a user with that "old" version can utilize. (Perhaps if only to figure out what was meaning of an old configuration that they want to update.) So, how do you propose that we maintain the various sets of documentation in a manner that a user can find the set that applies to his version of the firmware? Not that I am advocating doing so, one way is to make the documentation a collection of files in a Documentation folder that is part of the branch of the firmware to which it applies. I recognize that there are others who advocate using a wiki to make it easier for them to contribute, but, by itself, that does not address the issue of multiple versions customized to the particular branch to which the documentation applies.. |
Providing information in a documentation folder inside the repository/branch was not so bad. For me, as a beginning user, it worked very well. (But i don't need much initial information to find the details in the code, the issues list, or the descriptions of the PR's. The ability to search seems not to be very common nowadays) Connecting/structuring information is very hard there. Folders are almost the single way to provide a structure. For many things it is sufficient to add the new/changed behavior v.e. new parameters to a g-code in a section titled "from version xxx on" or "until version" in a wiki-article. Features/Concepts should be described in their own articles, ether in a wiki or the documentation folder in the branch they are added. When it's time to release this branch it's time to integrate the info to the wiki. In the configurations, at the top of a section (Endstops, ABL, MBL, Disabling Motors, ...) a link to the concept would be nice. The primary source for g-codes should be the description in Marlin_main.h. A short header in the top-directory. In detail where the implementation is. Until the 'release' ideally everything should be findeble in the wiki. Again with a hint "from on" or something like that. For configuration options i'd expect a sufficient description in the configurations. A description in the wiki is optional. If a description is needing very much room a link to wiki may be an option. For old/replaced/renamed options the wiki is a good place. All what it needs is a 'renamed to that[link] at version x' A Media-Wiki would be great (when writable). The possibility to add articles to a category by a simple tag is invaluable. The information "tree" builds then much faster and better. For sure you noticed, that i'm not the best qualified person here around, for writing doku. Don't expect more than the absolutely necessary from me. Working on the issue list is totally different from writing doku. If a can actually help, my bad language may be excused, but my sometimes 'individual' spelling and screwed up sentences will seriously damage a honest documentation. |
I really find the intermixing of descriptions to be very confusing for users. It is much more readily understood if you have a document for each version that gives the proper information for that version without the reader having to try to sort out which part applies to the version that they are using. When upgrading, a description of the inter-version changes is helpful, but otherwise, the user generally doesn't care "how it was" I totally disagree with the idea that the primary USER documentation should be anywhere in the code itself (unless you are using a documentation processor that uses the source files as input and extracts a readable document from them.) Far too many users have trouble even finding a file, much less possessing the ability to extract information from a dual purpose file. I think we need a collection of user documentation that can be read like a book or website which provides a comprehensive description of both how and why particular settings should be applied. I also think that this documentation SHOULD NOT be in the configuration file. The present configuration file is already unreadable and we need to have even more explanatory material for each option. Note that I recognize that this is a significant task, but it is one that I think we need as a long term goal. Take a look at the documentation for a major project such as django. They have addressed these issues in their documentation. They support multiple versions of the code and the user gets a separate view of the documentation for each version. |
Activated the warning about possible reduced accuracy by default |
Are current solutions for this behavior sufficient to make everyone happy? It is certainly possible to show something like I propose using two flags: Keep using |
I think I like this idea.
I wonder if this would be better done with just one flag that can have multiple different values. I don't really know, but it might be better to keep all of the information in one place. I'm trying to figure out how to move this thread over to MarlinFirmware/MarlinDev but so far I have not figured out how to do that. The reason to move this thread is that we really should continue this discussion. But the changes and the testing required to validate them are too extensive to be made to a Release Candidate. (Our LCD Code is already too slow in some setups.) Is it even possible to move a thread? Does anybody know? |
Thanks for the link AnHardt! Bummer... The App got part way through the move, but then it died with an error. But it did get all but the very last message of AnHardt's copied over there... So I'm going to close this version and we can continue the discussion over in MarlinDev. |
re-opened... The thread did not move successfully to MarlinDev. Let's continue the discussion here even though it belongs over in MarlinDev. Sorry for the confusion! |
If we use bits for the flags, as we do with endstop status, then we would have two flags, resulting in
Feel free to start a new thread, just linking the first post back to this one. Or, we can continue to discuss it here. In the meantime, I will produce a couple of PRs which each implement the idea in a different way, and we can pick our favorite. |
And just to be clear... The thought I'm trying to express is let's make it real simple for the user to get things configured correctly. If we have only one variable that fully describes things, it is easier for people that don't need the feature to say I don't need to #define anything there. Or... I need to set this to this value. And all the magic is done. I really don't care how we do it. But let's make sure it is easy for the user to get setup correctly. The counter example (that is making me harp on this) is the Z_MIN_PROBE, DISABLE_Z_MIN_PROBE_ENDSTOP, Z_MIN_PROBE_PIN and Z_MIN_PROBE_ENDSTOP_INVERTING stuff. It can be configured correctly for an Allen Key Probe if you fully understand stuff. But I doubt anybody gets it right the first time. Let's make this real easy for the user with clearly commented values.... |
This has no effect on setup. See the PR linked above! |
I apologize for not being very clear and diplomatic. I'm mostly trying to say as a general principle, we want to make every thing as easy as possible for the user to get thing setup right. I don't really know if my thinking is correct on the 'one define with multiple values'. But my guess is that would be easier to get clearly documented to do the right thing for a given setup than having 37 different flags that have to be correctly enabled or disable. (and I know you didn't suggest 37 different flags...) (I'm definitely not throwing rocks or mud in your direction. I was just trying to make things better for the user.)
I don't see a PR link? |
Differentiate Axis Homed from Axis Unknown #356 You will see that this change is transparent to the user and doesn't affect anything in the configurations. |
Thank you for your interest making Marlin better. |
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. |
Hi,
This is my first issue report here so I apologize in advance if I do it somehow wrong...
While using the 'RCBugFix' branch I've noticed the that the Z value on the display is constant "---.--" during print (from SD) and on idle.
It worked fine on the 'Release' branch but not on the 'RC' or 'RCBugFix'.
Going into 'Z axis' in 'Move axis' menu shows the right values.
Hardware:
Simple RAMPS v1.4 EEF (dual extruder) structure w/ G3D display/SD panel (based on gMax 1.5 with changes).
Trying to attach my configuration.h file failed so here is what I've changed:
Regards,
Aviv.
The text was updated successfully, but these errors were encountered: