Build a CNC Plasma Table Controller for Under $300
If you've got a plasma cutter and a CNC table frame, the only thing standing between you and automated cutting is the controller — and commercial options want $1,500–$3,000 for what amounts to a stepper driver, a relay, and some firmware.
We're building the whole thing for under $300. Open-source firmware, off-the-shelf modules, and a 3D-printed enclosure you can modify to fit your setup.
What We're Building
A complete CNC plasma controller that handles:
- 3-axis stepper control (X, Y, Z via GRBL)
- Torch Height Control (THC) — auto-adjusts Z based on arc voltage
- Arc-OK detection — won't move until the plasma is cutting
- Breakaway torch mount — magnetic mount that detaches on collision
- USB and SD card — run G-code from your computer or standalone
Parts List
Total: ~$280 vs. $1,800+ for a Hypertherm EDGE Connect or Langmuir controller.
Step 1: Understanding the Signal Flow
Before we wire anything, here's how the pieces talk to each other:
G-code (PC/SD)
│
▼
ESP32 (FluidNC) ──── Step/Dir ────► DM542 Drivers ──► Stepper Motors
│ │
├── Arc-OK input ◄── THC Module ◄── Arc Voltage ◄──────┘
│ │
├── Z-axis adjust ◄───────┘ (THC raises/lowers torch)
│
└── Torch Fire relay ──► SSR ──► Plasma Trigger
The key insight: the THC module reads the arc voltage (which correlates to torch-to-work distance) and sends up/down signals to the ESP32's Z-axis. FluidNC handles this natively with the THC module enabled in config.
Step 2: Wiring the Stepper Drivers
Each DM542 driver needs:
- Power input: 48V from the Meanwell PSU (V+ and GND)
- Step/Dir signals: From the ESP32 GPIO pins (3.3V logic works, but use a level shifter if you get missed steps)
- Motor wires: A+/A- and B+/B- to the NEMA23 (check your motor's datasheet for coil pairs)
Use shielded cable for the step/dir lines if your runs are longer than 18". Plasma cutters generate massive EMI, and unshielded signal lines will give you random missed steps and ruined cuts.
DIP switch settings for the DM542:
- Current: set to 2.8A (matches our NEMA23)
- Microstep: 1600 pulses/rev (provides smooth motion without overwhelming the ESP32)
Step 3: Torch Height Control Wiring
The THC module sits between the plasma torch and the controller:
- Arc voltage input — Connect to the plasma cutter's divided voltage output (most machines have a CPC port or raw arc voltage pins). The Proma THC-150 has a built-in voltage divider for 50–150V arc.
- Up/Down outputs — These are open-collector signals that connect to the ESP32's THC input pins.
- Arc-OK output — Goes HIGH when the plasma has established a stable arc. FluidNC uses this as a "motion enable" — the gantry won't move until arc is confirmed.
Arc voltage can be lethal. The raw arc voltage on most plasma cutters is 100–300VDC. Always use the divided output, never tap raw arc directly. If your plasma doesn't have a divided output, use an external voltage divider rated for the voltage.
Step 4: FluidNC Configuration
Flash the ESP32 with FluidNC (grab the latest from fluidnc.com), then edit the YAML config:
name: "Plasma Table"
board: "ESP32"
stepping:
engine: RMT
idle_ms: 250
dir_delay_us: 1
pulse_us: 4
axes:
x:
steps_per_mm: 80
max_rate_mm_per_min: 8000
acceleration_mm_per_sec2: 500
max_travel_mm: 1200
motor0:
step_pin: gpio.12
direction_pin: gpio.14
y:
steps_per_mm: 80
max_rate_mm_per_min: 8000
acceleration_mm_per_sec2: 500
max_travel_mm: 2400
motor0:
step_pin: gpio.26
direction_pin: gpio.27
z:
steps_per_mm: 200
max_rate_mm_per_min: 3000
acceleration_mm_per_sec2: 200
max_travel_mm: 75
motor0:
step_pin: gpio.15
direction_pin: gpio.2
control:
safety_door_pin: NO_PIN
coolant:
flood_pin: gpio.25 # Torch fire relay
thc:
arc_ok_pin: gpio.34
up_pin: gpio.35
down_pin: gpio.39
delay_ms: 150 # Wait for arc to stabilize
Step 5: Enclosure
The 3D-printed enclosure mounts all components and keeps plasma EMI away from the electronics:
- Material: PETG (not PLA — operating near a plasma cutter means heat)
- Design: Split-shell with DIN rail mounts for the DM542 drivers
- Shielding: Line the inside with adhesive copper tape connected to earth ground
Download the STL files: enclosure-top.stl | enclosure-bottom.stl | din-clip.stl
Result
Total build time: about 6 hours across a weekend. The controller runs G-code from any CAM program that outputs standard G-code (Fusion 360, SheetCAM, Inkscape with G-code plugins).
You now have a plasma table controller that:
- Cost $280 instead of $1,800
- Runs open-source firmware you can modify
- Supports WiFi/web interface for wireless job loading
- Can be repaired with $12 replacement modules instead of proprietary boards
If you want to take this further and build a full supervisory interface — real-time cut monitoring, job queue, and remote start/stop — that's exactly what io.codes is for. Design an HMI that talks to FluidNC over the network.
Ready to automate this build?
Design the control system, wire the HMI, and simulate the process — all in your browser. io.codes gives you the same tools factories use, without the $50K license.
Open in io.codes →