You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).