Affiliate disclosure · Some links earn us a commission at no extra cost to you
CNC / Plasma

Build a CNC Plasma Table Controller for Under $300

2026-08-24 · 4 min read · Intermediate

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:

Parts List

Component Spec Qty Source
ESP32 GRBL Controller Board FluidNC compatible, 3-axis 1 $38 →
DM542 Stepper Driver 4.2A peak, 24-48V 3 $22 ea →
NEMA23 Stepper Motor 2.8A, 1.8°, 178oz-in 3 $28 ea →
Proma THC-150 Module Torch height control, 50-150V arc 1 $45 →
48V 10A Power Supply Meanwell LRS-350-48 1 $35 →
SSR-40DA Solid State Relay 40A, 3-32VDC trigger 1 $12 →
Misc (connectors, wire, terminals) 14-18AWG, aviation plugs 1 kit $30 →

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:

  1. Power input: 48V from the Meanwell PSU (V+ and GND)
  2. Step/Dir signals: From the ESP32 GPIO pins (3.3V logic works, but use a level shifter if you get missed steps)
  3. Motor wires: A+/A- and B+/B- to the NEMA23 (check your motor's datasheet for coil pairs)
Tip

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:

Step 3: Torch Height Control Wiring

The THC module sits between the plasma torch and the controller:

  1. 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.
  2. Up/Down outputs — These are open-collector signals that connect to the ESP32's THC input pins.
  3. 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.
Warning

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:

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:

Note

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 →