1. Components

Most of the commands in the following list have their own dedicated man pages. Some will have expanded descriptions, some will have limited descriptions. From this list you know what components exist, and you can use man name on your UNIX command line to get additional information. To view the information in the man page, in a terminal window type:

man axis

The one or other setup of a UNIX system may require to explicitly specify the section of the man page. If you do not find the man page or the name of the man page is already taken by another UNIX tool with the LinuxCNC man page residing in another section, then try to explicitly specify the section, as in man _section-no_ axis, with section-no = 1 for non-realtime and 9 for realtime components.

Note
See also the Man Pages section of the docs main page or the directory listing. To search in the man pages, use the UNIX tool apropos.

1.1. User Interfaces (non-realtime)

1.1.1. Machine Control

axis

AXIS LinuxCNC (The Enhanced Machine Controller) GUI

axis-remote

AXIS Remote Interface

gmoccapy

Touchy LinuxCNC Graphical User Interface

gscreen

Touchy LinuxCNC Graphical User Interface

halui

Observe HAL pins and command LinuxCNC through NML

mdro

manual only Digital Read Out (DRO)

ngcgui

Framework for conversational G-code generation on the controller

panelui

pyngcgui

Python implementation of NGCGUI

touchy

AXIS - TOUCHY LinuxCNC Graphical User Interface

1.1.2. Virtual Control Panels (VCP)

gladevcp

Virtual Control Panel for LinuxCNC based on Glade, Gtk and HAL widgets

gladevcp_demo

GladeVCP - used by sample configs to demonstrate Glade Virtual_demo

gremlin_view

G-code graphical preview

moveoff_gui

GUI for the moveoff component

pyui

Utility for panelui

pyvcp

Virtual Control Panel for LinuxCNC

pyvcp_demo

Python Virtual Control Panel demonstration component

qtvcp

Qt based virtual control panel

1.1.3. Vismach Virtual Machines

5axisgui

Vismach Virtual Machine GUI

hbmgui

Vismach Virtual Machine GUI

hexagui

Vismach Virtual Machine GUI

lineardelta

Vismach Virtual Machine GUI

maho600gui

hexagui - Vismach Virtual Machine GUI

max5gui

hexagui - Vismach Virtual Machine GUI

melfagui

Vismach Virtual Machine GUI

puma560gui

puma560agui - Vismach Virtual Machine GUI

pumagui

Vismach Virtual Machine GUI

rotarydelta

Vismach Virtual Machine GUI

scaragui

Vismach Virtual Machine GUI

xyzac-trt-gui

Vismach Virtual Machine GUI

xyzbc-trt-gui

Vismach Virtual Machine GUI

xyzab-tdr-gui

Vismach Virtual Machine GUI

1.2. Motion (non-realtime)

io

iocontrol - interacts with HAL or G-code in non-realtime

iocontrol

Interacts with HAL or G-code in non-realtime

mdi

Send G-code commands from the terminal to the running LinuxCNC instance

milltask

Non-realtime task controller for LinuxCNC

1.3. Hardware Drivers

1.3.1. VFD & Communication Interfaces (non-realtime)

elbpcom

Communicate with Mesa Ethernet cards

gs2_vfd

HAL non-realtime component for Automation Direct GS2 VFDs

hy_gt_vfd

HAL non-realtime component for Huanyang GT-series VFDs

hy_vfd

HAL non-realtime component for Huanyang VFDs

mb2hal

MB2HAL is a generic non-realtime HAL component to communicate with one or more Modbus devices. Modbus RTU and Modbus TCP are supported.

mitsub_vfd

HAL non-realtime component for Mitsubishi A500 F500 E500 A500 D700 E700 F700-series VFDs (others may work)

monitor-xhc-hb04

Monitors the XHC-HB04 pendant and warns of disconnection

pi500_vfd

Powtran PI500 modbus driver

pmx485

Modbus communications with a Powermax Plasma Cutter

pmx485-test

Modbus communications testing with a Powermax Plasma Cutter

shuttle

control HAL pins with the ShuttleXpress, ShuttlePRO, and ShuttlePRO2 device made by Contour Design

svd-ps_vfd

HAL non-realtime component for SVD-P(S) VFDs

vfdb_vfd

HAL non-realtime component for Delta VFD-B Variable Frequency Drives

vfs11_vfd

HAL non-realtime component for Toshiba-Schneider VF-S11 Variable Frequency Drives

wj200_vfd

Hitachi wj200 Modbus driver

xhc-hb04

Non-realtime HAL component for the xhc-hb04 pendant

xhc-hb04-accels

Obsolete script for jogging wheel

xhc-whb04b-6

Non-realtime jog dial HAL component for the wireless XHC WHB04B-6 USB device

1.4. Mesa and other I/O Cards (Realtime)

hal_ppmc

Pico Systems driver for analog servo, PWM and Stepper controller

hal_bb_gpio

Driver for BeagleBone GPIO pins

hal_parport

Realtime HAL component to communicate with one or more PC parallel ports

hm2_7i43

Mesa Electronics driver for the 7I43 EPP Anything IO board with HostMot2. (See the man page for more information)

hm2_7i90

LinuxCNC HAL driver for the Mesa Electronics 7I90 EPP Anything IO board with HostMot2 firmware

hm2_eth

LinuxCNC HAL driver for the Mesa Electronics Ethernet Anything IO boards, with HostMot2 firmware

hm2_pci

Mesa Electronics driver for the 5I20, 5I22, 5I23, 4I65, and 4I68 Anything I/O boards, with HostMot2 firmware. (See the man page for more information)

hm2_rpspi

LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware

hm2_spi

LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware

hostmot2

Mesa Electronics driver for the HostMot2 firmware.

max31855

Support for the MAX31855 Thermocouple-to-Digital converter using bitbanged SPI

mesa_7i65

Mesa Electronics driver for the 7I65 eight-axis servo card. (See the man page for more information)

mesa_pktgyro_test

PktUART simple test with Microstrain 3DM-GX3-15 gyro

mesa_uart

An example component demonstrating how to access the Hostmot2 UART

opto_ac5

Realtime driver for opto22 PCI-AC5 cards

pluto_servo

Pluto-P driver and firmware for the parallel port FPGA, for servos

pluto_step

Pluto-P driver for the parallel port FPGA, for steppers

serport

Hardware driver for the digital I/O bits of the 8250 and 16550 serial port

setsserial

An utility for setting Smart Serial NVRAM parameters

sserial

hostmot2 - Smart Serial LinuxCNC HAL driver for the Mesa Electronics HostMot2 Smart-Serial remote cards

1.5. Utilities (non-realtime)

hal-histogram

Plots the value of a HAL pin as a histogram

halcompile

Build, compile and install LinuxCNC HAL components

halmeter

Observe HAL pins, signals, and parameters

halcmd

Manipulate the LinuxCNC HAL from the command line

halcmd_twopass

Utility script used when parsing HAL files. It allows to have multiple load-commands for multiple instances of the same component.

halreport

Creates a report on the status of the HAL

halrmt

Remote-control interface for LinuxCNC

halrun

Manipulate the LinuxCNC HAL from the command line

halsampler

Sample data from HAL in realtime

halscope

Software oscilloscope for viewing real time waveforms of HAL pins and signals

halshow

Show HAL parameters, pins and signals

halstreamer

Stream file data into HAL in real time

haltcl

Manipulates the LinuxCNC HAL from the command line using Tcl

image-to-gcode

Converts bitmap images to G-code

inivar

Query an INI file

latency-histogram

Plots histogram of machine latency

latency-plot

Another way to view latency numbers

latency-test

Tests the realtime system latency

linuxcncmkdesktop

Create a desktop icon for LinuxCNC

modcompile

Utility for compiling Modbus drivers

motion-logger

Log motion commands sent from LinuxCNC

pncconf

Configuration wizard for Mesa cards

sim_pin

GUI for displaying and setting one or more HAL inputs

stepconf

Configuration wizard for parallel-port based machines

update_ini

Converts 2.7 format INI files to 2.8 format

debuglevel

Sets the debug level for the non-realtime part of LinuxCNC

emccalib

Adjust ini tuning variables on the fly with save option

hal_input

Control HAL pins with any Linux input device, including USB HID devices

linuxcnc_info

Collects information about the LinuxCNC version and the host

linuxcnc_module_helper

Controls root access for system hardware

linuxcnc_var

Retrieves LinuxCNC variables

linuxcnc

LinuxCNC (The Enhanced Machine Controller)

linuxcnclcd

LinuxCNC Graphical User Interface for LCD character display

linuxcncrsh

Text-mode interface for commanding LinuxCNC over the network

linuxcncsvr

Allows network access to LinuxCNC internals via NML

linuxcnctop

Live LinuxCNC status description

rs274

Standalone G-code interpreter

schedrmt

Telnet based scheduler for LinuxCNC

setup_designer

A script to configure the system for use of Qt Designer

teach-in

Jog the machine to a position, and record the state

tool_mmap_read

A component of the tool database system (an alternative to the classic tooltable)

tool_watch

A component of the tool database system (an alternative to the classic tooltable)

tooledit

Tooltable editor

1.6. Signal processing (Realtime)

1.6.1. Logic and Bitwise

and2

Two-input AND gate. For out to be true both inputs must be true. (and2)

bitwise

Computes various bitwise operations on the two input values

dbounce

Filter noisy digital inputs Details

debounce

Filter noisy digital inputs Details description

demux

Select one of several output pins by integer and/or or individual bits

demux_generic

Routes a single input signal to one of multiple outputs.

edge

Edge detector

estop_latch

E-stop latch

flipflop

D-type flip-flop

logic

General logic function component

lut5

5-input logic function based on a look-up table description

match8

8-bit binary match detector

multiclick

Single-, double-, triple-, and quadruple-click detector

multiswitch

Toggles between a specified number of output bits

not

Inverter

oneshot

One-shot pulse generator

or2

Two-input OR gate

output_buffer

Feed through multiple bits when enable pin is set

reset

Resets an IO signal

select8

8-bit binary match detector.

tof

IEC TOF timer - delay falling edge on a signal

toggle

Push-on, push-off from momentary pushbuttons

toggle2nist

Toggle button to nist logic

ton

IEC TON timer - delay rising edge on a signal

timedelay

Equivalent of a time-delay relay.

tp

IEC TP timer - generate a high pulse of defined duration on rising edge

tristate_bit

Places signal on an I/O pin only when enabled, similar to a tristate buffer in electronics

tristate_float

Places signal on an I/O pin only when enabled, similar to a tristate buffer in electronics

xor2

Two-input XOR (exclusive OR) gate

1.6.2. Arithmetic and float

abs_s32

Computes the absolute value and sign of a integer input signal

abs_s64

Computes the absolute value and sign of a 64 bit integer input signal

abs

Computes the absolute value and sign of a float input signal

biquad

Biquad IIR filter

blend

Perform linear interpolation between two values

comp

Two input comparator with hysteresis

counter

Counts input pulses (deprecated). Use the encoder component.

ddt

Computes the derivative of the input function.

deadzone

Returns the center if within the threshold.

div2

Quotient of two floating point inputs.

hypot

Three-input hypotenuse (Euclidean distance) calculator.

ilowpass

Low-pass filter with integer inputs and outputs

integ

Integrator

invert

Computes the inverse of the input signal.

filter_kalman

Unidimensional Kalman filter, also known as linear quadratic estimation (LQE)

knob2float

Converts counts (probably from an encoder) to a float value.

led_dim

HAL component for dimming LEDs

lowpass

Low-pass filter

limit1

Limits the output signal to fall between min and max. [1]

limit2

Limits the output signal to fall between min and max. Limit its slew rate to less than maxv per second. [2]

limit3

Limit the output signal to fall between min and max. Limit its slew rate to less than maxv per second. Limit its second derivative to less than MaxA per second squared [3].

lincurve

One-dimensional lookup table

maj3

Compute the majority of 3 inputs

minmax

Tracks the minimum and maximum values of the input to the outputs.

mult2

Product of two inputs.

mux16

Select from one of 16 input values (multiplexer).

mux2

Select from one of two input values (multiplexer).

mux4

Select from one of four input values (multiplexer).

mux8

Select from one of eight input values (multiplexer).

mux_generic

Select one from several inputs and forwards it to a single output (multiplexer).

near

Determine whether two values are roughly equal.

offset

Adds an offset to an input, and subtracts it from the feedback value.

safety_latch

latch for error signals

sample_hold

Sample and Hold.

scaled_s32_sums

Sum of four inputs (each with a scale)

scale

Applies a scale and offset to its input.

sum2

Sum of two inputs (each with a gain) and an offset.

time

Accumulated run-time timer counts HH:MM:SS of active input.

timedelta

Component that measures thread scheduling timing behavior.

updown

Counts up or down, with optional limits and wraparound behavior.

wcomp

Window comparator.

watchdog

Monitor one to thirty-two inputs for a heartbeat.

weighted_sum

Convert a group of bits to an integer.

xhc_hb04_util

xhc-hb04 convenience utility

1.7. Signal generation (Realtime)

charge_pump

Creates a square-wave for the charge pump input of some controller boards.

pwmgen

Software PWM/PDM generation, see description.

siggen

Signal generator, see description.

sim_encoder

Simulated quadrature encoder, see description.

stepgen

Software step pulse generation, see description.

1.7.1. Type conversion

bin2gray

Converts a number to the gray-code representation

bitmerge

Converts individual input bits into an unsigned-32

bitslice

Converts an unsigned-32 input into individual bits

conv_bit_float

Converts from bit to float

conv_bit_s32

Converts from bit to s32

conv_bit_u32

Converts from bit to u32

conv_float_s32

Converts from float to s32

conv_float_u32

Converts from float to u32

conv_s32_bit

Converts from s32 to bit

conv_s32_float

Converts from s32 to float

conv_s32_u32

Converts from s32 to u32

conv_u32_bit

Converts from u32 to bit

conv_u32_float

Converts from u32 to float

conv_u32_s32

Converts from u32 to s32

conv_bit_s64

Convert a value from bit to s64

conv_bit_u64

Convert a value from bit to u64

conv_float_s64

Convert a value from float to s64

conv_float_u64

Convert a value from float to u64

conv_s32_s64

Convert a value from s32 to s64

conv_s32_u64

Convert a value from s32 to u64

conv_s64_bit

Convert a value from s64 to bit

conv_s64_float

Convert a value from s64 to float

conv_s64_s32

Convert a value from s64 to s32

conv_s64_u32

Convert a value from s64 to u32

conv_s64_u64

Convert a value from s64 to u64

conv_u32_s64

Convert a value from u32 to s64

conv_u32_u64

Convert a value from u32 to u64

conv_u64_bit

Convert a value from u64 to bit

conv_u64_float

Convert a value from u64 to float

conv_u64_s32

Convert a value from u64 to s32

conv_u64_s64

Convert a value from u64 to s64

conv_u64_u32

Convert a value from u64 to u32

gray2bin

Converts gray-code input to binary

1.8. Kinematics (Realtime)

corexy_by_hal

CoreXY kinematics

differential

Kinematics for a differential transmission

gantry

LinuxCNC HAL component for driving multiple joints from a single axis

gantrykins

Kinematics module that maps one axis to multiple joints.

genhexkins

Gives six degrees of freedom in position and orientation (XYZABC). The location of the motors is defined at compile time.

genserkins

Kinematics that can model a general serial-link manipulator with up to 6 angular joints.

gentrivkins

1:1 correspondence between joints and axes. Most standard milling machines and lathes use the trivial kinematics module.

kins

Kinematics definitions for LinuxCNC.

lineardeltakins

Kinematics for a linear delta robot

matrixkins

Calibrated kinematics for 3-axis machines

maxkins

Kinematics for a tabletop 5 axis mill named max with tilting head (B axis) and horizontal rotary mounted to the table (C axis). Provides UVW motion in the rotated coordinate system.

millturn

Switchable kinematics for a mill-turn machine

pentakins

pumakins

Kinematics for PUMA-style robots.

rosekins

Kinematics for a rose engine

rotatekins

The X and Y axes are rotated 45 degrees compared to the joints 0 and 1.

scarakins

Kinematics for SCARA-type robots.

tripodkins

The joints represent the distance of the controlled point from three predefined locations (the motors), giving three degrees of freedom in position (XYZ).

userkins

Template for user-built kinematics

xyzab_tdr_kins

Switchable kinematics for 5 axis machine with rotary table A and B

xyzacb_trsrn

Switchable kinematics for 6 axis machine with a rotary table C, rotary spindle B and nutating spindle A

xyzbca_trsrn

Switchable kinematics for 6 axis machine with a rotary table B, rotary spindle C and nutating spindle A

1.9. Motion control (Realtime)

feedcomp

Multiply the input by the ratio of current velocity to the feed rate.

homecomp

Homing module template

limit_axis

Dynamic range based axis limits

motion

Accepts NML motion commands, interacts with HAL in realtime

simple_tp

This component is a single axis simple trajectory planner, same as used for jogging in LinuxCNC.

tpcomp

Trajectory Planning (tp) module skeleton

1.10. Motor control (Realtime)

at_pid

Proportional/integral/derivative controller with auto tuning.

bldc

BLDC and AC-servo control component

clarke2

Two input version of Clarke transform

clarke3

Clarke (3 phase to Cartesian) transform

clarkeinv

Inverse Clarke transform

encoder

Software counting of quadrature encoder signals, see description.

pid

Proportional/integral/derivative controller, description.

pwmgen

Software PWM/PDM generation, see description.

stepgen

Software step pulse generation, see description.

1.11. Simulation/Testing

axistest

Used to allow testing of an axis. Used In PnCConf.

rtapi_app

creates a simulated real time environment

sim-torch

A simulated plasma torch

sim_axis_hardware

A component to simulate home and limit switches

sim_home_switch

Home switch simulator

sim_matrix_kb

convert HAL pin inputs to key codes

sim_parport

A component to simulate the pins of the hal_parport component

sim_spindle

Simulated spindle with index pulse

simulate_probe

simulate a probe input

1.12. Other (Realtime)

anglejog

Jog two axes (or joints) at an angle

classicladder

Realtime software PLC based on ladder logic. See ClassicLadder chapter for more information.

charge_pump

Creates a square-wave for the charge pump input of some controller boards.

encoder_ratio

Electronic gear to synchronize two axes.

enum

Enumerate integer values into bits

eoffset_per_angle

Compute External Offset Per Angle

gladevcp (Realtime)

displays Virtual control Panels built with GTK / GLADE

histobins

Histogram bins utility for scripts/hal-histogram

joyhandle

Sets nonlinear joypad movements, deadbands and scales.

latencybins

Comp utility for scripts/latency-histogram

message

Display a message

moveoff

Component for HAL-only offsets

raster

Outputs laser power based upon pre programmed rastering data

sampler

Sample data from HAL in real time.

siggen

Signal generator, see description.

sphereprobe

Probe a pretend hemisphere.

threads

Creates hard realtime HAL threads.

threadtest

Component for testing thread behavior.

steptest

Used by StepConf to allow testing of acceleration and velocity values for an axis.

streamer

Stream file data into HAL in real time.

supply

Set output pins with values from parameters (deprecated).

1.12.1. Other Hardware interfaces (Realtime)

laserpower

Scales laser power output based upon velocity input power and distance to go

lcd

Stream HAL data to an LCD screen

matrix_kb

Convert integers to HAL pins. Optionally scan a matrix of I/O ports to create those integers.

gearchange

Select from one of two speed ranges.

orient

Provide a PID command input for orientation mode based on current spindle position, target angle and orient mode

spindle

Control a spindle with different acceleration and deceleration and optional gear change scaling

spindle_monitor

Spindle at-speed and underspeed detection

carousel

Orient a toolchanger carousel using various encoding schemes

hal_manualtoolchange

HAL non-realtime component to enable manual tool changes&.

thc

Torch Height Control using a Mesa THC card or any analog to velocity input

thcud

Torch Height Control Up/Down Input

ohmic

LinuxCNC HAL component that uses a Mesa THCAD (A/D card) for ohmic sensing

plasmac

A plasma cutter controller

2. Not categorized (auto generated from man pages)

5axisgui

Vismach Virtual Machine GUI

abs

Compute the absolute value and sign of the input signal

abs_s32

Compute the absolute value and sign of the input signal

abs_s64

Compute the absolute value and sign of the input signal

and2

Two-input AND gate

anglejog

Jog two axes (or joints) at an angle

at_pid

obsolete pid HAL component

axis-remote

AXIS Remote Interface

axis

AXIS LinuxCNC Graphical User Interface

axis

axistest

Used to allow testing of an axis. Used IN PnCconf.

bin2gray

convert a number to the gray-code representation

biquad

Biquad IIR filter

bitmerge

Converts individual bits into an unsigned-32

bitslice

Converts an unsigned-32 input into individual bits

bitwise

Computes various bitwise operations on the two input values

bldc

BLDC and AC-servo control component

blend

Perform linear interpolation between two values

carousel

Orient a toolchanger carousel using various encoding schemes

charge_pump

Create a square-wave for the (Aqcharge pump(Aq input of some controller boards

clarke2

Two input version of Clarke transform

clarke3

Clarke (3 phase to cartesian) transform

clarkeinv

Inverse Clarke transform

classicladder

realtime software plc based on ladder logic

comp

Two input comparator with hysteresis

conv_bit_float

Convert a value from bit to float

conv_bit_s32

Convert a value from bit to s32

conv_bit_s64

Convert a value from bit to s64

conv_bit_u32

Convert a value from bit to u32

conv_bit_u64

Convert a value from bit to u64

conv_float_s32

Convert a value from float to s32

conv_float_s64

Convert a value from float to s64

conv_float_u32

Convert a value from float to u32

conv_float_u64

Convert a value from float to u64

conv_s32_bit

Convert a value from s32 to bit

conv_s32_float

Convert a value from s32 to float

conv_s32_s64

Convert a value from s32 to s64

conv_s32_u32

Convert a value from s32 to u32

conv_s32_u64

Convert a value from s32 to u64

conv_s64_bit

Convert a value from s64 to bit

conv_s64_float

Convert a value from s64 to float

conv_s64_s32

Convert a value from s64 to s32

conv_s64_u32

Convert a value from s64 to u32

conv_s64_u64

Convert a value from s64 to u64

conv_u32_bit

Convert a value from u32 to bit

conv_u32_float

Convert a value from u32 to float

conv_u32_s32

Convert a value from u32 to s32

conv_u32_s64

Convert a value from u32 to s64

conv_u32_u64

Convert a value from u32 to u64

conv_u64_bit

Convert a value from u64 to bit

conv_u64_float

Convert a value from u64 to float

conv_u64_s32

Convert a value from u64 to s32

conv_u64_s64

Convert a value from u64 to s64

conv_u64_u32

Convert a value from u64 to u32

corexy_by_hal

CoreXY kinematics

counter

counts input pulses (DEPRECATED)

dbounce

alternative debounce component

ddt

Compute the derivative of the input function

deadzone

Return the center if within the threshold

debounce

filter noisy digital inputs

debuglevel

sets the debug level for the non-realtime part of LinuxCNC

demux

Select one of several output pins by integer and/or or individual bits.

demux_generic

routes a single input signal to one of multiple outputs

differential

kinematics for a differential transmission

div2

Quotient of two floating point inputs

edge

Edge detector

elbpcom

Communicate with Mesa ethernet cards

emccalib

Adjust ini tuning variables on the fly with save option

encoder

software counting of quadrature encoder signals

encoder_ratio

an electronic gear to synchronize two axes

enum

enumerate integer values into bits

eoffset_per_angle

Compute External Offset Per Angle

estop_latch

Software ESTOP latch

feedcomp

Multiply the input by the ratio of current velocity to the feed rate.

filter_kalman

Unidimensional Kalman filter, also known as linear quadratic estimation (LQE)

flipflop

D type flip-flop

gantry

LinuxCNC HAL component for driving multiple joints from a single axis.

gantrykins

Superseded by the general purpose (Aqtrivkins(Aq kinematics module.

gearchange

Select from one two speed ranges

genhexkins

genserkins

gentrivkins

Superseded by the general purpose (Aqtrivkins(Aq kinematics module.

gladevcp

Virtual Control Panel for LinuxCNC based on Glade, Gtk and HAL widgets

gladevcp

displays Virtual control Panels built with GTK / GLADE

gladevcp_demo

used by sample configs to deonstrate Glade Virtual_demo

gmoccapy

TOUCHY LinuxCNC Graphical User Interface

gray2bin

convert a gray-code input to binary

gremlin_view

G-code graphical preview

gs2_vfd

HAL non-realtime component for Automation Direct GS2 VFDs

gscreen

TOUCHY LinuxCNC Graphical User Interface

hal-histogram

plots the value of a HAL pin as a histogram

hal_bb_gpio

Driver for beaglebone GPIO pins

hal_input

control HAL pins with any Linux input device, including USB HID devices

hal_manualtoolchange

HAL non-realtime component to enable manual tool changes.

hal_parport

Realtime HAL component to communicate with one or more pc parallel ports.

halcmd

manipulate the LinuxCNC HAL from the command line

halcmd_twopass

short description

halcompile

Build, compile and install LinuxCNC HAL components

halmeter

observe HAL pins, signals, and parameters

halreport

creates a report on the status of the HAL

halrmt

remote-control interface for LinuxCNC

halrun

manipulate the LinuxCNC HAL from the command line

halsampler

sample data from HAL in realtime

halscope

short description

halshow

Show HAL parameters, pins and signals

halstreamer

stream file data into HAL in real-time

haltcl

manipulate the LinuxCNC HAL from the command line using a Tcl interpreter.

halui

observe HAL pins and command LinuxCNC through NML

hbmgui

Vismach Virtual Machine GUI

hexagui

Vismach Virtual Machine GUI

histobins

histogram bins utility for scripts/hal-histogram

hm2_7i43

LinuxCNC HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with HostMot2 firmware.

hm2_7i90

LinuxCNC HAL driver for the Mesa Electronics 7i90 EPP Anything IO board with HostMot2 firmware.

hm2_eth

LinuxCNC HAL driver for the Mesa Electronics Ethernet Anything IO boards, with HostMot2 firmware.

hm2_modbus

A hostmot2 driver that implements the Modbus protocol using the PktUART ports.

hm2_pci

LinuxCNC HAL driver for the Mesa Electronics PCI-based Anything IO boards, with HostMot2 firmware.

hm2_rpspi

This driver has been superseded by the hm2_spix driver. LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware.

hm2_spi

This driver has been superseded by the hm2_spix driver. LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware.

hm2_spix

LinuxCNC HAL driver for the Mesa Electronics Anything IO boards with SPI enabled HostMot2 firmware.

hostmot2

LinuxCNC HAL driver for the Mesa Electronics HostMot2 firmware.

hy_gt_vfd

HAL non-realtime component for Huanyang GT-series VFDs

hy_vfd

HAL non-realtime component for Huanyang VFDs

hypot

Three-input hypotenuse (Euclidean distance) calculator

ilowpass

Low-pass filter with integer inputs and outputs

image-to-gcode

converts bitmap images to G-code

inivalue

Query an INI file

inivar

Query an INI file

integ

Integrator with gain pin and windup limits

invert

Compute the inverse of the input signal

io

io, iocontrol - interacts with HAL or G-code in non-realtime

iocontrol

joint_axis_mapper

Translate faults from Joint to Axis

joyhandle

sets nonlinear joypad movements, deadbands and scales

kins

kins, genhexkins, genserkins, maxkins, pentakins, pumakins, rotatekins, scarakins, tripodkins, triv - kinematics definitions for LinuxCNC

knob2float

Convert counts (probably from an encoder) to a float value

laserpower

Scales laser power output based upon velocity input power and distance to go

latency-histogram

plot a histogram of machine latency

latency-plot

another way to view latency numbers

latency-test

test the realtime system latency

latencybins

comp utility for scripts/latency-histogram

latencybinstream

comp utility for scripts/latency-histogram.py

lcd

Stream HAL data to an LCD screen

led_dim

HAL component for dimming LEDs

limit1

Limit the output signal to fall between min and max

limit2

Limit the output signal to fall between min and max and limit its slew rate to less than maxv per second. When the signal is a position, this means that position and velocity are limited.

limit3

Follow input signal while obeying limits

limit_axis

Dynamic range based axis limits

lincurve

one-dimensional lookup table

lineardelta

Vismach Virtual Machine GUI

lineardeltakins

Kinematics for a linear delta robot

linuxcnc

LinuxCNC (The Enhanced Machine Controller)

linuxcnc_check_ini

LinuxCNC INI-file configuration checker

linuxcnc_info

collects information about the LinuxCNC version and the host

linuxcnc_module_helper

controls root access for system hardware

linuxcnc_var

retrieves LinuxCNC variables

linuxcnclcd

LinuxCNC Graphical User Interface for LCD character display

linuxcncmkdesktop

create a desktop icon for LinuxCNC

linuxcncrsh

text-mode interface for commanding LinuxCNC over the network

linuxcncsvr

Allows network access to LinuxCNC internals via NML

linuxcnctop

live LinuxCNC status description

logic

LinuxCNC HAL component providing configurable logic functions

lowpass

Low-pass filter

lut5

Arbitrary 5-input logic function based on a look-up table

maho600gui

Vismach Virtual Machine GUI

maj3

Compute the majority of 3 inputs

match8

8-bit binary match detector

matrix_kb

Convert integers to HAL pins. Optionally scan a matrix of I/O ports to create those integers.

matrixkins

Calibrated kinematics for 3-axis machines

max31855

Support for the MAX31855 Thermocouple-to-Digital converter using bitbanged spi

max5gui

Vismach Virtual Machine GUI

maxkins

mb2hal

HAL non-realtime component for Modbus

mdi

Send G-code commands from the terminal to the running LinuxCNC instance

mdro

manual only Digital Read Out (DRO)

melfagui

Vismach Virtual Machine GUI

mesa_7i65

Support for the Mesa 7i65 Octuple Servo Card

mesa_pktgyro_test

PktUART simple test with Microstrain 3DM-GX3-15 gyro

mesa_uart

An example component demonstrating how to access the Hostmot2 UART

mesambccc

Utility for compiling hm2_modbus command control description files

message

Display a message (deprecated, see pushmsg)

milltask

Non-realtime task controller for LinuxCNC

millturn

millturn, millturngui - Vismach Virtual Machine GUI

millturn

Switchable kinematics for a mill-turn machine

millturngui

minmax

Track the minimum and maximum values of the input to the outputs

mitsub_vfd

HAL non-realtime component for Mitsubishi A500 F500 E500 A500 D700 E700 F700-series VFDs (others may work) This uses the COMPUTER LINK protocol not MODBUS. The connection is made through the PU connector.

modcompile

Utility for compiling Modbus drivers

monitor-xhc-hb04

monitors the XHC-HB04 pendant and warns of disconnection

motion-logger

log motion commands sent from LinuxCNC*(Aqs Task module

motion

motion, axis - accepts NML commands, interacts with HAL in realtime

moveoff

Component for HAL-only offsets

moveoff_gui

a GUI for the moveoff component

mqtt-publisher

send HAL pin data to MQTT broker periodically

mult2

Product of two inputs

multiclick

Single-, double-, triple-, and quadruple-click detector

multiswitch

This component toggles between a specified number of output bits.

mux16

Select from one of sixteen input values

mux2

Select from one of two input values

mux4

Select from one of four input values

mux8

Select from one of eight input values

mux_generic

select one from several inputs and forwards it to a single output

near

Determine whether two values are roughly equal.

ngcgui

a framework for conversational G-code generation on the controller

not

Inverter

offset

Adds an offset to an input, and subtracts it from the feedback value.

ohmic

LinuxCNC HAL component that uses a Mesa THCAD for ohmic sensing

oneshot

one-shot pulse generator

opto_ac5

Realtime driver for opto22 PCI-AC5 cards

or2

Two-input OR gate

orient

Provide a PID command input for orientation mode based on current spindle position, target angle and orient mode

output_buffer

Feed through multiple bits when enable pin is set

panelui

interface buttons to LinuxCNC or HAL

pentakins

pi500_vfd

Powtran PI500 Modbus driver

pid

proportional/integral/derivative controller with automatic tuning support

plasmac

A plasma cutter controller

pmx485-test

Modbus communications testing with a Powermax Plasma Cutter

pmx485

Modbus communications with a Powermax Plasma Cutter.

pncconf

configuration wizard for Mesa cards

puma560gui

Vismach Virtual Machine GUI

pumagui

Vismach Virtual Machine GUI

pumakins

pushmsg

Push configurable RT messages to non-RT logging on pin change

pwmgen

software PWM/PDM generation

pyngcgui

Python implementation of NGCGUI

pyui

utility for panelui

pyvcp

Virtual Control Panel for LinuxCNC

pyvcp_demo

Python Virtual Control Panel demonstration component

qtplasmac-materials

Create a plasma materials file.

qtplasmac_gcode

Python script shipping with Plasmac, a Plasma cutting system.

qtvcp

Qt-based virtual control panels

raster

Outputs laser power based upon pre programmed rastering data

reset

Resets an IO signal

rosekins

Kinematics for a rose engine

rotarydelta

Vismach Virtual Machine GUI

rotatekins

rs274

standalone G-code interpreter

rtapi_app

creates a simulated real time environment

safety_latch

latch for error signals

sample_hold

Sample and Hold

sampler

sample data from HAL in real time

scale

LinuxCNC HAL component that applies a scale and offset to its input

scaled_s32_sums

Sum of four inputs (each with a scale)

scaragui

Vismach Virtual Machine GUI

scarakins

schedrmt

telnet based scheduler for LinuxCNC

scorbot-er-3

to link the Intellitek Scorbot educational robot to LinuxCNC

select8

8-bit binary match detector

sendkeys

send input events based on pins or scancodes from HAL

serport

Hardware driver for the digital I/O bits of the 8250 and 16550 serial port.

setsserial

a utility for setting Smart Serial NVRAM parameters.

setup_designer

A script to configure the system for use of Qt Designer

shuttle

control HAL pins with the ShuttleXpress, ShuttlePRO, and ShuttlePRO2 device made by Contour Design

siggen

signal generator

sim-torch

A simulated plasma torch

sim_axis_hardware

A component to simulate home and limit switches

sim_encoder

simulated quadrature encoder

sim_home_switch

Home switch simulator

sim_matrix_kb

convert HAL pin inputs to keycodes

sim_parport

A component to simulate the pins of the hal_parport component

sim_pin

GUI for displaying and setting one or more HAL inputs

sim_spindle

Simulated spindle with index pulse

simple_tp

This component is a single axis simple trajectory planner, same as used for jogging in LinuxCNC.

simulate_probe

simulate a probe input

sphereprobe

Probe a pretend hemisphere

spindle

Control a spindle with different acceleration and deceleration and optional gear change scaling

spindle_monitor

spindle at-speed and underspeed detection

sserial

Smart Serial LinuxCNC HAL driver for the Mesa Electronics HostMot2 Smart-Serial remote cards

stepconf

A configuration wizard for parallel-port based machines.

stepgen

software step pulse generation

steptest

Used by Stepconf to allow testing of acceleration and velocity values for an axis.

streamer

stream file data into HAL in real time

sum2

Sum of two inputs (each with a gain) and an offset

supply

set output pins with values from parameters (obsolete)

svd-ps_vfd

HAL non-realtime component for SVD-P(S) VFDs

teach-in

jog the machine to a position, and record the state

thc

Torch Height Control

thcud

Torch Height Control Up/Down Input

thermistor

compute temperature indicated by a thermistor

threads

creates hard realtime HAL threads

threadtest

LinuxCNC HAL component for testing thread behavior

time

Time on in Hours, Minutes, Seconds

timedelay

The equivalent of a time-delay relay

timedelta

LinuxCNC HAL component that measures thread scheduling timing behavior

tof

IEC TOF timer - delay falling edge on a signal

toggle

(Aqpush-on, push-off(Aq from momentary pushbuttons

toggle2nist

toggle button to nist logic

ton

IEC TON timer - delay rising edge on a signal

tool_mmap_read

A component of the tool database system (an alternative to the classic tooltable)

tool_watch

A component of the tool database system (an alternative to the classic tooltable)

tooledit

tool table editor

touchy

TOUCHY LinuxCNC Graphical User Interface

tp

IEC TP timer - generate a high pulse of defined duration on rising edge

tpcomp

Trajectory Planning (tp) module skeleton

tripodkins

tristate_bit

Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics

tristate_float

Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics

trivkins

update_ini

converts 2.7 format INI files to 2.8 format

updown

Counts up or down, with optional limits and wraparound behavior

userkins

Template for user-built kinematics

vfdb_vfd

HAL non-realtime component for Delta VFD-B Variable Frequency Drives

vfs11_vfd

HAL non-realtime component for Toshiba-Schneider VF-S11 Variable Frequency Drives

watchdog

monitor multiple inputs for a "heartbeat"

wcomp

Window comparator

weighted_sum

convert a group of bits to an integer

wj200_vfd

Hitachi wj200 modbus driver

xhc-hb04-accels

Obsolete script for jogging wheel

xhc-hb04

HAL non-realtime component for the xhc-hb04 pendant.

xhc-whb04b-6

Non-realtime jog dial HAL component for the wireless XHC WHB04B-6 USB device.

xhc_hb04_util

xhc-hb04 convenience utility

xor2

Two-input XOR (exclusive OR) gate

xyzab-tdr-gui

Vismach Virtual Machine GUI

xyzab_tdr_kins

Switchable kinematics for 5 axis machine with rotary table A and B

xyzac-trt-gui

Vismach Virtual Machine GUI

xyzacb_trsrn

Switchable kinematics for 6 axis machine with a rotary table C, rotary spindle B and nutating spindle A

xyzbc-trt-gui

Vismach Virtual Machine GUI

xyzbca_trsrn

Switchable kinematics for 6 axis machine with a rotary table B, rotary spindle C and nutating spindle A

hal_ppmc

pluto_servo

pluto_step

5axisgui

abs

abs_s32

abs_s64

and2

anglejog

at_pid

axis

axis-remote

axistest

bin2gray

biquad

bitmerge

bitslice

bitwise

bldc

blend

carousel

charge_pump

clarke2

clarke3

clarkeinv

classicladder

comp

conv_bit_float

conv_bit_s32

conv_bit_s64

conv_bit_u32

conv_bit_u64

conv_float_s32

conv_float_s64

conv_float_u32

conv_float_u64

conv_s32_bit

conv_s32_float

conv_s32_s64

conv_s32_u32

conv_s32_u64

conv_s64_bit

conv_s64_float

conv_s64_s32

conv_s64_u32

conv_s64_u64

conv_u32_bit

conv_u32_float

conv_u32_s32

conv_u32_s64

conv_u32_u64

conv_u64_bit

conv_u64_float

conv_u64_s32

conv_u64_s64

conv_u64_u32

corexy_by_hal

counter

dbounce

ddt

deadzone

debounce

debuglevel

demux

demux_generic

differential

div2

edge

elbpcom

emccalib

encoder

encoder_ratio

enum

eoffset_per_angle

estop_latch

feedcomp

filter_kalman

flipflop

gantry

gantrykins

gearchange

genhexkins

genserkins

gentrivkins

gladevcp

gladevcp_demo

gmoccapy

gray2bin

gremlin_view

gs2_vfd

gscreen

hal-histogram

hal_bb_gpio

hal_input

hal_manualtoolchange

hal_parport

halcmd

halcmd_twopass

halcompile

halmeter

halreport

halrmt

halrun

halsampler

halscope

halshow

halstreamer

haltcl

halui

hbmgui

hexagui

histobins

hm2_7i43

hm2_7i90

hm2_eth

hm2_pci

hm2_rpspi

hm2_spi

homecomp

hostmot2

hy_gt_vfd

hy_vfd

hypot

ilowpass

image-to-gcode

inivar

integ

invert

io

iocontrol

joyhandle

kins

knob2float

laserpower

latency-histogram

latency-plot

latency-test

latencybins

lcd

led_dim

limit1

limit2

limit3

limit_axis

lincurve

lineardelta

lineardeltakins

linuxcnc

linuxcnc_info

linuxcnc_module_helper

linuxcnc_var

linuxcnclcd

linuxcncmkdesktop

linuxcncrsh

linuxcncsvr

linuxcnctop

logic

lowpass

lut5

maho600gui

maj3

match8

matrix_kb

matrixkins

max31855

max5gui

maxkins

mb2hal

mdi

mdro

melfagui

mesa_7i65

mesa_pktgyro_test

mesa_uart

message

milltask

millturn

minmax

mitsub_vfd

modcompile

monitor-xhc-hb04

motion

motion-logger

moveoff

moveoff_gui

mult2

multiclick

multiswitch

mux16

mux2

mux4

mux8

mux_generic

near

ngcgui

not

offset

ohmic

oneshot

opto_ac5

or2

orient

output_buffer

panelui

pentakins

pi500_vfd

pid

plasmac

pmx485

pmx485-test

pncconf

puma560gui

pumagui

pumakins

pwmgen

pyngcgui

pyui

pyvcp

pyvcp_demo

qtvcp

raster

reset

rosekins

rotarydelta

rotatekins

rs274

rtapi_app

safety_latch

sample_hold

sampler

scale

scaled_s32_sums

scaragui

scarakins

schedrmt

select8

serport

setsserial

setup_designer

shuttle

siggen

sim-torch

sim_axis_hardware

sim_encoder

sim_home_switch

sim_matrix_kb

sim_parport

sim_pin

sim_spindle

simple_tp

simulate_probe

sphereprobe

spindle

spindle_monitor

sserial

stepconf

stepgen

steptest

streamer

sum2

supply

svd-ps_vfd

teach-in

thc

thcud

threads

threadtest

time

timedelay

timedelta

tof

toggle

toggle2nist

ton

tool_mmap_read

tool_watch

tooledit

touchy

tp

tpcomp

tripodkins

tristate_bit

tristate_float

update_ini

updown

userkins

vfdb_vfd

vfs11_vfd

watchdog

wcomp

weighted_sum

wj200_vfd

xhc-hb04

xhc-hb04-accels

xhc-whb04b-6

xhc_hb04_util

xor2

xyzab-tdr-gui

xyzab_tdr_kins

xyzac-trt-gui

xyzacb_trsrn

xyzbc-trt-gui

xyzbca_trsrn

4. HAL API calls

hal_add_funct_to_thread.3
hal_bit_t.3
hal_create_thread.3
hal_del_funct_from_thread.3
hal_exit.3
hal_export_funct.3
hal_export_functf.3
hal_float_t.3
hal_get_lock.3
hal_init.3
hal_link.3
hal_malloc.3
hal_param_bit_new.3
hal_param_bit_newf.3
hal_param_float_new.3
hal_param_float_newf.3
hal_param_new.3
hal_param_s32_new.3
hal_param_s32_newf.3
hal_param_u32_new.3
hal_param_u32_newf.3
hal_parport.3
hal_pin_bit_new.3
hal_pin_bit_newf.3
hal_pin_float_new.3
hal_pin_float_newf.3
hal_pin_new.3
hal_pin_s32_new.3
hal_pin_s32_newf.3
hal_pin_u32_new.3
hal_pin_u32_newf.3
hal_ready.3
hal_s32_t.3
hal_set_constructor.3
hal_set_lock.3
hal_signal_delete.3
hal_signal_new.3
hal_start_threads.3
hal_type_t.3
hal_u32_t.3
hal_unlink.3
hal.3

5. RTAPI calls

EXPORT_FUNCTION.3
MODULE_AUTHOR.3
MODULE_DESCRIPTION.3
MODULE_LICENSE.3
RTAPI_MP_ARRAY_INT.3
RTAPI_MP_ARRAY_LONG.3
RTAPI_MP_ARRAY_STRING.3
RTAPI_MP_INT.3
RTAPI_MP_LONG.3
RTAPI_MP_STRING.3
rtapi.3
rtapi_app_exit.3
rtapi_app_main.3
rtapi_clock_set_period.3
rtapi_delay.3
rtapi_delay_max.3
rtapi_exit.3
rtapi_get_clocks.3
rtapi_get_msg_level.3
rtapi_get_time.3
rtapi_inb.3
rtapi_init.3
rtapi_module_param.3
RTAPI_MP_ARRAY_INT.3
RTAPI_MP_ARRAY_LONG.3
RTAPI_MP_ARRAY_STRING.3
RTAPI_MP_INT.3
RTAPI_MP_LONG.3
RTAPI_MP_STRING.3
rtapi_mutex.3
rtapi_outb.3
rtapi_print.3
rtapi_prio.3
rtapi_prio_highest.3
rtapi_prio_lowest.3
rtapi_prio_next_higher.3
rtapi_prio_next_lower.3
rtapi_region.3
rtapi_release_region.3
rtapi_request_region.3
rtapi_set_msg_level.3
rtapi_shmem.3
rtapi_shmem_delete.3
rtapi_shmem_getptr.3
rtapi_shmem_new.3
rtapi_snprintf.3
rtapi_task_delete.3
rtapi_task_new.3
rtapi_task_pause.3
rtapi_task_resume.3
rtapi_task_start.3
rtapi_task_wait.3

1. When the input is a position, this means that the position is limited.
2. When the input is a position, this means that position and velocity are limited.
3. When the input is a position, this means that position, velocity, and acceleration are limited.