Skip to content

Dev Release 2

Choose a tag to compare

@gbradham gbradham released this 06 Jul 16:33
· 330 commits to main since this release
feat(hal): add StepperA4988 device for open-loop dispense control

Replace the DC-motor + AS5600 dispense drive with an A4988 stepper driven
directly via gpiozero (STEP/DIR/ENABLE/MS1-3, all six pins software
controlled). Open-loop: move_steps/move_turns pulse an exact signed count
and return on completion, so dispensing is a single DeviceAction with no
WaitForInput polling or PWM ramp-down.

- Device: signed moves, per-move microstep override, stop event, energize/
  de_energize (named to avoid BaseDevice.enable/disable action gating),
  e-stop-safe shutdown that outruns queued moves (flag cleared before the
  move lock; FIFO waiters raise instead of running post-e-stop)
- Registry: package-import side effect via hal/devices/__init__.py so
  saved .glider files load the type in any entry path
- GUI: Add/Edit Device dialog branches (6 pins + steps_per_rev, steptype,
  step_delay, auto_disable); steptype options sourced from MICROSTEP_MODES
- Tests: 46 unit tests with a fake gpiozero, including queued-move-vs-
  shutdown and mid-move-stop regression coverage

No new dependencies (gpiozero ships in the rpi extra).