plasmac - A plasma cutter controller


loadrt plasmac


A plasma cutting table control component for use with the LinuxCNC V2.8 or later.

0.159 - 2020 Aug 10

Usage of this component is demonstrated in the PlasmaC example configurations included with LinuxCNC.



Any machinery capable of harming persons must have provisions for completely stopping all motors and moving parts etc. before persons enter any danger area.

All machinery must be designed to comply with local and national safety codes, and the author of this software can not, and does not, take any responsibility for such compliance.


plasmac (requires a floating-point thread)


plasmac.arc-fail-delay float in

arc failure timeout (seconds)

plasmac.arc-ok-high float in

maximum voltage level for Arc OK signal [mode 0] (volts)

plasmac.arc-ok-in bit in

external arc ok input signal [mode 1 & mode 2]

plasmac.arc-ok-low float in

minimum voltage level for Arc OK signal [mode 0] (volts)

plasmac.arc-max-starts s32 in

maximum attempts at starting the arc

plasmac.arc-voltage-in float in

arc voltage input [mode 0 & mode 1] see Notes above

plasmac.arc-voltage-offset float in

offset to set arc voltage to 0 at 0 volts

plasmac.arc-voltage-scale float in

scale to convert arc_voltage input to actual volts

plasmac.axis-z-min-limit float in

axis z minimum limit, connect to ini.z.min-limit

plasmac.axis-z-max-limit float in

axis z maximum limit, connect to ini.z.max-limit

plasmac.axis-z-position float in

current z axis position, connect to joint.N.pos-fb

plasmac.axis-x-position float in

current x axis position, connect to axis.x.pos-cmd

plasmac.axis-y-position float in

current y axis position, connect to axis.y.pos-cmd

plasmac.breakaway bit in

torch breakaway switch (optional, see float_switch)

plasmac.spotting-start bit in

start a new spot, connect to spindle.2.on

plasmac.spotting-threshold float in

threshold voltage to start spotting delay

plasmac.spotting-time float in

torch off delay after spotting threshold reached

plasmac.consumable-change bit in

change consumables in torch

plasmac.cornerlock-enable bit in

enable corner lock

plasmac.cornerlock-threshold float in

corner lock threshold (% of requested feed rate), speeds below this disable THC

plasmac.current-velocity float in

current machine velocity , connect to motion.current-vel

plasmac.cut-feed-rate float in

cut feed rate, set to 0 to use feed rate from gcod file (machine units per minute)

plasmac.cut-height float in

cut height (machine units)

plasmac.cut-volts float in

cut voltage (volts)

plasmac.cutting-start bit in

start a new cut, connect to spindle.0.on

plasmac.external-estop bit in

external estop input

plasmac.feed-reduction float in

reduce adaptive feed to this percentage (connect to motion.analog-out-03)

plasmac.feed-override float in

feed override value from gui (connect to halui.feed-override.value)

plasmac.float-switch bit in

float switch input (can also act as breakaway if it actuates when torch breaks away)

plasmac.float-switch-travel float in

float switch travel (machine units)

plasmac.height-override float in

height override adjustment (volts)

plasmac.height-per-volt float in

torch height change per volt (machine units)

plasmac.homed bit in

machine is homed

plasmac.kerfcross-enable bit in

enable kerf crossing [mode 0 & mode 1]

plasmac.kerfcross-override float in

kerf crossing threshold override as a percentage

plasmac.lowpass-frequency float in

lowpass cutoff frequency for arc voltage output

plasmac.mesh-ignore-ok bit in

don’t require arc ok for mesh mode

plasmac.mesh-enable-0 bit in

enable mesh cutting mode input 0

plasmac.mesh-enable-1 bit in

enable mesh cutting mode input 0

plasmac.mode s32 in

operating mode

plasmac.motion-type s32 in

motion type, connect to motion.motion-type

plasmac.move-down bit in

external thc down switch [mode 2])

plasmac.move-up bit in

external thc up switch [mode 2]

plasmac.multi-tool bit in

allows the use of multiple tools

plasmac.ohmic-probe-enable bit in

ohmic probe enable input

plasmac.ohmic-probe-offset float in

Z axis offset for ohmic probe (machine units)

plasmac.ohmic-max-attempts s32 in

maximum ohmic probe attempts before fallback to float switch

plasmac.ohmic-probe bit in

ohmic probe input

plasmac.ohmic-test bit in

test for shorted torch

plasmac.paused-motion-speed float in

multiplier for speed of motion when paused, from -1 to 1

plasmac.pause-at-end float in

time to pause at end of cut float in

derivative gain input [mode 0 & mode 1] float in

integral gain input [mode 0 & mode 1] float in

proportional gain input [mode 0 & mode 1]

plasmac.pierce-delay float in

time required to pierce stock (seconds)

plasmac.pierce-height float in

pierce height (machine units)

plasmac.probe-feed-rate float in

probe down velocity (machine units per minute)

plasmac.probe-test bit in

probe test only

plasmac.probe-start-height float in

probe starting height

plasmac.program-is-idle bit in

program is idle, connect to

plasmac.program-is-paused bit in

program is paused, connect to

plasmac.program-is-running bit in

program is running, connect to

plasmac.puddle-jump-delay float in

delay move from pierce height to cut height (seconds), leave disconnected if not required

plasmac.puddle-jump-height float in

puddle jump height (percentage of pierce height), leave disconnected if not required

plasmac.requested-velocity float in

requested velocity, set by a known requested velocity or connect to motion.requested-vel

plasmac.restart-delay float in

time from arc failure till next restart attempt float in

requested safe traverse height (machine units)

plasmac.scribe-arm-delay float in

delay from scribe arm to scribe on

plasmac.scribe-on-delay float in

delay from scribe on to motion beginning

plasmac.scribe-start bit in

start a new scribe, connect to spindle.1.on

plasmac.setup-feed-rate float in

feed rate for moves to pierce and cut heights (machine units per minute)

plasmac.skip-ihs-distance float in

skip IHS if less than this distance from last cut

plasmac.thc-enable bit in

enable/disable thc and set the IHS skip type

plasmac.thc-disable bit in

thc disable

plasmac.thc-delay float in

delay from start of cut to THC enable (seconds)

plasmac.thc-feed-rate float in

maximum feed rate for thc (machine units per minute)

plasmac.thc-threshold float in

thc threshold (volts), changes below this have no effect

plasmac.torch-enable bit in

enable torch

plasmac.torch-off bit in

turn torch off

plasmac.torch-pulse-start bit in

torch pulse start

plasmac.torch-pulse-time float in

torch pulse time (seconds)

plasmac.units-per-mm float in

for scale calcs, connect to halui.machine.units-per-mm

plasmac.use-auto-volts bit in

use calculated voltage for thc baseline

plasmac.xy-feed-rate float in

feed-rate for consumable change

plasmac.x-offset float in

offest to apply to axis x for consumable change

plasmac.x-offset-current float in

current x axis offset, connect to axis.x.eoffset

plasmac.y-offset float in

offest to apply to axis y for consumable change

plasmac.y-offset-current float in

current z axis offset, connect to axis.y.eoffset

plasmac.z-offset-current float in

current z axis offset, connect to axis.z.eoffset

plasmac.adaptive-feed float out

for reverse-run, connect to motion.adaptive-feed

plasmac.arc-ok-out bit out

arc ok output

plasmac.arc-voltage-out float out

arc voltage output [mode 0 & mode 1]

plasmac.consumable-changing bit out

consumables are being changed

plasmac.cornerlock-is-locked bit out

corner locked indicator

plasmac.cut-length float out

length of current cut job

plasmac.cut-time float out

time of current cut job

plasmac.cutting-stop bit out

stop manual cut, connect to halui.spindle.0.stop

plasmac.feed-hold bit out

feed hold, connect to motion.feed_hold

plasmac.kerfcross-is-locked bit out

kerf crossing locked indicator [mode 0 & mode 1]

plasmac.led-down bit out

thc move down indicator

plasmac.led-up bit out

thc move up indicator

plasmac.offset-scale float out

offset scale, connect to axis.<x y z>.eoffset-scale

plasmac.ohmic-enable bit out

on only while probing

plasmac.pierce-count s32 out

number of pierce attempts

plasmac.probe-test-error bit out

minimum limit reached while pobe testing

plasmac.program-pause bit out

pause the current program, connect to halui.program.pause

plasmac.program-resume bit out

resume the currently paused program, connect to halui.program.resume

plasmac.program-run bit out

run the currently loaded program, connect to

plasmac.program-stop bit out

stop current program, connect to halui.program.stop bit out

safe height is limited indicator

plasmac.scribe-arm bit out

arm the scribe

plasmac.scribe-on bit out

turn scribe on

plasmac.state-out s32 out

current state

plasmac.stop-type-out s32 out

current stop type

plasmac.thc-active bit out

thc status output

plasmac.thc-enabled bit out

thc is enabled

plasmac.torch-on bit out

turn torch on, connect to your torch on input

plasmac.x-offset-counts s32 out

x offset for consumable change, connect to axis.x.eoffset-counts

plasmac.y-offset-counts s32 out

y offset for consumable change, connect to axis.y.eoffset-counts

plasmac.xy-offset-enable bit out

enable x and y offsets, connect to axis.<x & y>.eoffset-enable

plasmac.z-offset-counts s32 out

z offset for height control, connect to axis.z.eoffset-counts

plasmac.z-offset-enable bit out

enable z offsets, connect to axis.z.eoffset-enable

plasmac.z-relative float out

distance of Z from last probed height


plasmac.debug-print bit rw (default: FALSE)

print debug messages

plasmac.kerf-errors-max s32 rw (default: 2)

allowable kerfcross threshold errors


Phillip A Carter


GPLv2 or greater