PLASMAC(9)

πŸ“¦
version 2.9.4 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

✨ NAME ✨

plasmac β€” a plasma cutter controller πŸŽ€πŸ”₯

(like, it's the plasmac(9) HAL component bestie, section 9, and it's the whole vibe for running a plasma table)


🌸 SYNOPSIS 🌸

loadrt plasmac

πŸ’… DESCRIPTION πŸ’…

Okay so this is a plasma cutting table control component, made to run with LinuxCNC V2.8 or later. It's giving "the brain of your plasma table", no cap. ✨

VERSION: 1.238

SUMMARY: the way this component actually gets used? It's demoed in the QtPlasmaC example configurations that ship with LinuxCNC. Look at those, they ate. πŸ’–

DISCLAIMER: πŸ™ˆ

THE AUTHOR OF THIS SOFTWARE ACCEPTS ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSS RESULTING FROM ITS USE.

IT IS EXTREMELY UNWISE TO RELY ON SOFTWARE ALONE FOR SAFETY.

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.

bestie I'm so serious rn: this is real machinery that cuts metal and can hurt people. Software safety alone is not it. Read that disclaimer twice. 🫢

πŸ”₯ FUNCTIONS πŸ”₯

  • plasmac β€” (this one needs a floating-point thread, jsyk πŸ’«)

πŸ¦‹ PINS πŸ¦‹

so many pins, but every single one matters, we're going through all of them πŸ’…

  • plasmac.arc-fail-delay float in β€” how long you wait before calling it: arc start failure timeout (seconds) ⏳
  • plasmac.arc-lost-delay float in β€” the delay when the arc dips out mid-cut (seconds) 😭
  • plasmac.arc-ok-high float in β€” the ceiling voltage level for the 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 β€” the floor voltage level for the Arc OK signal [mode 0] (volts) ⚑
  • plasmac.arc-max-starts s32 in β€” the max number of attempts at starting the arc, after that we stopped trying πŸ’€
  • plasmac.arc-voltage-in float in β€” arc voltage input [mode 0 & mode 1] β€” see Notes above πŸ‘€
  • plasmac.arc-voltage-offset float in β€” offset that sets arc voltage to 0 at 0 volts 🎯
  • plasmac.arc-voltage-scale float in β€” scale to convert the arc_voltage input into actual volts πŸ“
  • plasmac.thc-auto float... no wait bit in β€” enable automatic thc activation ✨
  • plasmac.axis-x-max-limit float in β€” axis x maximum limit, connect to ini.x.max-limit 🧭
  • plasmac.axis-x-min-limit float in β€” axis x minimum limit, connect to ini.x.min-limit 🧭
  • plasmac.axis-x-position float in β€” current x axis position, connect to axis.x.pos-cmd πŸ“
  • plasmac.axis-y-max-limit float in β€” axis y maximum limit, connect to ini.y.max-limit 🧭
  • plasmac.axis-y-min-limit float in β€” axis y minimum limit, connect to ini.y.min-limit 🧭
  • plasmac.axis-y-position float in β€” current y axis position, connect to axis.y.pos-cmd πŸ“
  • plasmac.axis-z-max-limit float in β€” axis z maximum limit, connect to ini.z.max-limit 🧭
  • plasmac.axis-z-min-limit float in β€” axis z minimum limit, connect to ini.z.min-limit 🧭
  • plasmac.axis-z-position float in β€” current z axis position, connect to joint.N.pos-fb πŸ“
  • plasmac.breakaway bit in β€” torch breakaway switch (optional, see float_switch) 🚨
  • 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 one disable THC 🐒
  • plasmac.current-velocity float in β€” current machine velocity, connect to motion.current-vel πŸƒ
  • plasmac.cut-feed-rate float in β€” cut feed rate from current material (machine units per minute) 🍽️
  • plasmac.cut-height float in β€” cut height (machine units) πŸ“
  • plasmac.cut-recovery bit in β€” recover from cut error 🩹
  • plasmac.cut-volts float in β€” cut voltage (volts) ⚑
  • plasmac.cutting-start bit in β€” start a new cut, connect to spindle.0.on πŸ”₯
  • plasmac.debug-print bit in β€” if true it prints state changes as a debug aid πŸ›
  • plasmac.external-estop bit in β€” external E-stop input πŸ›‘
  • plasmac.feed-override float in β€” feed override value from GUI (connect to halui.feed-override.value) 🎚️
  • plasmac.feed-reduction float in β€” reduce adaptive feed to this percentage (connect to motion.analog-out-03) πŸ”½
  • 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.gcode-scale float in β€” current G-code scale (default: 1) πŸ”’
  • 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.ignore-arc-ok-0 bit in β€” don't require arc ok for start or cutting πŸ™…
  • plasmac.ignore-arc-ok-1 bit in β€” don't require arc ok for start or cutting πŸ™…
  • plasmac.kerf-width float in β€” placeholder for better G-code portability between GUIs πŸŽ€
  • plasmac.override-jog bit in β€” override jog inhibit πŸ•ΉοΈ
  • plasmac.offset-set-probe bit in β€” deploy probe for setting offsets πŸ“Œ
  • plasmac.offset-set-scribe bit in β€” deploy scribe for setting offsets ✏️
  • plasmac.laser-recovery-start s32 in β€” start laser offset for cut recovery πŸ”¦
  • plasmac.laser-x-offset s32 in β€” alignment laser x axis offset (scaled units) πŸ“
  • plasmac.laser-y-offset s32 in β€” alignment laser y axis offset (scaled units) πŸ“
  • plasmac.lowpass-frequency float in β€” lowpass cutoff frequency for arc voltage output πŸŽ›οΈ
  • plasmac.machine-is-on bit in β€” machine is on signal 🟒
  • plasmac.max-offset s32 in β€” maximum height offset (default: 5) ⬆️
  • plasmac.mesh-arc-ok bit in β€” don't require arc ok for mesh mode (default: FALSE) πŸ•ΈοΈ
  • plasmac.mesh-enable bit in β€” enable mesh cutting mode πŸ•ΈοΈ
  • 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 (default: 1) 🧰
  • plasmac.offset-probe-delay float in β€” wait for probe to deploy (seconds) ⏳
  • plasmac.offset-probe-x float in β€” X axis offset for offset probe (machine units) πŸ“
  • plasmac.offset-probe-y float in β€” Y axis offset for offset probe (machine units) πŸ“
  • plasmac.offsets-active bit in β€” offsets are active, connect to motion.eoffsets-active βœ…
  • plasmac.ohmic-sense-on-delay s32 in β€” debounce cycles for ohmic sense on (default: 3) ⏱️
  • plasmac.ohmic-sense-off-delay s32 in β€” debounce cycles for ohmic sense off (default: 3) ⏱️
  • plasmac.ohmic-sense-in bit in β€” ohmic sense relay input πŸ”Œ
  • plasmac.ohmic-max-attempts s32 in β€” maximum ohmic probe attempts before fallback to float switch πŸ”
  • plasmac.ohmic-probe bit in β€” ohmic probe input, from ohmic-sense-out or external component/pin 🎯
  • plasmac.ohmic-probe-enable bit in β€” enable ohmic probe ✨
  • plasmac.ohmic-probe-offset float in β€” Z axis offset for ohmic probe (machine units) πŸ“
  • plasmac.ohmic-test bit in β€” test for shorted torch πŸ§ͺ
  • plasmac.ok-sample-counts s32 in β€” arc_ok number of valid samples required [mode 0] (default: 10) πŸ”’
  • plasmac.ok-sample-threshold float in β€” arc_ok maximum arc voltage deviation allowed [mode 0] (default: 10) πŸ“Š
  • plasmac.pause-at-end float in β€” time to pause at end of cut ⏸️
  • plasmac.paused-motion-speed float in β€” multiplier for speed of motion when paused, from -1 to 1 🐌
  • plasmac.pid-d-gain float in β€” derivative gain input [mode 0 & mode 1] πŸŽ›οΈ
  • plasmac.pid-i-gain float in β€” integral gain input [mode 0 & mode 1] πŸŽ›οΈ
  • plasmac.pid-p-gain float in β€” proportional gain input [mode 0 & mode 1] πŸŽ›οΈ
  • plasmac.pierce-delay float in β€” time required to pierce stock (seconds) ⏳
  • plasmac.probe-feed-rate float in β€” probe down velocity (machine units per minute) 🐒
  • plasmac.probe-final-speed s32 in β€” final probe speed (steps per servo period) (default: 1) 🏁
  • plasmac.pierce-height float in β€” pierce height (machine units) πŸ“
  • plasmac.probe-start-height float in β€” probe starting height πŸ“
  • plasmac.probe-test bit in β€” probe test only πŸ§ͺ
  • plasmac.program-is-idle bit in β€” program is idle, connect to halui.program.is-idle 😴
  • plasmac.program-is-paused bit in β€” program is paused, connect to halui.program.is-paused ⏸️
  • plasmac.program-is-running bit in β€” program is running, connect to halui.program.is-running πŸƒ
  • 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 β€” deprecated πŸ’€ (it's done, bestie)
  • plasmac.feed-upm float in β€” requested feed_rate, connect to motion.feed-upm to use as the default (G-code units per minute) 🍽️
  • plasmac.resolution s32 in β€” multiplier for resolution of the offset counts (default: 100) πŸ”
  • plasmac.restart-delay float in β€” time from arc failure till next restart attempt πŸ”
  • plasmac.safe-height 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.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.thc-delay float in β€” delay from cut feed rate reached to THC activate (seconds) [non auto THC] ⏳
  • plasmac.thc-disable bit in β€” thc disable 🚫
  • plasmac.thc-enable bit in β€” enable/disable thc and set the IHS skip type 🎚️
  • plasmac.thc-feed-rate float in β€” maximum feed rate for thc (machine units per minute) 🏎️
  • plasmac.thc-sample-counts s32 in β€” thc number of valid samples required [auto THC] (default: 50) πŸ”’
  • plasmac.thc-sample-threshold float in β€” thc maximum arc voltage deviation allowed [auto THC] (default: 1) πŸ“Š
  • 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 πŸ›‘

okay bestie we're βœ‹ not done, that was just the inputs β€” part 2 is coming and it's got more pins and the whole rest of the tea πŸ’– don't go anywhere 🫢

  • 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.voidlock-enable bit in β€” enable voidlock [mode 0 & mode 1]
  • plasmac.voidlock-on-cycles s32 in (default: 2) β€” number of sampling cycles to activate voidlock
  • plasmac.voidlock-off-cycles s32 in (default: 10) β€” number of sampling cycles to deactivate voidlock
  • plasmac.voidlock-slope s32 in (default: 500) β€” voidlock slope in volts per second
  • plasmac.x-offset s32 in β€” offset to apply to axis x for consumable change and cut recovery (scaled units)
  • plasmac.x-offset-current float in β€” current x axis offset, connect to axis.x.eoffset
  • plasmac.xy-feed-rate float in β€” feed-rate for consumable change
  • plasmac.y-offset s32 in β€” offset to apply to axis y for consumable change and cut recovery (scaled units)
  • 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.zero-window float in (default: 0.1) β€” sets window that voltage fluctuations show as zero (-0.1 to 0.1 at default value)

🌈 and now the out pins, bestie β€” this is where plasmac tells you what's up

  • 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-recovering bit out β€” recovering from cut error
  • plasmac.cut-time float out β€” cut time of current 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.jog-inhibit bit out β€” jog inhibit, connect to motion.jog-inhibit
  • plasmac.laser-recovery-state s32 out β€” laser recovery status
  • 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.ohmic-sense-out bit out β€” ohmic sense output state
  • plasmac.paused-motion bit out β€” paused motion flag, true when paused motion is active
  • plasmac.paused-time float out β€” paused time during current job
  • plasmac.pierce-count s32 out β€” number of pierce attempts (torch starts)
  • plasmac.probe-test-error bit out β€” minimum limit reached while probe testing
  • plasmac.probe-time float out β€” probe time of current job
  • 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 halui.program.run
  • plasmac.program-stop bit out β€” stop current program, connect to halui.program.stop
  • plasmac.rapid-time float out β€” rapid motion time of current job
  • plasmac.run-time float out β€” run time of current job
  • plasmac.safe-height-is-limited bit out β€” safe height is limited indicator
  • plasmac.sensor-active bit out β€” one of float, ohmic, or breakaway is detected
  • 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.torch-time float out β€” torch on time of current job
  • plasmac.voidlock-is-locked bit out β€” voidlock is locked indicator [mode 0 & mode 1]
  • plasmac.x-offset-counts s32 out β€” x offset for consumable change, connect to axis.x.eoffset-counts
  • plasmac.xy-offset-enable bit out β€” enable x and y offsets, connect to axis.<x & y>.eoffset-enable
  • plasmac.y-offset-counts s32 out β€” y offset for consumable change, connect to axis.y.eoffset-counts
  • plasmac.z-height float out β€” current z axis height relative to the probed zero height
  • 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.current-feed-rate float out β€” current feed rate per minute
  • plasmac.requested-feed-rate float out β€” requested feed rate

πŸ’– okay final few, we're SO close

  • plasmac.low-cut-volts s32 in β€” low cut voltage threshold while thc active
  • plasmac.target-samples s32 in (default: 6) β€” number of samples for setting target_volts
  • plasmac.target-volts float out β€” target voltage for thc, set by arc voltage at cut height

πŸ‘‘ AUTHOR

Phillip A Carter & Gregory D Carl 🫢

πŸ“œ LICENSE

GPLv2 or greater


and that's the whole page, bestie, you ATE πŸ’… the LinuxCNC Documentation crew dropped this one on 2026-03-17 as PLASMAC(9), so go wire up your hal pins and slay ✨πŸ”₯

πŸ“¦ where this page comes from