Releases: laurb9/StepperDriver
Release list
1.6.0
Feature release: Toshiba TB6600 support, configurable step pulse timing, and a new API reference manual.
What's Changed
- Fix 32-bit overflow in startBrake() ACCELERATING branch and 16-bit int overflow in NonBlocking example in #142
- Make step pulse timing per-driver instance members; add setMinStepPulse (fixes #136) in #140
- Add Toshiba TB6600 stepper driver support (fixes #105) in #141
- Add API reference manual in docs/API.md (fixes #82) in #143
Highlights
- TB6600 support (#105, #141): new
TB6600class for the common Toshiba TB6600 modules (PUL/DIR/ENA, opto-isolated inputs, microstepping up to 1:16 via on-board DIP switches), with datasheet-correct pulse timing and an example sketch. Note common boards use active-LOW ENA —setEnableActiveState(LOW)if you wire ENABLE. - Configurable step pulse timing (#136, #140): minimum STEP pulse HIGH/LOW durations and wakeup time are now per-instance values preset from each chip's datasheet, and
setMinStepPulse(high_us, low_us)lets you lengthen pulses on very fast MCUs (e.g. Arduino Opta) whose GPIO outpaces the driver input.nextAction()now also floors the STEP LOW interval at the datasheet minimum, andenable()waits the chip's actual wakeup time. - API reference (#82, #143): the full public API is now documented in docs/API.md.
- Fixes (#142, #144):
startBrake()no longer overflows 32-bit math in the ACCELERATING branch, and the NonBlocking example no longer overflows 16-bit int on the move distance.
Full Changelog: 1.5.1...1.6.0
Agent: claude-fable-5 (Claude Code 2.1.212)
🤖 Generated with Claude Code
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
1.5.0
What's Changed
- Add library.json for PlatformIO by @laurb9 in #131
- Configure repository for AI Agents by @laurb9 in #132
- feat: Add PlatformIO support to devcontainer and Makefile by @laurb9 in #133
- Add TMC2100 driver support by @laurb9 in #134
- Docs: Update agent identification guidelines and sync TMC2100 by @laurb9 in #135
Full Changelog: 1.4.2...1.5.0
1.4.2
What's Changed
- Fix deceleration ramp by @BenKrafted in #124
- added cmake files for esp-idf use by @KOEGlike in #127
- Update devcontainer and support ARM MacOS host by @laurb9 in #129
- Fix AI-discovered issues by @laurb9 in #130
New Contributors
- @BenKrafted made their first contribution in #124
- @KOEGlike made their first contribution in #127
Full Changelog: 1.4.1...1.4.2
bug fixes and improvements catch-up release
What's Changed
- Repair call "BasicStepperDriver" in examples by @chroja in #104
- Added begin, stop and setRPM for MultiDriver by @vovagorodok in #109
- Use safer & faster min/max functions by @richievos in #120
New Contributors
- @chroja made their first contribution in #104
- @vovagorodok made their first contribution in #109
- @richievos made their first contribution in #120
Full Changelog: 1.3.1...1.4.1
Arduino Nano Every large step counts
Bug Fix Release
- Fix incorrect step movement with large step counts for Arduino Nano Every (#96 )
SyncDriver time estimation fixes, other bugfixes
Bug Fixes and Development Improvements
- Added UnitTest sketch for evaluating code and also performance on a given board for #79
- Added SpeedProfile to plot speed graphs for troubleshooting acceleration issues
- Updated for arduino-cli 0.12
- Add vscode remote container support
- fix #87 float rpm not accepted in some drivers
- fix #86 error in #define
- Updated to 1.3.0 to resolve version upgrade issues.
SyncDriver fixes, float RPM
SLEEP control, bugfixes
Breaking Change
Library now expects SLEEP to be used as in the Pololu schematics, so the pin is driven HIGH to enable the driver. Previously the ENABLE pin was assumed to be connected, with opposite logic (LOW to enable). The library supports both modes now and you can get back the original behavior with setEnableActiveState(LOW) #75
New Features
- added
getStepsCompleted(),getStepsRemaining(),getDirection()#45 #57 - Motor and stepper parameters are exposed via getter methods (getSteps(), etc) #37