Skip to content

Conversation

@krkeegan
Copy link

Error is well documented here: https://forums.maslowcnc.com/t/encoder-steps-issue-with-returning-sprocket-to-12-oclock-after-precise-number-of-links-fed-out-again/6578/17

The problem was that calibrate chains was spooling out more chain
than it was supposed to, while reporting that it had done less
that it was supposed to.

This was caused by calling detach inside the calibrate chain length
function. This caused the axis to stop moving before the endMove
function had completed. As a result, the location was listed as
being short of the desired termination point, but since the axis
was agressively stopped, its own momemtum would carry it past
where it was supposed to go.

Solution was to remove detach call.

Also changed print statement about the axis location, if we wanted
to read the axis, we would have to block until the axis settled
first. There is no need for this, we can report what the commanded
length was.

Thanks for contributing to The Maslow Firmware! You rock.

Please let the community know some basic information about this pull request.

What does this pull request do?

Does it add a new feature or fix a bug?

Does this firmware change affect kinematics or any part of the calibration process?

a) If so, does this change require recalibration?

b) If so, is there an option for user to opt-out of the change until ready for recalibration? If not, explain why this is not possible.

c) Has the calibration model in gc/hc/wc been updated to agree with firmware change?

d) Has this PR been tested on actual machine and/or in fake servo mode (indicate which or both)?

How can this pull request be tested?

Please provide detailed steps about how to test this pull request.

Thanks for contributing!

Detach is handled by the axis class and really shouldn't be used
outside of that.

The problem was that calibrate chains was spooling out more chain
than it was supposed to, while reporting that it had done less
that it was supposed to.

This was caused by calling detach inside the calibrate chain length
function.  This caused the axis to stop moving before the endMove
function had completed.  As a result, the location was listed as
being short of the desired termination point, but since the axis
was agressively stopped, its own momemtum would carry it past
where it was supposed to go.

Solution was to remove detach call.

Also changed print statement about the axis location, if we wanted
to read the axis, we would have to block until the axis settled
first.  There is no need for this, we can report what the commanded
length was.
@Orob-Maslow
Copy link

I'm ok merging this. Has anyone else verified this fixes the issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants