ATC: split tool-change M-codes into composable atoms
Match auxcnc firmware v3, which dropped the monolithic DROPTOOL /
GRABTOOL ESP tasks in favour of three atoms: RELEASE, CLAMP, EJECT.
This lets host macros interleave Z moves between ejector pulses
(the old DROPTOOL ran open->oscillate->clamp in a single ESP task,
so you couldn't lift Z mid-eject).
AuxAxis: replace atc_droptool() / atc_grabtool() with atc_eject(
pulse_ms=, dwell_ms=). atc_release() / atc_clamp() are unchanged.
Ctrl: register internal hooks for release / clamp / eject only.
The eject hook parses 'pulse=' and 'dwell=' kwargs out of the
HOOK:eject:<data> payload so macros can emit
(MSG,HOOK:eject:pulse=400 dwell=300) for tuned wiggles.
AuxPreprocessor: M100 now maps to eject (was droptool); M101 is
unmapped (was grabtool, now a pure host-side macro); M102/M103
are unchanged. Header comment updated.
docs/AUX_A_AXIS.md: mention the new atom set.
The drop.nc and grab.nc gcode macros on the controller are
correspondingly rewritten on-device as compositions:
drop = M102 + 4xM100 + G53 G0 Z0 + M103
grab = M102 + G4 P2 + M103
This commit is contained in:
@@ -8,8 +8,9 @@
|
||||
> blended with XYZ in the same S-curve plan and the gcode surface
|
||||
> below applies as plain `A` words.
|
||||
>
|
||||
> The HOOK pipeline still exists for ATC pneumatics (M100..M103),
|
||||
> see `bbctrl/AuxPreprocessor.py`.
|
||||
> The HOOK pipeline still exists for ATC pneumatic atoms (M100 EJECT,
|
||||
> M102 RELEASE, M103 CLAMP) - see `bbctrl/AuxPreprocessor.py`. Macros
|
||||
> compose drop/grab tool sequences from those atoms.
|
||||
|
||||
This adds a virtual `A` axis to the bbctrl controller, driven by the
|
||||
auxcnc ESP32 over USB serial (`/dev/ttyUSB0`). The ESP owns step-pulse
|
||||
|
||||
Reference in New Issue
Block a user