-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Leveling edge distance count from zero position #2267
Conversation
In case of max endstops, maxX and maxY cannot be satisfied (even by the current solution). Also infoSettings.machine_size_min[X_AXIS] - infoSettings.machine_size_min[X_AXIS] and infoSettings.machine_size_min[Y_AXIS] - infoSettings.machine_size_min[Y_AXIS] is always equivalent to 0 |
Isn't it better to upgrade to Marlin which doesn't contain an error? |
I don't understand well. Can you write what you mean? In my situation I have: My revision counts |
What's the bug in Marlin?! Does my solution work badly with the latest version of Marllin? Note: |
Marlin has nothing to do with this, because the formula for the manual leveling position is based on internal variables. Is it so hard to understand?! |
Open the terminal, send the M115 command to the printer and send the answer. Marlin "Nightly" Builds on August 21 and later should be repaired. I also have negative stops on the X and Y axis, and I had the same problem as you, but with the Marlin update it is solved. |
@NOVAXIM please see my answer on your previous PR. The current solution is already fixing the case were min must be "at least" 0. That approach should also be applied to max (in case there are max endstops) but that is impossible because we have no info about the real bed size. For that reason a gave the possibility to set min even greater than 0 (because you can also set max lower than the real bed size) |
I'm sorry you waited so long. This is the printer's response to the M115: |
TFT reads bad values from Marlin |
Description
Currently, during manual bed leveling the edge bed coordinates are counted from the minimum value if >=0 (Home position). Unfortunately, when we have coordinates other than 0 at the Home position (e.g. size_min:X-10 Y-5), the physical edge positioning will is faulty. With level edge distance value at 20, the lower left corner will be at real position X10 Y15, not X20 Y20 (liked in Marlin). The last fix did not completely delete the problem.
Positioning with manual leveling is an internal affair of TFT Firmware and should not be fixed otherwise as here.
Benefits
This solution calculates the correct bed edge coordinates for manual leveling regardless of:
The level_edge_distance will be counted from true 0 position (liked in Marlin). For example, if you have size_min: X-5 Y-18 and level_edge_distance: 30, the lower left leveling point would be at real X30 Y30 (liked in Marlin). This applies to all corners and center point too (if you have the correct size_max).
Note: When you have enabled
M115_GEOMETRY_REPORT
option in Marlin, then don't need to setsize_min
andsize_max
. However, if you don't haveM115_GEOMETRY_REPORT
option in Marlin, then you then you have to enter values forsize_min
andsize_max
in file(s):config.ini
and/orConfiguration.h
.Related Issues
#1151