1. The Software

  • LinuxCNC (the Enhanced Machine Control) is a software system for computer control of machine tools such as milling machines and lathes, robots such as puma and scara and other computer controlled machines up to 9 axes.

  • LinuxCNC is free software with open source code. Current versions of LinuxCNC are entirely licensed under the GNU General Public License and Lesser GNU General Public License (GPL and LGPL).

  • LinuxCNC provides:

    • easy discovery and testing without installation with the LiveCD,

    • easy installation from the Live CD,

    • easy to use graphical configuration wizards to rapidly create a configuration specific to the machine,

    • directly available as regular packages of recent releases of Debian (since Bookworm) and Ubuntu (since Kinetic Kudu),

    • a graphical user interface (actually several interfaces to choose from),

    • a graphical interface creation tool (Glade),

    • an interpreter for G-code (the RS-274 machine tool programming language),

    • a realtime motion planning system with look-ahead,

    • operation of low-level machine electronics such as sensors and motor drives,

    • an easy to use breadboard layer for quickly creating a unique configuration for your machine,

    • a software PLC programmable with ladder diagrams.

  • It does not provide drawing (CAD - Computer Aided Design) or G-code generation from the drawing (CAM - Computer Automated Manufacturing) functions.

  • It can simultaneously move up to 9 axes and supports a variety of interfaces.

  • The control can operate true servos (analog or PWM) with the feedback loop closed by the LinuxCNC software at the computer, or open loop with step-servos or stepper motors.

  • Motion control features include: cutter radius and length compensation, path deviation limited to a specified tolerance, lathe threading, synchronized axis motion, adaptive feedrate, operator feed override, and constant velocity control.

  • Support for non-Cartesian motion systems is provided via custom kinematics modules. Available architectures include hexapods (Stewart platforms and similar concepts) and systems with rotary joints to provide motion such as PUMA or SCARA robots.

  • LinuxCNC runs on Linux using real time extensions.

2. The Operating System

LinuxCNC is available as ready-to-use packages for the Ubuntu and Debian distributions.

3. Getting Help

3.1. IRC

IRC stands for Internet Relay Chat. It is a live connection to other LinuxCNC users. The LinuxCNC IRC channel is #linuxcnc on libera.chat.

The simplest way to get on the IRC is to use the embedded web client client from libera.

Some IRC etiquette
  • Ask specific questions… Avoid questions like "Can someone help me?".

  • If you’re really new to all this, think a bit about your question before typing it. Make sure you give enough information so someone can answer your question or solve your problem.

  • Have some patience when waiting for an answer, sometimes it takes a while to formulate an answer or everyone might be busy working or something.

  • Set up your IRC account with your unique name so people will know who you are. If you use the java client, use the same name every time you log in. This helps people remember who you are and if you have been on before many will remember the past discussions which saves time on both ends.

Sharing Files

The most common way to share files on the IRC is to upload the file to one of the following or a similar service and paste the link:

3.2. Mailing List

An Internet Mailing List is a way to put questions out for everyone on that list to see and answer at their convenience. You get better exposure to your questions on a mailing list than on the IRC but answers take longer. In a nutshell you e-mail a message to the list and either get daily digests or individual replies back depending on how you set up your account.

You can subscribe to the emc-users mailing list at: https://lists.sourceforge.net/lists/listinfo/emc-users.

3.3. Web Forum

A web forum can be found at https://forum.linuxcnc.org/ or by following the link at the top of the https://linuxcnc.org/ home page.

This is quite active but the demographic is more user-biased than the mailing list. If you want to be sure that your message is seen by the developers then the mailing list is to be preferred.

3.4. LinuxCNC Wiki

A Wiki site is a user maintained web site that anyone can add to or edit.

The user maintained LinuxCNC Wiki site contains a wealth of information and tips at https://wiki.linuxcnc.org/.

3.5. Bug Reports

Report bugs to the LinuxCNC github bug tracker.