Skip to content

Releases: laurb9/StepperDriver

1.6.0

Choose a tag to compare

@laurb9 laurb9 released this 18 Jul 02:48

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 TB6600 class 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, and enable() 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

Choose a tag to compare

@laurb9 laurb9 released this 07 Jul 04:12

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

1.5.0

Choose a tag to compare

@laurb9 laurb9 released this 03 Jan 06:40

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

Choose a tag to compare

@laurb9 laurb9 released this 01 Jan 03:45
a434595

What's Changed

New Contributors

Full Changelog: 1.4.1...1.4.2

bug fixes and improvements catch-up release

Choose a tag to compare

@laurb9 laurb9 released this 04 Apr 05:03
a0bb844

What's Changed

New Contributors

Full Changelog: 1.3.1...1.4.1

Arduino Nano Every large step counts

Choose a tag to compare

@laurb9 laurb9 released this 25 Sep 02:55

Bug Fix Release

  • Fix incorrect step movement with large step counts for Arduino Nano Every (#96 )

SyncDriver time estimation fixes, other bugfixes

Choose a tag to compare

@laurb9 laurb9 released this 02 Sep 04:24

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

Choose a tag to compare

@laurb9 laurb9 released this 11 Feb 03:22

New Features

  • RPM is now float so values like 20.5 are possible (issue #40)

Bug Fixes

  • SyncDriver now works (issue #78)

SLEEP control, bugfixes

Choose a tag to compare

@laurb9 laurb9 released this 30 Jan 06:06

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

Bug Fixes

  • MultiDriver and SyncDriver fixes #39 #53

Expose stepper parameters; bug and doc fixes

Choose a tag to compare

@laurb9 laurb9 released this 15 Nov 05:41

New features

  • Motor and stepper parameters are exposed via getter methods (getSteps(), etc) #37

Other fixes

  • Fix hanging if running more than 71 minutes #36
  • Documentation fixes #34
  • Define constants such as STEPS in one place #35
  • Fix incorrect timing when multiple motors are used at the same time #28