LinuxCNC


Overview

LinuxCNC is a cost-effective system for controlling and coordinating complex movement of devices on an ornamental turner's machine. For example, it can easily coordinate the simultaneous movements of:

  1. rotation of the spindle,
  2. rotation of the rosettes (separately from the spindle),
  3. movement of the cutter attached to a curvilinear slide (along the Z axis), and
  4. change to the amplitude adjuster's amplitude percentage.

Whilst it runs on off-the-shelf computer hardware, it must use a real-time operating system (RTOS), and Linux is the chosen option due to its stability and cost. The computer running LinuxCNC on a RTOS is dedicated to the task of running the machine operations (and cannot also be used for web browsing, reading email, etc.).

The pre-built and pre-configured downloads of LinuxCNC run on Debian Linux. It runs well on the Raspberry Pi 5 single-board computer.

How LinuxCNC Came About

LinuxCNC was developed by the U.S. National Institute of Standards and Technology as a product then called the Enhanced Machine Controller (EMC) at the time. Their idea was documented in the 01 November 2000 paper, "Use of Open Source Distribution for a Machine Tool Controller". It was designed to

... develop an open architecture controller for machine tools, shifting the focus of controller competition from proprietary hardware to software that runs on widely accepted platforms.

The work products of US federal government employees are required to be in the public domain, so the resulting software and the report about it were duly published, including on the Internet.

At some point, the product was transferred to "industry", and is now overseen by a board of directors who coordinate changes to the open-source software project.

There is a more detailed history of LinuxCNC on Wikipedia (including how the name was changed from EMC to LinuxCNC), and at the LinuxCNC.org website.

How LinuxCNC Came Into Ornamental Turning


XY Stage

Both Bill Ooms and Dewey Garrett used LinuxCNC in their ornamental turning machines, though they have taken different approaches.

  • Bill mounted a Quick Change Tool Post (QCTP) to his X-Y stage, and that is used to hold the cutting frame which is moved along the X or Z axes (or both). The object is held on a midi-lathe.
  • Dewey used his X-Y stage as the headstock, moving the object around whist the cutting frame remains fixed. (Dewey has stated that he would take Bill's approach if he did it over).

Bill provided his designs for his Computerized Ornamental Lathe (COrnLathe™) at his web site.

Bill's design visualization software is not a part of the LinuxCNC system, but can be used to produce the gCode needed to produce systems on LinuxCNC. The visualization software runs on an Apple Mac is available on GitHub (billooms / COrnLathe), and has been ported to run on Windows by Jeff Hank (JeffHank1 / COrnLathe-for-Windows).

Additional pictures of this device

Examples of work produced with this device

Examples of this device in use

Usage Notes

How it works

Notes on building a LinuxCNC system

the LinuxCNC web site provides some great resources for anyone to use:

  • User and technical manuals (the PDF versions are recommended)
  • Pre-built and pre-configured downloads

This is really not for the faint of heart, and a good IT or electrical engineering background is very helpful (necessary?).

The Hardware Stuff

To connect the stepper motor drivers (e.g., StepperOnline DM542T) to the computer, a field-programmable gate array (FPGA) board is needed. Mesa Electronics is the primary company providing the interface cards which most people use. There are a number of types:

  • those which attach to personal computers (PCs)
    • FPGA board installed into a PC,
    • FPGA board attached to the PC's parallel port (if you can find an old PC with a 25-pin parallel printer port),
  • those which attach to Raspberry Pis
    • FPGA board attached directly to the Raspberry Pi (AKA, a "top hat"), or
  • FPGA boards which connect to the computer (either a PC or a Raspberry Pi) via an Ethernet connection.

If you choose the Ethernet-connected FPGA board, the computer and the FPGA board cannot be connected directly using an off-the-shelf Ethernet cable. You will need to connect it to the computer via:

Generally, the Mesa board needs a break-out board (or two), and the drivers are connected to the break-out boards. A typical configuration is shown below.


Typical LinuxCNC components

 

The Software Stuff

Once the pieces are connected and the LinuxCNC image is installed, the FPGA card needs to be configured. This maps logical channels to the I/O pins on the card. For Mesa's FPGA cards, the mesaflash application is used to do this.

Once the channels are setup, they need to be mapped to axes. The LinuxCNC PNCConfig program can get you started with that, but you will need to modify the .ini file afterwards. Pay particular attention the timings (e.g., the pulses / movement as configured on the drivers).

Customization

At this point, your system will work, but you may want to customize it. That is certainly doable and the programming documentation is provided with the LinuxCNC documentation set.

More Information

Published Articles

  • Amplitude Adjusters by Al Collins. Al explains the history of amplitude adjusters and how they work, then surveys the current crop of these very useful rose engine accessories.
    Ornamental Turners International Newsletter, Volume 27, No. 1 - May, 2020, pg. 16
  • Amplitude Adjuster for an MDF Rose Engine by Rich Colvin.
    Ornamental Turners International Newsletter, Volume 26, No. 2 - Winter, 2019, pg. 23

Books

Web Sites

Presentations

Other

########## Standard Footer for all pages ##########

About this Site

Disclaimer: eMail comments to me at OTBookOfKnowledge @ Gmail.com. The process of woodturning involves the use of tools, machinery and materials which could cause injury or be a health hazard unless proper precautions are taken, including the wearing of appropriate protective equipment.