Skip to content

1.5.1

Choose a tag to compare

@laurb9 laurb9 released this 07 Jul 04:12
· 15 commits to master since this release

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_brake no 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-test runs 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