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
- Move docs/AUX_W_AXIS.md to docs/AUX_A_AXIS.md and rebadge W -> A
throughout, with a header note pointing at ExternalAxis as the
current implementation.
- README: A-axis fork heading, link to AUX_A_AXIS.md, /api/aux/status
in verify-flash, small comment in scripts/deploy/local.sh.