AuxAxis: ESP32-driven external stepper (auxcnc)

bbctrl.AuxAxis manages a stepper driven by an auxcnc-style ESP32
over /dev/ttyUSB0 (or whichever serial port). Persistent config in
aux.json; UI talks to it via /api/aux/* endpoints.

- AuxAxis: serial framing, position tracking, soft-limit enforcement,
  homing state machine, ATC pneumatic control (M100..M103 wrappers).
- Ctrl: instantiate self.aux alongside the other subsystems and
  close it during shutdown.
- Web: handlers for /api/aux/{config,status,home,abort,jog,move,set-zero}.
This commit is contained in:
2026-05-03 14:16:54 +02:00
parent fe362e10ab
commit 46fa0765f5
4 changed files with 752 additions and 0 deletions

View File

@@ -73,6 +73,8 @@ class Ctrl(object):
self.pwr = bbctrl.Pwr(self)
with Trace.span('ctrl.hooks'):
self.hooks = bbctrl.Hooks(self)
with Trace.span('ctrl.aux'):
self.aux = bbctrl.AuxAxis(self)
with Trace.span('ctrl.mach.connect'):
self.mach.connect()
@@ -130,6 +132,8 @@ class Ctrl(object):
def close(self):
try: self.aux.close()
except Exception: pass
self.log.get('Ctrl').info('Closing %s' % self.id)
self.ioloop.close()
self.avr.close()