Configuring E-stop, toolsetter and probe

E-stop on Xmax

The current firmware maps the Scylla X-Max input to E-stop by default.

Confirm the firmware pin assignment:

$pins

Expected assignment:

[PIN:PC6,Emergency stop]

Wire the Xmax signal and gnd pins to a free isolated contact on the actuator:

This makes the E-stop input fail-safe: a broken wire, loose connector, or opened actuator contact should all appear as E-stop active.

Power off the controller before wiring. Do not connect the isolated actuator contact to any actuator power terminals; only use the dry/free contact.

E-stop Test

Keep the machine disabled for motion while proving the input.

Query the current status:

?

Expected behavior:

Set the control input invert setting:

$14=6

This is the working setting for the tested Scylla setup. It corrects feed hold (H) and cycle start (S) while keeping E-stop (E) correct.

Target status:

Pn:E only proves the input is active in the status report. It does not by itself prove that grblHAL is acting on the input as a blocking E-stop.

After the input state is correct, verify controller behavior while the E-stop is pressed:

G91
G1 X10 F100

Expected behavior:

If Pn:E appears but G-code is still accepted or streamed, check that $pins reports PC6 as Emergency stop and rebuild firmware with E-stop support explicitly enabled.

If status shows Run|...|Pn:E, the input is mapped but the E-stop interrupt is not being handled. For the STM32H7xx Scylla driver, PC6 uses the EXTI9_5 interrupt range. Confirm both conditions in Src/driver.c:

Do not test machine motion until both the target status and the blocking E-stop behavior are reached.

Only test machine motion after the E-stop state is reliable in gSender/status reports.

Toolsetter

Use the fixed toolsetter for tool length measurement after a tool change.

Wire the toolsetter to the Scylla Tool-IN connector so pressing the toolsetter triggers the dedicated toolsetter input.

Scylla Tool-IN pinout:

For the current NO mechanical toolsetter switch, connect only:

Set the Scylla toolsetter jumpers for a simple switch to ground:

Do not connect the toolsetter switch to V-Tool. Keep the toolsetter electrically isolated from other machine wiring unless the specific toolsetter circuit requires a shared reference.

The Tool LED should change state when the toolsetter switch is pressed. If the LED never changes, check the V-Tool jumper, the NPN pull-up jumper, and continuity between the toolsetter tool and gnd pins.

The firmware must be built with dedicated toolsetter support enabled; see cnc_firmware.

Confirm the firmware pin assignment:

$pins

Expected assignment:

[PIN:PE7,Toolsetter]

Keep the grblHAL pull-up enabled for this wiring. The toolsetter is bit 1 in the probe pull-up disable setting, so this bit must be clear:

$19=0

If the regular probe needs its pull-up disabled later, do not set the toolsetter bit. For example, $19=1 disables only the regular probe pull-up and leaves the toolsetter pull-up enabled.

The toolsetter is bit 1 in the probe invert setting $6:

For the tested Scylla Tool-IN circuit with an NO switch from PE7 to GND, leave the toolsetter not inverted:

$6=0

If the regular probe already needs inversion, use $6=1 instead.

Test the input from the gSender console:

$pinstate

Expected behavior:

Then select the toolsetter probe input and check the realtime status:

G65 P5 Q1
?

Expected behavior:

Return to the regular probe input after testing:

G65 P5 Q0

If Pn:P shows when the toolsetter is released and disappears when pressed, toggle the toolsetter invert bit in $6 while preserving the regular probe bit. Use $6=2 if the regular probe is not inverted, or $6=3 if the regular probe is inverted.

Before running a toolsetter macro:

  1. Select the toolsetter with G65 P5 Q1.
  2. Query status with ? and confirm the toolsetter input is not active.
  3. Press the toolsetter switch by hand and confirm the toolsetter input becomes active.
  4. Release the toolsetter and confirm the input clears.
  5. Select the regular probe again with G65 P5 Q0.
  6. Run the first probing test with a slow feedrate and a short travel distance.

For gSender, use the console for the first tests. After the input works by hand, configure any toolsetter or tool-change probing macro so it selects probe ID 1 before probing and selects probe ID 0 again afterwards:

G65 P5 Q1
G38.2 Z-10 F50
G65 P5 Q0

Adjust the travel and feedrate before running the macro on the real machine. The first test should start close to the toolsetter, move slowly, and have one hand near E-stop.

Do not run a probing macro until the input changes correctly by hand.

Probe

Use the mobile probe or touch plate for workpiece probing, for example setting Z zero on the stock surface.

Wire the mobile probe to the probe input. If the tool, spindle, or workpiece is used as the other side of the probe circuit, confirm continuity with a multimeter before probing.

Before running a probe macro:

  1. Query status with ? and confirm the probe input is not active.
  2. Touch the probe plate to the tool and confirm the probe input becomes active.
  3. Release contact and confirm the probe input clears.
  4. Start with a slow probing feedrate and enough clearance to stop safely.

Keep one hand near E-stop during the first toolsetter and probe tests.