Plasma Configuration

The configuration that I use on my tables is a modified version of the below. This configuration will work great right out of the box as is for the most part. Follow the instructions in the readme inside of the zip file and there are a few things mentioned below that I also feel are needed or just nice to have. I was not the original creator of this config, only using and tweaking it for a few years.

Below is very helpful thread on the linuxcnc forum about this config:

It is listed on Proma’s site but this config can be used for any THC that sends Up/Down signals to the breakout board, like the PriceCNC THC on the 4’x4′ table build I have.

NOTE: I would recommend starting with the basic configuration using the stepconfig wizard. This will put all the acceleration, velocity and scale values into a .ini file in the proper format to save time. You simply copy them over instead of doing the calculations by hand.

Necessary Changes not listed in the readme:

Setting max velocity for Z

In the Stepper.hal file, remove the “#” in front of the following line: setp stepgen.2.maxvel [AXIS_2]MAX_VELOCITY

Adding the slave axis

For now, the way I edited this to work was to go into the thc_parport.hal file and add the following lines:

net StepY =>

net DirY =>

These pins should correspond to the step and direction pins for the slave axis. I believe they can be added anywhere but I put them at the end of the step and dir groupings in the file. Use the invert statements listed in the file to change motor direction if needed.

Changes for a better user experience:

To change from MM to Inch units

Open the thc_toma.ini file. In the Trajectory Planner section, change the Linear Units field to “inch”. In the DISPLAY section, I’ve also changed the #increments for the JOB Section to the following

INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in

Change to XYZ machine

They way the config is setup, it assumes there is only a single parallel port, therefor there won’t be any home or limit switch so gantrykins does not have to be used. This might not be the right way to run a dual motor gantry machine but given that without homing switches and the need to square the gantry on your own, the machine does not need to treat each motor independently. I commented out everything to do with gantrykins with a “#” and added in “load trivkins”

Edit the Kinematics.hal file under the kinematics section to look like the below:

#loadrt gantrykins
loadrt trivkins

# Settings for gantrykins
#setp gantrykins.joint-0 0
#setp gantrykins.joint-1 1
#setp gantrykins.joint-2 2
#setp gantrykins.joint-3 1

Timing Changes

The default timing on this config is turned way down so that very low resource PCs can still use it. I found the delay in jogging in the UI to be an annoyance and with the dell 780 optiplex PCs I’ve been using this can be sped up quite a bit to make the experience more real time. All changes for timing will be made in the thc_toma.ini file.

Under the Display Section

  • CYCLE_TIME = 0.01

Under the Task Section

  • CYCLE_TIME = 0.025
  • Note – I may test reducing this time towards .01 to speed up some new HAL logic.

Under the Axes Section

  • CYCLE_TIME = 0.1

Plasma Side Panel Explanations:

The below is my understanding of all these items that pertain to the plasma configuration. This pane will be new when moving from a base configuration to the Proma configuration. It will be located on the right side of the UI.



  • Float Switch – When running Gcode will light green when float switch is tripped during touch off.
  • Torch On – When torch trigger is reached in gcode (M3).
  • Arc OK – When either the simulated arc or arc ok signal from the plasma is passed to your BOB (Breakout Board) will light, it is the signal for the THC code to begin counting the pierce delay.
  • External Estop – When there is an emergency stop trigger by user or float switch when running in auto mode. (Float switch is used for touch of as a reference but during the cut it is used as estop. During the cut, if there is a spike in voltage and the torch is driven into the material by the z axis, the float switch is tripped. This will trigger and Estop and keep the machine from damaging itself.


  • Move Up/Down – During the cut, these buttons will light up as the THC sends adjustment signals to the board. These should be in sync with the Z axis movement and can be watched in real time.
  • Step Size – This is the distance to adjust the Z axis each time a move up or down signal is received. This should be kept quite low as a larger adjustment size may overshoot the desired target and produce a seesaw like torch movement.
  • Travel Height – This is the distance the torch will rise to when moving from cut to cut. If your post processor does not have the ability to jog around previously cut parts, a higher travel height would be beneficial to reduce the chance of the torch colliding with a part that has tipped up after being cut.
  • Sw. Travel – This is the distance the floating torch mount travels from dead hang to tripping the switch. This value should be set once and should not need to be changed in the future.


  • Delay Timer – Non UI adjustable value, pre-delay, will not need to be changed.
  • Delay – Pierce delay measured in seconds.
  • Gap – Distance from plate in which to pierce. Aside from any recommended suggestions from the manufacturer, general rule of thumb is a pierce distance twice that of the desired cut height.
  • Autostart – This should stay checked for 99% of operation. If autostart is unchecked the torch will move to the first piece location but will not fire the torch. Useful for testing gcode.

Corner Height Lock

Corner height lock should almost always be used. THC voltage is based on the metal being cut at a particular rate of speed. If the speed is too slow the arc can lose contact with the material being cut causing a spike in voltage. The THC will see this spike in voltage and understand it as the torch being too far away from the plate, it will then send a signal down to the machine controller to lower the torch, causing the torch to crash into the material. This slowdown mostly happens on corners and hard direction changes since the motors have some deceleration and acceleration time as a direction change happens. Corner height lock is used to block up/down feedback from moving the Z axis when it is determined that the actual speed of the torch has fallen below a threshold percentage of the programmed speed.

  • Locked – This will light when corner height lock is active.
  • Enable – Check the box to enable the feature
  • Threshold Percentage – Use the slider to select the threshold percentage to enable corner height lock. Ex: Lock the torch to current Z height if the actual velocity falls below 60% of programmed velocity.