What the Screen Is Telling You
Two observations narrow this to configuration, not a hardware fault. The relay changes state the instant Mach3 takes the parallel port, so the path from DB25 pin 14 to the board's relay driver is intact and the port is being written. And the Output Signals table shows pin 14 sitting on the Output #1 row while Output #3 carries no port, no pin, and no enable flag. M8 drives Output #3. Output #3 goes nowhere.
The tag is right; the binding is wrong. An M-code reaches a connector pin through two independent configuration stages in Mach3, and both have to agree:
| Stage | Where it lives | Effect when wrong |
|---|---|---|
| M-code → output number | Config > Ports and Pins > Spindle Setup, Flood Mist Control (Mist M7 / Flood M8) and Relay Control (CW M3 / CCW M4) | M8 asserts an output number you never mapped |
| Relay group enable | Same tab: Disable Flood/Mist Relays, Disable Spindle Relays
|
Checked = M8 or M3 asserts nothing at all |
| Output number → pin | Config > Ports and Pins > Output Signals: Enabled, Port #, Pin Number | Row disabled or pin blank = no drive on the connector |
| Pin polarity | Same row: Active Low
|
Relay energized at idle, dropped on M8 |
| Port itself | Port Setup: Port #1 enabled, base address | Entire port stays dead |
Why Does M8 Not Reach Pin 14?
M8 is not bonded to a pin number. It asserts a logical output number set on the Spindle Setup tab, and that number then has to be resolved to a physical pin by an enabled row in Output Signals. Mapping pin 14 onto a row that no M-code addresses, or addressing a row that has no pin, breaks the chain in the middle. That is exactly the state in the screenshot: pin 14 on Output #1, Output #3 empty.
Three gates upstream of the pin will also swallow the command silently. Disable Flood/Mist Relays blocks M8 and M9 regardless of any pin assignment; Disable Spindle Relays does the same for M3 and M4. Mach3 holds the spindle and coolant outputs deasserted while Reset is flashing, so an M8 typed into the MDI line with the machine in E-Stop produces nothing. And two enabled output rows pointed at the same pin fight each other — one deasserts what the other sets. Check that the Charge Pump row is not also parked on pin 14.
M8 on Output #3 or M3 on Output #1?
Both mappings drive the same relay. The criterion is what your CAM post emits and how you want the torch to turn off.
| Criterion | M8 → Output #3 → pin 14 | M3 → Output #1 → pin 14 |
|---|---|---|
| Edits required | Enable Output #3, set Port 1 / Pin 14 | Pin 14 already on Output #1; set CW (M3) output number to 1 |
| Gate to clear | Uncheck Disable Flood/Mist Relays
|
Uncheck Disable Spindle Relays
|
| Post-processor fit | Posts that emit M7/M8/M9 | Most Mach3 plasma posts emit M3/M5 |
| Torch-off behavior | Only on an explicit M9 | M5 at program end, on Stop, and on spindle-off logic |
| Pin left free for later | M3 stays free for a marker or spindle | M8 stays free for an air or coolant valve |
Use M3/M5 for arc-on if you control the post. The torch then falls off with the same logic that stops the spindle — program end, Stop button, Reset — instead of depending on the operator or the post remembering an M9. Keep M8 for the air solenoid. If the post is fixed and emits M8, take the M8 route and configure Output #3 properly; there is no performance difference at the pin.
Configuring the Output
- Open Config > Ports and Pins > Port Setup. Confirm Port #1 is enabled and its base address matches the LPT resource shown in Device Manager (commonly ). Set Kernel Speed to 25000 Hz to start.
- Go to the Output Signals tab. Enable exactly one row for the torch —
Output #3for the M8 route,Output #1for the M3 route — with Port # = 1 and Pin Number = 14. LeaveActive Lowunchecked for now. - Set every other row that references pin 14 to disabled, including
Charge Pumpif the board does not use it. One pin, one enabled signal. - Open the Spindle Setup tab. For M8: uncheck
Disable Flood/Mist Relaysand set the Flood M8 output number to 3. For M3: uncheckDisable Spindle Relaysand set the Clockwise (M3) output number to 1. - Apply, OK, then close and restart Mach3 so the driver reloads the pin map.
- Clear Reset. Outputs stay deasserted while the E-Stop condition is active.
- Type
M8(orM3 S1) in the MDI line and watch the corresponding LED on the Diagnostics screen together with the relay.
Why Is the Relay Closed With the PC Powered Down?
Pin 14 is Auto Feed, one of the four control-register lines on the DB25 (pins 1, 14, 16, 17). With the PC off, that line is not driven; the board's input sees its unpowered rest level and the relay driver follows it. As soon as Mach3 initializes the port, the line is driven to its deasserted level and the relay flips. That is the polarity mismatch talking, and it is fixed with the Active Low checkbox on the output row, not with a wiring change.
Before touching that checkbox, settle which contact you are wired to. A relay reading closed with the PC off may simply be de-energized on its NC contact — in which case Mach3 has been energizing the coil at idle all along, the arc-start command adds nothing visible, and the fix is to move to the NO contact or invert Active Low. Listen for the coil click while toggling M8/M9; a clicking relay with no change at the load contact means the wrong contact.
Either way, an arc-start relay that closes whenever the PC is off or Windows is booting is not an acceptable idle state on a plasma table. Break the torch trigger circuit through the E-Stop chain or a charge-pump-driven enable relay so the arc cannot be commanded while the port is unpowered or Mach3 sits in Reset. Route the trigger pair away from the parallel cable and keep the table grounded — high-frequency arc start couples into an unshielded LPT run and will lock the port mid-cut.
Verifying at the DB25
Put a meter on DB25 pin 14 referenced to a ground pin (18–25) with the torch lead disconnected from the plasma unit, and step through the states:
| State | Diagnostics LED | Pin 14 level | Relay |
|---|---|---|---|
| Mach3 running, Reset cleared, no M-code | Off | Baseline — record it | De-energized |
MDI M8 or M3 S1
|
On | Opposite of baseline | Energized, audible click |
MDI M9 or M5
|
Off | Back to baseline | De-energized |
Branch on what you measure. No level change between idle and asserted means the software path is still broken — recheck the output number in Spindle Setup, the Enabled flag on the output row, and the port base address. Level changes but the relay does not move means the fault is board-side: verify the relay coil supply, any enable or charge-pump jumper, and the board manual's contact rating before you hang the torch trigger on it.
Close it out with a dry run: load the cut file with the plasma unit's torch lead unplugged, and confirm the relay closes at the pierce line and drops at the end of every cut segment before you strike a real arc.
FAQ
Why does M8 not switch any output in Mach3?
M8 asserts the logical output number configured under Config > Ports and Pins > Spindle Setup in the Flood Mist Control block, and that output row must be enabled with a port and pin in Output Signals. If Disable Flood/Mist Relays is checked, M8 asserts nothing no matter how the pins are mapped.
Why does the relay close when the PC is off and open when Mach3 starts?
Pin 14 is a parallel-port control line that is undriven with the PC powered down; Mach3 drives it to the deasserted level at startup and the relay follows. Correct it with the Active Low checkbox on that output row, and confirm whether your load is on the NO or NC contact.
Why does the Diagnostics LED light while the relay stays open?
The software side is resolving correctly and the fault is downstream. Check for a second enabled output row on pin 14, confirm the LPT base address matches Device Manager, then measure pin 14 against ground pins 18–25 to see whether the pin actually toggles.
Can I use M3 instead of M8 to fire the plasma torch?
Yes. Set the Clockwise (M3) output number in Spindle Setup to the output row that carries pin 14 and uncheck Disable Spindle Relays. Most Mach3 plasma posts emit M3/M5, and M5 at program end and on Stop gives a defined torch-off path.