[Home]History of LinuxCNC Supported Hardware

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Revision 37 . . March 29, 2024 11:30 pm by Pippin88
Revision 36 . . March 29, 2024 11:09 pm by Pippin88
Revision 35 . . September 12, 2022 11:53 pm by Bari [*comment about LPT card test results]
  

Difference (from prior major revision) (author diff)

Changed: 1c1

Linuxcnc Hardware



LinuxCNC Hardware




Changed: 3,4c3,4

Hardware to run the LinuxCNC software



A computer is required to run LinuxCNC itself.

Hardware to run the LinuxCNC software



A computer is required to run LinuxCNC itself.

Changed: 6c6
Minimum computer requirements can be found in the LinuxCNC docs: http://linuxcnc.org/docs/stable/html/getting-started/system-requirements.html
Minimum computer requirements can be found in the LinuxCNC docs: http://LinuxCNC.org/docs/stable/html/getting-started/system-requirements.html

Changed: 13c13
There are multiple different ways to interface between LinuxCNC controller software, and CNC hardware (such as stepper / servo drivers, limit switches, inputs and outputs etc.)
There are multiple different ways to interface between LinuxCNC controller software, and CNC hardware (such as stepper / servo drivers, limit switches, inputs and outputs etc.)

Changed: 18c18
* Ethercat
* EtherCat

Changed: 23c23
A mix of different interfaces can be used. For example, a combination of ethercat for servo drives, and parallel port for additional General Purpose Inputs / Outputs (GPIO)
A mix of different interfaces can be used. For example, a combination of EtherCat for servo drives, and parallel port for additional General Purpose Inputs / Outputs (GPIO)

Changed: 28c28
Using onboard motherboard parallel port, or a PCI/PCIe? parallel port card.
Using onboard motherboard parallel port, or a PCI / PCIe parallel port card.

Changed: 31c31
Realtime (time critical) tasks such as step generation are done in software on the LinuxCNC host - this means the parallel port interface is much more sensitive to the LinuxCNC computer's latency.
Realtime (time critical) tasks such as step generation are done in software on the LinuxCNC host - this means the parallel port interface is much more sensitive to the LinuxCNC computer's latency.

Changed: 38,40c38,40
* Sensitive to the LinuxCNC computer's latency
* Limited inputs/outputs
* Some PCI/PCIe? parallel port cards do not work well or do not properly support the required EPP mode
* Sensitive to the LinuxCNC computer's latency
* Limited inputs / outputs
* Some PCI / PCIe parallel port cards do not work well or do not properly support the required EPP mode

Changed: 43c43

Parallel Port FPGA Communication



Parallel Port to FPGA / MCU Communication




Changed: 47c47
:Mesa use Field-programmable gate array (FPGA) interfaced via parallel port - e.g. 7i43
:Mesa have Field-programmable gate array (FPGA) cards interfaced via parallel port - e.g. 7i43

Changed: 56,57c56,57

Mesa Ethernet



:Mesa cards with a Field-programmable gate array (FPGA), interfaced to LinuxCNC computer via Ethernet. Time critical (realtime) tasks are performed on the FPGA card.

Mesa (Ethernet)



:Mesa cards with a Field-programmable gate array (FPGA), interfaced to LinuxCNC computer via Ethernet. Time critical (realtime) tasks are performed on the FPGA card.

Changed: 63,64c63,64

Remora Ethernet



:Realtime requirements are offloaded onto a controller board. Multiple differnet controller boards are supported - see Remora docs.

Remora (Ethernet)



:Realtime requirements are offloaded onto a controller board. Multiple different controller boards are supported - see Remora docs.

Changed: 66c66
:Note that some of these controller boards (e.g. NVEM, EC300, EC500) are designed / sold for use with Mach3. Use with LinuxCNC requires flashing new firmware, which has been developed by the LinuxCNC community. The manufacturer does not support LinuxCNC.
:Note that some of these controller boards (e.g. NVEM, EC300, EC500) are designed / sold for use with Mach3. Use with LinuxCNC requires flashing new firmware, which has been developed by the LinuxCNC community. The manufacturer does not support LinuxCNC.

Changed: 68c68
:Expatria Technologies PicoBOB?-DLX was designed for LinuxCNC Remora.
:Expatria Technologies PicoBOB-DLX was designed for LinuxCNC Remora.

Changed: 72,74c72,74
As of March 2024:
: <nowiki>
STM32 based controller boards
:As of March 2024:
<nowiki>
STM32 based controller boards

Changed: 76c76
NVEM - an STM32F207 based board with Ethernet PHY chip, originally intended for Mach3. [No longer in production, Legacy Support - no new features]
NVEM - an STM32F207 based board with Ethernet PHY chip, originally intended for Mach3. [No longer in production, Legacy Support - no new features]

Changed: 78c78
EC500 - an STM32F407 based board with Ethernet PHY chip, originally intended for Mach3. [No longer in production, Legacy Support - no new features]
EC500 - an STM32F407 based board with Ethernet PHY chip, originally intended for Mach3. [No longer in production, Legacy Support - no new features]

Changed: 80c80
Expatria Technologies Flexi-HAL with uFlexiNET? Ethernet adapter - an STM32F446 based board with W5500 Ethernet SPI adapter designed for Remora
Expatria Technologies Flexi-HAL with uFlexiNET? Ethernet adapter - an STM32F446 based board with W5500 Ethernet SPI adapter designed for Remora

Changed: 82c82
iMX RT1052 based controller boards
iMX RT1052 based controller boards

Changed: 84c84
NVEM, EC300 & EC500 - iMXRT1052 based controller boards with Ethernet PHY chip, originally intended for Mach3. [In active development]
NVEM, EC300 & EC500 - iMXRT1052 based controller boards with Ethernet PHY chip, originally intended for Mach3. [In active development]

Changed: 86c86
RP2040 based controller boards
RP2040 based controller boards

Changed: 88c88
WIZnet W5500-EVB-Pico - Raspberry Pi RP2040 based development board with on-board W5500 Ethernet SPI adapter
WIZnet W5500-EVB-Pico - Raspberry Pi RP2040 based development board with on-board W5500 Ethernet SPI adapter

Changed: 90c90
Expatria Technologies PicoBOB?-DLX - Raspberry Pi RP2040 based board with on-board W5500 Ethernet SPI adapter designed for Remora
Expatria Technologies PicoBOB?-DLX - Raspberry Pi RP2040 based board with on-board W5500 Ethernet SPI adapter designed for Remora

Changed: 93c93

Litex-CNC



Litex-CNC (Ethernet)




Changed: 101,102c101,102

LinuxCNC-RIO



:RealtimeIO? for LinuxCNC based on an FPGA

LinuxCNC-RIO (Ethernet)



:RealtimeIO for LinuxCNC based on an FPGA

Changed: 109,110c109,110

Ethercat



:Beckhoff EtherCAT(TM) and compatible systems can be made to work with LinuxCNC using the open source etherlab software.

EtherCat



:Beckhoff EtherCat(TM) and compatible systems can be made to work with LinuxCNC using the open source etherlab software.

Changed: 112,114c112,114
:EtherCAT is the open real-time Ethernet network originally developed by Beckhoff.
:The EtherCat? master (LinuxCNC computer) uses a standard ethernet (network) interface - no special hardware is needed on the master. The slaves use special hardware.
:There are many EtherCat? slave devices available including servo drives, stepper drives, input, output interfaces, VFDs, and others.
:EtherCat is the open real-time Ethernet network originally developed by Beckhoff.
:The EtherCat master (LinuxCNC computer) uses a standard ethernet (network) interface - no special hardware is needed on the master. The slaves use special hardware.
:There are many EtherCat slave devices available including servo drives, stepper drives, input, output interfaces, VFDs, and others.

Changed: 116c116
:https://github.com/linuxcnc-ethercat/linuxcnc-ethercat
:https://github.com/LinuxCNC-EtherCat/LinuxCNC-EtherCat

Changed: 118c118
== PCI / PCIe

PCI / PCIe




Changed: 126,127c126,127
== SPI
SPI = Serial Peripheral Interface. SPI interfaces can be found on single board computers like Raspberry Pi, or Orange Pi. SPI interface is _not_ generally present on standard computers (AMD/Intel?).

SPI



SPI = Serial Peripheral Interface. SPI interfaces can be found on single board computers like Raspberry Pi, or Orange Pi. SPI interface is not generally present on standard computers (AMD/Intel?).

Changed: 130,131c130,131

Remora SPI



Realtime requirements are offloaded onto a controller board. https://remora-docs.readthedocs.io

Remora (SPI)



:Realtime requirements are offloaded onto a controller board. https://remora-docs.readthedocs.io

Changed: 133,134c133,134

<nowkik>LinuxCNC-RIO</nowiki>



RealtimeIO? for LinuxCNC based on an FPGA

LinuxCNC-RIO (SPI)



:RealtimeIO for LinuxCNC based on an FPGA

Changed: 136c136
https://github.com/multigcs/LinuxCNC-RIO
:https://github.com/multigcs/LinuxCNC-RIO

Changed: 138,139c138,139

Mesa



Mesa cards with a Field-programmable gate array (FPGA), interfaced to LinuxCNC computer via SPI. Time critical (realtime) tasks are performed on the FPGA card.

Mesa (SPI)



:Mesa cards with a Field-programmable gate array (FPGA), interfaced to LinuxCNC computer via SPI. Time critical (realtime) tasks are performed on the FPGA card.

Changed: 141c141
Example: 7C80 for Raspberry Pi
:Example: 7C80 for Raspberry Pi

Changed: 143c143
Website: http://mesanet.com/ Store: http://store.mesanet.com/
:Website: http://mesanet.com/ Store: http://store.mesanet.com/

Changed: 147,160c147
USB devices cannot be used to control motors or perform other __"real time"__ tasks.

[LinuxCNC ArduinoConnector]?



This Project enables you to connect an Arduino to LinuxCNC and provides as many IO's as you could ever wish for. This Software is used as IO Expansion for LinuxCNC.
It is NOT intended for timing and security relevant IO's. Don't use it for Emergency Stops or Endstop switches!

Site: https://github.com/AlexmagToast/LinuxCNC_ArduinoConnector







USB devices cannot be used to control motors or perform other "real time" tasks.

Added: 161a149,158

LinuxCNC_ArduinoConnector



:This Project enables you to connect an Arduino to LinuxCNC and provides as many IO's as you could ever wish for. This Software is used as IO Expansion for LinuxCNC.
:It is NOT intended for timing and security relevant IO's. Don't use it for Emergency Stops or Endstop switches!

:Site: https://github.com/AlexmagToast/LinuxCNC_ArduinoConnector










Changed: 166c163
The purpose of this page is to describe the electronics that interfaces your PC to your CNC machine. For information on selecting a PC to run LinuxCNC, please see Hardware Requirements.
The purpose of this page is to describe the electronics that interfaces your PC to your CNC machine. For information on selecting a PC to run LinuxCNC, please see Hardware Requirements.

Changed: 168c165
: HardwareDesign - general notes on the hardware interface designs that work well with LinuxCNC
: HardwareDesign - general notes on the hardware interface designs that work well with LinuxCNC

Changed: 170c167
: General Mechatronics: http://www.generalmechatronics.com/en/linuxcnc
: General Mechatronics: http://www.generalmechatronics.com/en/LinuxCNC

Changed: 178c175
:: The Anything I/O boards are all based on FPGAs, so they can be loaded with different firmware when LinuxCNC starts.

:: The Anything I/O boards are all based on FPGAs, so they can be loaded with different firmware when LinuxCNC starts.


Changed: 216c213
:: $80. The 7i43 is an FPGA-based "Anything I/O" board. It has a Spartan3 FPGA (200K or 400K gates) and 48 I/O pins. LinuxCNC supports this board with the HostMot2 firmware, which is available in many different configurations providing encoders, PWM generators, step/dir generators, and general purpose digital I/O pins.
:: $80. The 7i43 is an FPGA-based "Anything I/O" board. It has a Spartan3 FPGA (200K or 400K gates) and 48 I/O pins. LinuxCNC supports this board with the HostMot2 firmware, which is available in many different configurations providing encoders, PWM generators, step/dir generators, and general purpose digital I/O pins.

Changed: 220c217
: Beckhoff EtherCAT(TM) and compartible systems can be made to work with LinuxCNC using the open source etherlab software. see etherlab for details
: Beckhoff EtherCat(TM) and compartible systems can be made to work with LinuxCNC using the open source etherlab software. see etherlab for details

Changed: 222,223c219,220
: AB&T EpoCAT FR1000: http://www.bausano.net/en/hardware/ethercat/epocat-fr-1000.html
:: 5 axes slave module EtherCAT(TM) compatible.
: AB&T EpoCAT FR1000: http://www.bausano.net/en/hardware/EtherCat/epocat-fr-1000.html
:: 5 axes slave module EtherCat(TM) compatible.

Changed: 229c226
: currently there is no known driver for LinuxCNC to connect to CAN based bus systems
: currently there is no known driver for LinuxCNC to connect to CAN based bus systems

Changed: 232c229
Note: any Stepper-motor or servo-motor drive that accepts step/direction signals could be used with LinuxCNC. These are just some examples of inexpensive stepper/servo drives.
Note: any Stepper-motor or servo-motor drive that accepts step/direction signals could be used with LinuxCNC. These are just some examples of inexpensive stepper/servo drives.

Changed: 245c242
the rs232 breakout box isn't needed anymore. LinuxCNC even comes with a
the rs232 breakout box isn't needed anymore. LinuxCNC even comes with a

Changed: 256c253,357
:[http://www.granite
:[Granite Devices]
::Up to 160V 40A servo-drive cards for DC, AC, BLDC and linear servo motors.
::For brush-DC servo motors, one drive can control two motors yielding cost around 100 euros/axis.
:[stepperworld.com sp3]
::3 axis stepper drive - sp3 from stepperworld.com. [pin setup]
:[www.rutex.com]
::Servo drives, both brush and brushless.
:STMBL open-source 2kW brushless servo drive, connects directly as a Mesa smart-serial device but also can be controlled by step.dir, analog etc signal.
https://github.com/rene-dev/stmbl
:[Semis Co.]
::Manufactures up to 12kW peak power analogue and STEP/DIR servo-drives.
:[mechapro.de]
::stepper drives, breakout boards with relays, motors and more.
::e.g. micro-steping 1 axis 2A 39 Euro, 4A 76euro, 3axis 2A 98 Euro nice quality (some items are kits, others are ready to use). Bigger drivers up to 10A/90V.
::might be a good option if you live in Europe
:[PoLabs]
::Postep25-32, 1 axis, 2.5A, 1x, 2x, 4x, 8x, 16x, 32x microsteping, 17,00 EUR per axis, very good thermal design
::Postep60-256, 1 axis, 6A, 1x- 256x microsteping, 54,90 EUR per axis, very good thermal design

PCI and PCIe Parallel Port Cards



:Parallel port cards allow the addition of parallel ports beyond the built-in port on PC motherboards. These may be used for realtime functions such as software PWM and step/dir, or for user functions such as controlling coolant, tool changers, relays, etcetera. Nearly any card will work with pin changing functions (hal_parport), but very few cards are compatible with EPP, which is used with parallel port connected FPGA signal generators and controllers. Several LPT cards and their test results are listed here.


:PCI EPP Cards
::Startech (Sunix/SUN1888)
::SIIG
:PCIe EPP Cards
::Dual port Vantec [https://forum.LinuxCNC.org/38-general-LinuxCNC-questions/46705-vantec-2-port-parallel-pcie-card-ugt-pce20pl UGT-PCE20PL]
::Parallel port cards that use the ASIX MCS9901
:PCI SPP Cards
::NetMos - Most parallel port cards use one of the NetMos chips

SPI BUS Boards



:Boards that use [Remora] firmware to connect Rpi's and similar to a microcontroller board over SPI bus.
::SKR V2 STM32F407VGT6

Breakout Boards, Power Supplies etc.



:[CNC4PC]
::$41.60 C1G - Parallel Port Interface Card (For Geckos)
:[PMDX]
::Breakout Boards and other accessories for step and direction controls
:[http://www.ijohnsen.com/blog/LinuxCNC-mach3-breakout-board/ LinuxCNC Breakout Board]
::Parallel Port Breakout Board found on ebay and aliexpress for under $10

VFD's



<html><img style="float:right" src="http://wiki.LinuxCNC.org/uploads/gs2_100.jpg"></html>
:Variable Frequency Drives are generally used to drive three phase spindle motors. Variable-frequency drives are also known as adjustable-frequency drives (AFD), variable-speed drives (VSD), AC drives, microdrives or inverter drives. Since the voltage is varied along with frequency, these are sometimes also called VVVF (variable voltage variable frequency) drives. Since the spindle motor is often the only truly three phase component of a CNC machine, a VFD may be used to convert a machine to single phase by either using an overrated three phase input drive or a drive designed as a single phase input drive. Voltage conversion is also a common feature that can allow one to use, for instance, a 460 Volt motor from 240 Volt mains. See: http://en.wikipedia.org/wiki/Variable-frequency_drive

:Common I/O are; the front panel,or digital inputs such as start, stop, forward, reverse, etcetera, along with analog speed as +/- 5 or 10 Volts, or Modbus RTU and Modbus Ethernet. For use with LinuxCNC, the digital, analog, and Modbus I/O are the most interesting.

:VFD Digital/Analog Interface
:VFD Modbus

Encoder & Resolver Interfaces



:Pico Systems has a line of products to connect proprietary position feedback devices to LinuxCNC systems and others CNC controls.
:[Fanuc Converter]
::The original Fanuc "Red Cap" motors had quadrature encoders, but the commutation information was proprietary. They call these "Pulse Coders." We have a converter that converts these signals to standard "Hall" signals that can be used with Pico Systems brushless drives or other makes.
:[Fanuc Serial Converter]
::Fanuc Serial Pulse Coders give a serial data stream when interrogated. We have a converter that converts this data to quadrature with index, plus standard commutation signals.
:[Resolver to Quadrature Converter]
::Resolver to quadrature converter converts a brushless resolver to a quadrature resolution of 4096 counts/rev, with index.
:[Panasonic Converter]
::Panasonic converter for MUMS-series motors. Again, they have proprietary commutation info, this converts it to industry-compatible "Hall" signals.

Human Interface



:ModIO

DIY hardware known to work with LinuxCNC




:[LiniStepper]
::The open-source [LiniStepper motor driver] is known to work with LinuxCNC: [video of a Linisteppers driving a Sherline 2000], [configuration settings] It is Microchip PIC based and supports full, half (at full power), as well as 6th and 18th microstepping with linear smoothing, for small to medium sized Unipolar motors. The [source], [circuit], and several [user contributed board layouts] are available as well as [full kits] with pre-programmed PIC chips. It uses [PMinMO connector] so you can mix and match with the drivers and BOB's from [PMinMO] including those listed below.
:L297/L298 stepper driver
::A single-sided board based on the L297/L298 chipset. up to 46V supply, 2A/motor, constant-current chopper. For bipolar motors. Half- or full-stepping with step and direction inputs. PDF format for DIY pcb. Thru-hole components. [PMinMO.com L297-8]
::A three axis driver based on the L297/L298 chipset. Available as a kit (THT) or PCB only (double-sided board, industrial quality). Up to 43V supply, 2A/motor, constant-current chopper. For bipolar motors. Half- or full-stepping with step and direction inputs.[mechapro 3D-Step]
:[http://LinuxCNC.org/docs/2.1/html/hal/pluto_servo.html Pluto-P Servo]
::An FPGA board with open-source firmware and LinuxCNC driver. 4x20kHz PWM, 4x8MHz quadrature, 10+ digital outputs, 8+ digital inputs. Uses EPP parallel port. Needs compatible servo amplifiers (up/down or pwm+direction input), such as L298 servo driver (below)
:L298 servo driver
::A single sided board based on the L298 H-bridge. Up to 46V supply, 2A/motor. For DC servo motors with TTL-level encoder outputs. Driven by PWM input. PNG images of schematic. So far this has only run cradek's lathe experimentally, but the results are good and with the new parallel port "x mode" (8 outputs, 9 inputs, supported on some but not all parallel ports) it may be possible to run a 3 or 4 axis machine with this scheme. http://emergent.unpythonic.net/projects/01142347802
::A diagram of the hal connections in the etch-servo hal example distributed with LinuxCNC is available upload:EtchHalDiagram.pdf .
:Medium Current Quadrature Drive Servo System
::This is a full servo board up to 7amp +-24v. Its on board DSPic processor reads quadrature position signals from LinuxCNC stepgen type 2 and uses an onboard PID loop driving a current amplifier to keep the actual position close to the commanded position. Drive setup is through a serial port. It is best suited for 12 to 25 volt dc/servo motors with TTL encoders. Pic source code is GPL. PCB eagle project provided as well as milling and drilling G code files for machining the board with LinuxCNC. http://members.shaw.ca/swstuff/dspic-servo.html
:AVR (in very early development)
::Parallel port to AVR fast hardware signal generator and counter
:ARM
::Might be used for a parallel port interface similar to the AVR above, but faster. May also be fast enough to run Linux, RTAI and/or LinuxCNC by itself, such as on a Beagle Board.
:FPGA (and CPLD)
::May be the ultimate in LinuxCNC peripheral speed. Popular for PCI and parallel port I/O interface cards. This page explores this technology to see if it might be useful to the beginning developer, integrator or DIY'er.
:Bridges - Half, Full, Three Phase
::Power drivers for switched and PWM control of motors or other high voltage or high current loads

Toy designs



:Low-current stepper driver
::A single-sided board based on the ULN2803 darlington chip. Simple, but very low current, <500mA/motor. Not recommended for anything but a toy. Half- or full-stepping with 4 winding activation signals per axis. PNG images of schematic and board. This design could be adapted to drive 3-axes, because there are 12 available outputs. http://axis.unpythonic.net/etchcnc

:RC Servo Test
::I can't think of any CNC application, but LinuxCNC's PWM and pyVCP can be used to test RC servos.

other hardware we've heard about, but we don't know if it will work or not



* [rt-8p8c]: an ethernet based interface for LinuxCNC. Probably still under development.
* [picnc]: a Raspberry Pi PIC32 expansion board. Probably still under development.

Hardware that doesn't work




* USB devices cannot be used to control motors or perform other "real time" tasks. Some USB devices which appear as keyboards, joysticks, and mice can be used for user interface tasks through the hal_input driver.
* See HardwareDesign for details of USB, RS232, and Ethernet interfaces.

What about the machines?



If you want to see pictures of big iron, check out the Case Studies page

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
Search:
Published under a Creative Commons License