Modern CNC machines increasingly operate with multiple tool holders, spindles, or additional handling systems. However, classic CNC controls are usually designed for the sequential execution of a single program.
With our LinuxCNC Multichannel Fork, we extend LinuxCNC with the capability to run multiple independent machining channels simultaneously.
The project is publicly available and actively developed:
👉 https://github.com/retrofitcenter/linuxcncMultichannel
Project Goal
The fork extends LinuxCNC with a true multichannel architecture, similar to that known from industrial controls like Siemens Sinumerik or Fanuc.
Multiple machining channels can:
This makes LinuxCNC a powerful platform for complex machines with parallel motion sequences.
Typical Applications
The multichannel extension enables, among other things, the following machine concepts:
Lathes with Two Turrets
In lathes with two tool turrets, both turrets can operate simultaneously.
Examples:
Upper and lower turrets work simultaneously
parallel roughing and finishing operations
synchronized machining between both tool holders
This significantly reduces machining time.
Lathes with Main and Counter Spindle
Many modern lathes feature:
main spindle
counter spindle
multiple tool turrets
With the multichannel extension, it is possible to:
operate both spindles independently
transfer workpieces between spindles
perform simultaneous machining on both spindles
Machining Centers with NC-Controlled Tool Changers
Another application area is machining centers with complex tool changing systems.
Examples:
While the machine is machining, the magazine can already prepare the next tool change.
Automated Handling and Transfer Systems
Many special machines have additional axis systems for:
With Multichannel, these systems can work in parallel with machining.
Examples:
Robots or grippers remove finished parts during machining
Workpieces are automatically transferred to subsequent operations
Handling axes operate independently of machining
Technical Concept
The multichannel extension is based on an adaptation of the LinuxCNC motion architecture.
Key enhancements are:
multiple independent trajectory planners
separate program interpreters per channel
dynamic axis assignment to machining channels
parallel execution of motion sequences
Each channel has:
The control of the physical axes still takes place centrally via the LinuxCNC Motion Controller.
Naming and Organization of Axes
For multichannel machines, axes are named according to an extended scheme.
Example:
This allows machines with multiple identical axes to be clearly represented.
The first version of the multichannel extension is initially integrated into the classic Axis GUI.
Axis provides a stable foundation for development and enables rapid integration of the new functions.
In further development steps, it is planned to integrate multichannel support also into other LinuxCNC user interfaces, for example: