1.5.1
Bugfix and robustness release for the LINEAR_SPEED (acceleration) profile.
What's Changed
- Fix LINEAR_SPEED running too fast at low rpm (fixes #93) in #137
- Avoid 32-bit overflow in speed profile setup; use unsigned division in step timing in #138
- Add simavr-based functional test for UnitTest sketch (make sim-test) in #139
Highlights
- LINEAR_SPEED low-rpm fix (#93, #137): when the target speed was reachable within a single step, the motor ran the entire move at the initial acceleration pulse — up to several times faster than requested (observed 4× at 6 rpm). Moves now start at cruise speed in that regime.
- Robustness (#138):
steps_to_brakeno longer overflows 32-bit math at extreme rpm/microstep/acceleration combinations (which could skip braking entirely), and the braking distance is no longer understated at low speeds. Bonus: deceleration steps are ~11% faster and acceleration steps ~2% faster on AVR thanks to unsigned division, verified cycle-exact on a simulated ATmega328P. - Testing (#139):
make sim-testruns the UnitTest sketch on a simulated ATmega328P (simavr) and compares step-timing verdicts against a golden baseline — now also a CI job, so timing regressions like #93 are caught automatically.
Full Changelog: 1.5.0...1.5.1
Agent: claude-fable-5 (Claude Code 2.1.153); max context and thinking level not exposed to the agent
🤖 Generated with Claude Code