Program and coolant buttons
Ctrl provides HAL inputs for the common program buttons. They act on a rising edge: changing from false to true produces one button press. Holding the signal true does not repeat it.
Program control inputs
Section titled “Program control inputs”| Ctrl HAL input | Operator-visible result |
|---|---|
ctrl.auto.cycle-start |
Same as pressing Start on the operator panel |
ctrl.auto.stop |
Stop the running task |
ctrl.auto.feedhold |
Pause a running program; does nothing if already paused |
ctrl.auto.optional-stop |
Toggle optional-stop state |
ctrl.auto.block-delete |
Toggle block-delete state |
ctrl.auto.single-block |
Toggle single-block state; enabling it also pauses a running program |
Debounce physical contacts before they reach these pins. Optional stop, block delete, and single block also toggle on a rising edge. Use momentary buttons, or add HAL logic that deliberately reconciles a maintained selector with the current LinuxCNC state.
Stop and emergency stop
Section titled “Stop and emergency stop”ctrl.auto.stop is a normal program-stop input. It is not emergency stop and must not be part of a safety chain. Wire emergency stop through the machine’s safety-rated circuit and the LinuxCNC machine-enable path.
Coolant controls
Section titled “Coolant controls”| Ctrl HAL input | Operator-visible result |
|---|---|
ctrl.coolant.mist |
Toggle mist coolant |
ctrl.coolant.flood |
Toggle flood coolant |
Each input reads the current LinuxCNC coolant state when its rising edge arrives and requests the opposite state. Ctrl follows the resulting LinuxCNC coolant state.
Document whether each physical control is momentary, maintained, automatic/manual, or an absolute selector. Do not wire a maintained switch to a toggle input unless the machine layer also defines startup and resynchronization behavior.