Conversation
take time writing direction, reading home
ddkohler
commented
Jan 26, 2026
firmware/firmware.ino
Outdated
| if (digitalRead(HOME) == 0) remaining[i] = 0; | ||
| setSelect(i); | ||
| // read homed twice to make sure | ||
| if (carefulReadHome()) remaining[i] = 1; // go one past the limit to avoid unstable readings |
Contributor
Author
There was a problem hiding this comment.
note: step of 1 guards against hysteresis
Contributor
Author
|
this firmware is being used on fs table atm |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The homing signals can exhibit hysteresis, so a more stable solution is to take care when measuring the HOME level, and also to overshoot the first measured instance of home.
Also, it seems important to take care when stepping that motor steps are given adequate time before the next step. In the recently-introduced non-blocking main loop, it was never guaranteed that there was a reasonable wait time between step commands.
This is a first example and changes were grown into this branch through troubleshooting; it is likely that some of the changes introduced here are not necessary. Hopefully we can troubleshoot different aspects of these changes before merging.