1. Components
< explanation of the difference between a real-time and a userspace component >
Most of the commands in the following list have 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 to get additional information. To view the information in the man page, in a terminal window type:
man axis (or perhaps 'man <n> axis' if your system requires it. n = 1 for userspace and 9 for realtime components)
Note
|
See also the Man Pages section of the docs main page or the directory listing. |
1.1. User Interfaces (Userspace)
1.1.1. Machine Control
AXIS LinuxCNC (The Enhanced Machine Controller) Graphical User Interface. |
|||
AXIS Remote Interface. |
|||
TOUCHY LinuxCNC Graphical User Interface |
|||
TOUCHY LinuxCNC Graphical User Interface |
|||
a framework for conversational G-code generation on the controller |
|||
python implementation of ngcgui |
|||
axis - TOUCHY LinuxCNC Graphical User Interface |
|||
QT based virtual control panels |
1.1.2. Virtual Control Panels (VCP)
Virtual Control Panel for LinuxCNC based on Glade, Gtk and HAL widgets. |
|||
Displays Virtual Control Panels built with GTK/Glade. |
|||
gladevcp - used by sample configs to deonstrate Glade Virtual_demo |
|||
G-code graphical preview |
|||
a gui for the moveoff component |
|||
utility for panelui |
|||
Virtual Control Panel for LinuxCNC. |
|||
Python Virtual Control Panel demonstration component |
1.1.3. Vismach Virtual Machines
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
hexagui - Vismach Virtual Machine GUI |
|||
hexagui - Vismach Virtual Machine GUI |
|||
short description |
|||
puma560agui - Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
|||
Vismach Virtual Machine GUI |
1.2. Motion (Userspace)
Observe HAL pins and command LinuxCNC through NML. |
|||
iocontrol - interacts with HAL or G-code in userspace |
|||
interacts with HAL or G-code in userspace |
|||
interacts with HAL or G-code in userspace |
|||
Userspace task controller for LinuxCNC |
|||
Accepts NML motion commands, interacts with HAL in realtime. |
1.3. Hardware Drivers
1.3.1. VFD & Communication Interfaces (Userspace)
Communicate with Mesa ethernet cards |
|||
HAL userspace component for Automation Direct GS2 VFD’s |
|||
Realtime HAL component to communicate with one or more pc parallel ports. |
|||
HAL userspace component for Huanyang GT-series VFDs |
|||
HAL userspace component for Huanyang VFDs |
|||
MB2HAL is a generic userspace HAL component to communicate with one or more Modbus devices. Modbus RTU and Modbus TCP is supported. |
|||
HAL userspace component for Mitsubishi A500 F500 E500 A500 D700 E700 F700-series VFDs (others may work) |
|||
monitors the XHC-HB04 pendant and warns of disconnection |
|||
Powtran PI500 modbus driver |
|||
Modbus communications with a Powermax Plasma Cutter. |
|||
Modbus communications testing with a Powermax Plasma Cutter |
|||
control HAL pins with the ShuttleXpress, ShuttlePRO, and ShuttlePRO2 device made by Contour Design |
|||
HAL userspace component for SVD-P(S) VFDs |
|||
HAL userspace component for Delta VFD-B Variable Frequency Drives |
|||
HAL userspace component for Toshiba-Schneider VF-S11 Variable Frequency Drives |
|||
Hitachi wj200 modbus driver |
|||
User-space HAL component for the xhc-hb04 pendant. |
|||
Obsolete script for jogging wheel |
|||
Userspace 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. |
||
Driver for beaglebone GPIO pins |
|||
Mesa Electronics driver for the 7i43 EPP Anything IO board with HostMot2. (See the man page for more information) |
|||
LinuxCNC HAL driver for the Mesa Electronics 7i90 EPP Anything IO board with HostMot2 firmware. |
|||
LinuxCNC HAL driver for the Mesa Electronics Ethernet Anything IO boards, with HostMot2 firmware. |
|||
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) |
|||
LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware. |
|||
LinuxCNC HAL driver for the Mesa Electronics SPI Anything IO boards, with HostMot2 firmware. |
|||
Mesa Electronics driver for the HostMot2 firmware. |
|||
Support for the MAX31855 Thermocouple-to-Digital converter using bitbanged spi |
|||
Mesa Electronics driver for the 7i65 eight-axis servo card. (See the man page for more information) |
|||
PktUART simple test with Microstrain 3DM-GX3-15 gyro |
|||
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. |
||
Hardware driver for the digital I/O bits of the 8250 and 16550 serial port. |
|||
hostmot2 - Smart Serial LinuxCNC HAL driver for the Mesa Electronics HostMot2 Smart-Serial remote cards |
|||
Torch Height Control using a Mesa THC card or any analog to velocity input |
1.5. Utilities (Userspace)
plots the value of a HAL pin as a histogram |
|||
Build, compile and install LinuxCNC HAL components |
|||
Observe HAL pins, signals, and parameters. |
|||
Software oscilloscope for viewing real time waveforms of HAL pins and signals |
|||
Show HAL parameters, pins and signals |
|||
converts bitmap images to G-code |
|||
plot a histogram of machine latency |
|||
another way to view latency numbers |
|||
test the realtime system latency |
|||
configuration wizard for Mesa cards |
|||
a utility for setting Smart Serial NVRAM parameters. NOTE: This rather clunky utility is no longer needed except for flashing new smart-serial remote firmware. Smart-serial remote parameters can now be set in the HAL file in the normal way. |
|||
gui for displaying and setting one or more Hal inputs |
|||
A configuration wizard for parallel-port based machines. |
1.6. Signal processing (Realtime)
1.6.1. Logic and Bitwise
Two-input AND gate. For out to be true both inputs must be true. (and2) |
|||
Computes various bitwise operations on the two input values |
|||
Filter noisy digital inputs. Details. |
|||
Filter noisy digital inputs. Details. Description |
|||
Select one of several output pins by integer and/or or individual bits. |
|||
Edge detector. |
|||
ESTOP latch. |
|||
D type flip-flop. |
|||
General logic function component. |
|||
A 5-input logic function based on a look-up table. Description |
|||
8-bit binary match detector. |
|||
Single-, double-, triple-, and quadruple-click detector |
|||
This component toggles between a specified number of output bits |
|||
choose one from several input values |
|||
Inverter |
|||
One-shot pulse generator. |
|||
Two-input OR gate |
|||
8-bit binary match detector. |
|||
IEC TOF timer - delay falling edge on a signal |
|||
Push-on, push-off from momentary pushbuttons. |
|||
Toggle button to nist logic. |
|||
IEC TON timer - delay rising edge on a signal |
|||
IEC TP timer - generate a high pulse of defined duration on rising edge |
|||
Place a signal on an I/O pin only when enabled, similar to a tristate buffer in electronics. |
|||
Place a signal on an I/O pin only when enabled, similar to a tristatebuffer in electronics. |
|||
Two-input XOR (exclusive OR) gate |
|||
xhc-hb04 convenience utility |
1.6.2. Arithmetic and float
Compute the absolute value and sign of the input signal |
|||
Compute the absolute value and sign of the input signal. |
|||
Biquad IIR filter |
|||
Perform linear interpolation between two values. |
|||
Two input comparator with hysteresis. |
|||
Use a parameter to set the value of a pin. |
|||
Counts input pulses (deprecated). Use the encoder component. |
|||
Compute the derivative of the input function. |
|||
Return the center if within the threshold. |
|||
Three-input hypotenuse (Euclidean distance) calculator. |
|||
Low-pass filter with integer inputs and outputs |
|||
Integrator. |
|||
Compute the inverse of the input signal. |
|||
Convert counts (probably from an encoder) to a float value. |
|||
Low-pass filter |
|||
Limit the output signal to fall between min and max. |
|||
Limit the output signal to fall between min and max. Limit its slew rate to less than maxv per second.
|
|||
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. |
|||
Compute the majority of 3 inputs. |
|||
Track the minimum and maximum values of the input to the outputs. |
|||
Product of two inputs. |
|||
Select from one of sixteen input values. |
|||
Select from one of two input values. |
|||
Select from one of four input values. |
|||
Select from one of eight input values. |
|||
Determine whether two values are roughly equal. |
|||
Adds an offset to an input, and subtracts it from the feedback value. |
|||
Sample and Hold. |
|||
Applies a scale and offset to its input. |
|||
Sum of two inputs (each with a gain) and an offset. |
|||
The equivalent of a time-delay relay. |
|||
Component that measures thread scheduling timing behavior. |
|||
Counts up or down, with optional limits and wraparound behavior. |
|||
Window comparator. |
|||
Convert a group of bits to an integer. |
1.6.3. Type conversion
Convert a number to the gray-code representation |
|||
Convert an unsigned-32 input into individual bits |
|||
Convert a value from bit to float |
|||
Convert a value from bit to s32. |
|||
Convert a value from bit to u32. |
|||
Convert a value from float to s32. |
|||
Convert a value from float to u32. |
|||
Convert a value from s32 to bit. |
|||
Convert a value from s32 to float. |
|||
Convert a value from s32 to u32. |
|||
Convert a value from u32 to bit. |
|||
Convert a value from u32 to float. |
|||
Convert a value from u32 to s32. |
|||
Convert a gray-code input to binary |
1.7. Kinematics (Realtime)
CoreXY kinematics |
|||
kinematics for a differential transmission |
|||
LinuxCNC HAL component for driving multiple joints from a single axis |
|||
A kinematics module that maps one axis to multiple joints. |
|||
Gives six degrees of freedom in position and orientation (XYZABC). The location of the motors is defined at compile time. |
|||
Kinematics that can model a general serial-link manipulator with up to 6 angular joints. |
|||
See trivkins |
|||
kinematics definitions for LinuxCNC. |
|||
Kinematics for a linear delta robot |
|||
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. The source file, maxkins.c, may be a useful starting point for other 5-axis systems. |
|||
Switchable kinematics for a mill-turn machine |
|||
Kinematics for PUMA-style robots. |
|||
Kinematics for a rose engine |
|||
The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. |
|||
Kinematics for SCARA-type robots. |
|||
The joints represent the distance of the controlled point from three predefined locations (the motors), giving three degrees of freedom in position (XYZ). |
|||
There is a 1:1 correspondence between joints and axes. Most standard milling machines and lathes use the trivial kinematics module. |
|||
Template for user-built kinematics |
1.8. Motor control (Realtime)
Proportional/integral/derivative controller with auto tuning. |
|||
BLDC and AC-servo control component |
|||
Two input version of Clarke transform. |
|||
Clarke (3 phase to cartesian) transform. |
|||
Inverse Clarke transform. |
|||
Software counting of quadrature encoder signals. Description. |
|||
Proportional/integral/derivative controller. Description |
|||
Software PWM/PDM generation. Description |
|||
Software step pulse generation. Description. |
1.9. Other (Realtime)
Build, compile and install LinuxCNC HAL components. |
|||
Realtime software PLC based on ladder logic. See ClassicLadder chapter for more information. |
|||
Creates hard realtime HAL threads. |
|||
Creates a square-wave for the charge pump input of some controller boards. The Charge Pump should be added to the base thread function. When enabled the output is on for one period and off for one period. To calculate the frequency of the output 1/(period time in seconds x 2) = hz. For example if you have a base period of 100,000ns that is 0.0001 seconds and the formula would be 1/(0.0001 x 2) = 5,000 hz or 5 Khz. |
|||
An electronic gear to synchronize two axes. |
|||
Multiply the input by the ratio of current velocity to the feed rate. |
|||
Select from one of two speed ranges. |
|||
Sets nonlinear joypad movements, deadbands and scales. |
|||
Sample data from HAL in real time. |
|||
Signal generator. Description. |
|||
Simulated quadrature encoder. Description. |
|||
Probe a pretend hemisphere. |
|||
Used by Stepconf to allow testing of acceleration and velocity values for an axis. |
|||
Stream file data into HAL in real time. |
|||
Set output pins with values from parameters (deprecated). |
|||
Component for testing thread behavior. |
|||
Accumulated run-time timer counts HH:MM:SS of active input. |
|||
Monitor one to thirty-two inputs for a heartbeat. |
1.10. Not categorized (auto generated from man pages)
Used to allow testing of an axis. Used IN PNCconf |
|||
Orient a toolchanger carousel using various encoding schemes |
|||
sets the debug level for the userspace part of LinuxCNC |
|||
Compute External Offset Per Angle |
|||
Unidimensional Kalman filter, also known as linear quadratic estimation (LQE) |
|||
displays Virtual control Panels built with GTK / GLADE |
|||
control HAL pins with any Linux input device, including USB HID devices |
|||
HAL userspace component to enable manual tool changes. |
|||
manipulate the LinuxCNC HAL from the command line |
|||
short description |
|||
creates a report on the status of the HAL |
|||
short description |
|||
manipulate the LinuxCNC HAL from the command line |
|||
sample data from HAL in realtime |
|||
stream file data into HAL in real time |
|||
manipulate the LinuxCNC HAL from the command line using a tcl interpreter. |
|||
histogram bins utility for scripts/hal-histogram |
|||
homing module template |
|||
Query an INI file |
|||
comp utility for scripts/latency-histogram |
|||
Stream HAL data to an LCD screen |
|||
one-dimensional lookup table |
|||
LinuxCNC (The Enhanced Machine Controller) |
|||
short description |
|||
short description |
|||
short description |
|||
LinuxCNC Graphical User Interface for LCD character display |
|||
short description |
|||
text-mode interface for commanding LinuxCNC over the network |
|||
short description |
|||
short description |
|||
Convert integers to HAL pins. Optionally scan a matrix of IO ports to create those integers. |
|||
Send G-code commands from the terminal to the running LinuxCNC instance |
|||
Display a message |
|||
short description |
|||
Component for Hal-only offsets |
|||
LinuxCNC HAL component that uses a Mesa THCAD for Ohmic sensing |
|||
Provide a PID command input for orientation mode based on current spindle position, target angle and orient mode |
|||
A plasma cutter controller |
|||
Convert plasma parameters. |
|||
Create a plasma materials file. |
|||
Migrate a PlasmaC configuration. |
|||
Switch a QtPlasmaC installation type. |
|||
standalone G-code interpreter |
|||
short description |
|||
telnet based scheduler for LinuxCNC |
|||
to link the Intellitek Scorbot educational robot to LinuxCNC |
|||
send input events based on pins or scancodes from HAL |
|||
A simulated plasma torch |
|||
A component to simulate home and limit switches |
|||
Home switch simulator |
|||
convert HAL pin inputs to keycodes |
|||
A component to simulate the pins of the hal_parport component |
|||
Simulated spindle with index pulse |
|||
This component is a single axis simple trajectory planner, same as used for jogging in linuxcnc. |
|||
simulate a probe input |
|||
Control a spindle with different acceleration and deceleration and optional gear change scaling |
|||
spindle at-speed and underspeed detection |
|||
jog the machine to a position, and record the state |
|||
Torch Height Control Up/Down Input |
|||
compute temperature indicated by a thermistor |
|||
tool table editor |
|||
Trajectory Planning (tp) module skeleton |
|||
A script to convert 2.7 format .ini files to 2.8 format |
1.11. Without man page or broken link (auto generated from component list)
hal_ppmc |
|||
pluto_servo |
|||
pluto_step |
2. HAL API calls
hal_add_funct_to_thread.3hal
hal_bit_t.3hal
hal_create_thread.3hal
hal_del_funct_from_thread.3hal
hal_exit.3hal
hal_export_funct.3hal
hal_float_t.3hal
hal_get_lock.3hal
hal_init.3hal
hal_link.3hal
hal_malloc.3hal
hal_param_bit_new.3hal
hal_param_bit_newf.3hal
hal_param_float_new.3hal
hal_param_float_newf.3hal
hal_param_new.3hal
hal_param_s32_new.3hal
hal_param_s32_newf.3hal
hal_param_u32_new.3hal
hal_param_u32_newf.3hal
hal_parport.3hal
hal_pin_bit_new.3hal
hal_pin_bit_newf.3hal
hal_pin_float_new.3hal
hal_pin_float_newf.3hal
hal_pin_new.3hal
hal_pin_s32_new.3hal
hal_pin_s32_newf.3hal
hal_pin_u32_new.3hal
hal_pin_u32_newf.3hal
hal_ready.3hal
hal_s32_t.3hal
hal_set_constructor.3hal
hal_set_lock.3hal
hal_signal_delete.3hal
hal_signal_new.3hal
hal_start_threads.3hal
hal_type_t.3hal
hal_u32_t.3hal
hal_unlink.3hal
intro.3hal
undocumented.3hal
3. RTAPI calls
EXPORT_FUNCTION.3rtapi
MODULE_AUTHOR.3rtapi
MODULE_DESCRIPTION.3rtapi
MODULE_LICENSE.3rtapi
RTAPI_MP_ARRAY_INT.3rtapi
RTAPI_MP_ARRAY_LONG.3rtapi
RTAPI_MP_ARRAY_STRING.3rtapi
RTAPI_MP_INT.3rtapi
RTAPI_MP_LONG.3rtapi
RTAPI_MP_STRING.3rtapi
intro.3rtapi
rtapi_app_exit.3rtapi
rtapi_app_main.3rtapi
rtapi_clock_set_period.3rtapi
rtapi_delay.3rtapi
rtapi_delay_max.3rtapi
rtapi_exit.3rtapi
rtapi_get_clocks.3rtapi
rtapi_get_msg_level.3rtapi
rtapi_get_time.3rtapi
rtapi_inb.3rtapi
rtapi_init.3rtapi
rtapi_module_param.3rtapi
RTAPI_MP_ARRAY_INT.3rtapi
RTAPI_MP_ARRAY_LONG.3rtapi
RTAPI_MP_ARRAY_STRING.3rtapi
RTAPI_MP_INT.3rtapi
RTAPI_MP_LONG.3rtapi
RTAPI_MP_STRING.3rtapi
rtapi_mutex.3rtapi
rtapi_outb.3rtapi
rtapi_print.3rtap
rtapi_prio.3rtapi
rtapi_prio_highest.3rtapi
rtapi_prio_lowest.3rtapi
rtapi_prio_next_higher.3rtapi
rtapi_prio_next_lower.3rtapi
rtapi_region.3rtapi
rtapi_release_region.3rtapi
rtapi_request_region.3rtapi
rtapi_set_msg_level.3rtapi
rtapi_shmem.3rtapi
rtapi_shmem_delete.3rtapi
rtapi_shmem_getptr.3rtapi
rtapi_shmem_new.3rtapi
rtapi_snprintf.3rtapi
rtapi_task_delete.3rtpi
rtapi_task_new.3rtapi
rtapi_task_pause.3rtapi
rtapi_task_resume.3rtapi
rtapi_task_start.3rtapi
rtapi_task_wait.3rtapi