-
-
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
Auto bed leveling manages coordinates in strange way, leaving final position incorrect #3311
Comments
|
You have to disable the software end stops then it does a proper g29. Sent from my iPad
|
I have the following in my config:
Software max endstops enabled, because i have hardware endstops only for minimal values. |
Is there a way to run G29 in verbose mode, to clarify its behavior? |
No it seems that will be as verbose as it will get. |
I don't have a CoreXY machine and have never seen one in real life. I might get accused of trying to turn this into a Valentine's thread... Or worse yet, a Black Friday thread... But the #define DEBUG_LEVELING_FEATURE and use And ThinkyHead isn't going to be difficult to convince we need lots more |
Possibly related to #2845 ? |
Hm. Executed with high debug level.
The most strange thing for me:
And that's all. Head bumps going to Back. Why this coordinate transition occurred i can't imagine. PS. Latest RCBugFix pulled out today and full configuration attached. Configuration_adv.h was left intact. |
Any suggestions? |
@ozligia the only way I can reproduce your error is when I turn one of my On 6 April 2016 at 01:25, ozligia notifications@github.com wrote:
|
@paulusjacobus wat type of printer kinematics do you use? I made a guess, that coordinate system is swept around in my first message. But i definitely have x endstop on x, and y endstop on y, as when i home carriage by x and y axis in separate result is correct. X+ is going right, Y+ is going back, so axis directions match the directions that are used in Marlin. However, I remind, that by default in RC branches Y axis is inverted by default, but I prefer to set the following
and after that adjust my steppers polarity to move in directions, that marlin is used to. |
@ozligia I use a corexy and have further two cartesian printers (Prusa It2) |
@ozligia To help look into this a little further I've added more debugging output to the |
Back in the early RepRap days somebody knew what this meant. 😀 |
@thinkyhead, thanks. Will take a look this eveining (GMT+4) |
Hm. It seems that nothing change in output. Do i need any special options? I used
|
PS. And y axis inversion did not help |
The important debug addition is the report of the current coordinates at the beginning of |
Ok, so from what I can tell, the error is being caused by this code block in ...
...
vector_3 uncorrected_position = plan_get_position();
...
current_position[X_AXIS] = uncorrected_position.x;
current_position[Y_AXIS] = uncorrected_position.y;
current_position[Z_AXIS] = uncorrected_position.z;
sync_plan_position(); This is the only code that would alter the current position before the first So, as to the first idea – that So… for the moment, just try commenting out the lines I've shown above and see how it affects behavior. As long as you just did a If that manages to help your situation, then we'll know that the "matrix correction" is causing the problem, and can look further into why. |
From ozligiz's comments 1st example
2nd example
the value changes in a certain rule. And i found a simple math formula Actually I have the same problem. But the problem is where the value 13 is from. This value might help. |
Output from G29 with new logging, without commenting lines out from
The following is the output with requested lines commented out:
Here goes some probing...
G29 going right after G28, now the printer followed all the points for probing correctly |
The fact that the Y value is affecting the X value points to this being a definite CoreXY-related issue, since And now that I look closer it does appear that Try replacing the void st_set_position(const long& x, const long& y, const long& z, const long& e) {
CRITICAL_SECTION_START;
#if ENABLED(COREXY)
// corexy planning
// these equations follow the form of the dA and dB equations on http://www.corexy.com/theory.html
count_position[A_AXIS] = x + y;
count_position[B_AXIS] = x - y;
count_position[Z_AXIS] = z;
#elif ENABLED(COREXZ)
// corexz planning
count_position[A_AXIS] = x + z;
count_position[Y_AXIS] = y;
count_position[C_AXIS] = x - z;
#else
// default non-h-bot planning
count_position[X_AXIS] = x;
count_position[Y_AXIS] = y;
count_position[Z_AXIS] = z;
#endif
count_position[E_AXIS] = e;
CRITICAL_SECTION_END;
} If this fixes the issue then I will merge it asap! Hopefully this is the last missing piece for |
Okay @thinkyhead I will try to use this fix and see if it works. Probably On 12 April 2016 at 08:11, Scott Lahteine notifications@github.com wrote:
|
I replaced that above.. It's working. |
I've used thinkyhead patch on my CoreXY build, it works! |
Yep, the code above fixes the issue. Thanks, guys, i really appreciate your work. |
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, everybody. I have an issue with auto bed level configuration for my CoreXY 3D printer.
(RCBugFix branch)
My brief settings are (full config attached):
Is it a bug or configuration issue?
PS. Failovered to 1.0.2 and configured auto bed leveling at once without any issue.
And it seems that coordinate system for auto bed leveling is rotated by 90 degrees CCW origin in latest builds
Configuration.zip
The text was updated successfully, but these errors were encountered: