LinuxCNC (Formerly called EMC2)
LinuxCNC is a free and open source real time machine controller and it is intended to run Mills, Lathes and other machines. I used LinuxCNC to control my original home built JGRO CNC router and I use it to control my current KRMx01 CNC Router. LinuxCNC is a powerful program and can do a great many things, but because it can do these things it can be hard for someone just getting into the CNC hobby to wrap their mind around. I am by any stretch of imagination a LinuxCNC expert, or even a CNC expert as far as that goes, but I have learned a few things about it.
On these pages of the website, I hope to share some information and videos that will possible help you get your feet wet. Does this mean I have done everything correct? Well, I am not sure, but I will try to present the information as accurately as I possibly can. If you have questions, feel free to use the Contact Us menu entry above, and I will do my best to help you. Keep in mind that the Documentation, Wiki, Forums and IRC Chat channels are a great place to pose questions and help work through issues. The folks who hang out there have been a huge help to me. Of all these resources available, giving the documentation manuals and man pages will take you a long way to success.
I hope you find the information I add to these pages helpful.
— Joe Hildreth
Written Tutorials
This area is for links to tutorials that I have written. Simply click on the title to read a tutorial or, alternatively, you can click the PDF icon to the left to download a copy of the tutorial.
LinuxCNC Tutorial 01 - Good Wiring Practice
This tutorial will give you some tips on how to wire your CNC machine to prevent things like noise injection on your signal wires, ground loops and other common mistakes when that can happen when you wire your first machine.
LinuxCNC Tutorial 02 - Compiling a Realtime Kernel for LinuxCNC using the PREEMPT_RT patch
This tutorial will show you how you can compile a realtime kernel on your favorite distribution of linux to run LinuxCNC. The tutorial will show you the required software, where to get the kernel and preempt source code, how to configure the kernel, compile it and install the new kernel.
LinuxCNC Tutorial 03 - Compiling LinuxCNC from Source Code
This tutorial will explain how to get the LinuxCNC source code from the GitHub repository, install the required dependencies to compile the software, the compile options that you have and finally how to compile either Uspace or Debian install files.
Video Tutorials
LinuxCNC for the Hobbyist is intended to be a series of tutorials targeted towards the new LinuxCNC user. As the tutorial progress, they will cover more and more topics. Hopefully over time there will be something here for every LinuxCNC user. So, if your interested, grab a beverage of your choice and learn how to use and setup LinuxCNC in your home shop. To watch any of the video tutorials, you can click on the episode title or the image to the left of the episode title.
LinuxCNC for the Home Hobbyist - EP 1 - What is NC / CNC?
LinuxCNC for the Hobbyist explores different aspects of setting up a CNC machine from the Hobbyist's perspective. This episode talks about what NC and CNC means and introduces the heart of any CNC machine, the controller.
LinuxCNC for the Home Hobbyist - EP 2 - The LinuxCNC Controller
LinuxCNC for the Home Hobbyist - EP 3 - Downloading LinuxCNC with Linux
In this episode I show you how to download LinuxCNC using the Ubuntu Linux Operating System. I demonstrate how to calculate checksums with both md5 and sha256. I show the alternate method of download using the zsync software which can recover from a failed download and do the checksums for you. Finally I explain and show how the downloaded LinuxCNC controller software can be burned to a DVD or alternatively create a bootable thumb drive.
LinuxCNC for the Home Hobbyist - EP 4 - Downloading LinuxCNC with Windows
In this episode I show you how to download LinuxCNC using the Windows Operating System. (All software links are listed below.) I demonstrate how to calculate the md5 checksums. I show the alternate method of download using the zsync software which can recover from a failed download and do the checksums for you. Finally I explain and show how the downloaded LinuxCNC controller software can be burned to a DVD or alternatively create a bootable thumb drive.
LinuxCNC for the Home Hobbyist - EP 5 - Machine Requirements for LinuxCNC
In this episode I discuss the minimum computer hardware requirements to install and run LinuxCNC. Additionally I briefly talk about video adapters and other hardware that can run the LinuxCNC controller. The Hardware requirements links that I mention in the video are listed below for your convenience.
LinuxCNC for the Home Hobbyist - EP 6 - Installing LinuxCNC v2.7
In this episode of LinuxCNC for the Home Hobbyist I install the software on the controller computer. I also discuss the effects of changing hardware on a computer to possibly make it work for LinuxCNC.
LinuxCNC for the Home Hobbyist - EP 7 - Updating the LinuxCNC Computer
In this episode I cover two ways to do updates to the LinuxCNC Controller Computer. I also address an issue I have with the default PDF viewing software.
LinuxCNC for the Home Hobbyist - EP 8 - Stress Testing the LinuxCNC Computer
In this episode we give the computer running LinuxCNC a stress test to see how the Real Time system is impacted. I give an overview of the Real Time system along with what Jitter is and how it impacts the computer. I cover the tools that come with LinuxCNC to measure Jitter, graph the threads and the plotter which allows you to see the threads running visually over time.
LinuxCNC for the Home Hobbyist - EP 9 - LinuxCNC I/O Options
I/O, I/O, it's how it works you know! This episode discusses some of the I/O (Input/Output) options that are available for LinuxCNC to use to attach hardware like motors and switches from the outside world.
LinuxCNC for the Home Hobbyist - EP 10 - LinuxCNC and the Parallel Port
In this episode I discuss more about the parallel port including the registers, adding ports to the computer and how they are brought out to the outside world.
LinuxCNC for the Home Hobbyist - EP 11 - Introduction to Stepper Motors
In this episode I give a general introduction to stepper motors. There are two recommended videos I suggest you watch in addition to this video. These are linked below. Working principles of several stepper motors (bipolar, unipolar, reluctance and can-stack)) - https://www.youtube.com/watch?v=Qc8zcst2blU How does a Stepper Motor work? - https://www.youtube.com/watch?v=eyqwLiowZiU
LinuxCNC for the Home Hobbyist - EP 12 - Stepper Motor Drivers
In this video I talk a little about stepper motor drivers, the inputs and outputs and timing specification. I also touch briefly on power supply units. I also mention that you should have watched the video links posted in the last episode. For those of you that did not, I have repeated the links below. Working principles of several stepper motors (bipolar, unipolar, reluctance and can-stack)) - https://www.youtube.com/watch?v=Qc8zcst2blU How does a Stepper Motor work? - https://www.youtube.com/watch?v=eyqwLiowZiU
LinuxCNC for the Home Hobbyist - EP 13 - Linear Motion
In this episode I talk about linear motion using leadscrews and rack and pinion. I also discuss gear reduction methods.
LinuxCNC for the Home Hobbyist - EP 14 - Calculating Steps Per Machine Unit (Leadscrew)
In this episode i show you how to calculate the steps per machine unit for both imperial and metric, including imperial and metric leadscrews and gear reductions.
LinuxCNC for the Home Hobbyist - EP 15 - Computing Steps Per Machine Unit (Rack & Pinion)
In this episode I discuss some gear theory explaining the difference between Diametral Pitch and Module gears. I give formulas and explain how to calculate their Diametral Pitch or Module value. Additionally, I explain how to calculate the steps per machine unit for both Diamteral and Module gears both with and without gear reductions.
LinuxCNC for the Home Hobbyist - EP 16 - Configuring LinuxCNC using Stepconf (Overview)
In this episode I give an overview of setting up a stepper driven system using the parallel port with the Stepconf utility. While much information is given about Stepconf, I remind the viewer it is considered and overview because some details like spindle control and home and linit switches will require more detail. These topics plus other concerning Stepconf will be covered in future videos.
LinuxCNC for the Home Hobbyist - EP 17 - Compiling a Realtime Kernel for LinuxCNC
In this episode I show you how to compile a Realtime Kernel using the PREEMPT_RT kernel patch. I show you where to download the patch, the kernel source code, how to apply the patch, configure the kernel to use it. Next I show you how to compile the kernel and modules and finally install the kernel. I also show you a quick edit to the GRUB boot loader config file to force the grub menu to show on boot up, so if you do have problems you can boot back into your original kernel. A written tutorial is available at the top of this page in the Written Tutorial section for those who wish to have a version they can download for offline use.
LinuxCNC for the Home Hobbyist - EP 18 - Compiling LinuxCNC from Source Code
In this episode I show you how to compile the LinuxCNC software from source code. I explain the changes needed to be made to the computer prior to starting along with the software you need to download the source code. I show you how to select the relevant branch of the software, build dependencies, and much more. This tutorial is the next logical step for those who have followed my realtime kernel compile video using the preempt_rt kernel patch. A downloadable PDF of this tutorial is available on my website. You can find a link to it here: http://myheap.com/cnc-stuff/linuxcnc-... along with other useful tutorials and information regarding LinuxCNC. If there is a topic of interest concerning LinuxCNC you would like to see covered, please drop me and email and i will see what I can do. As always, thank you for watching.
LinuxCNC for the Home Hobbyist - EP 19 - Debian Wheezy is EOL, Now What?
As many of you are aware, LinuxCNC currently runs on Debian 7, codenamed Wheezy and it is EOL (End Of Life). This video addresses the options you have to either continue using Debian Wheezy, or move to a newer supported version of Linux.
LinuxCNC for the Home Hobbyist - EP 20 - Parallel Port Revisited
In this episode I talk about some of the issues people have run into when installing a parallel port card into their computer. I give some examples of some additional commands to try to find out what the computer thinks you have installed when things go awry. Finally I give you a link to a page on my website that has a list of cards that are known to work, and not work with LinuxCNC. I also encourage you to participate in the development of this list.
Other LinuxCNC Related Information
I have gathered here some other things that you may find helpful to learning about the LinuxCNC controller. To view any of these pages click the title of the page in the list.
Parallel Port cards that are known to work (or not work) with LinuxCNC
I discovered while writing tutorials about LinuxCNC that not all parallel port cards are equal. Some are actually seial devices while ofthers have problems supporting EPP mode properly that is required for proper operation of some FPGA cards.
*** Please Note the page structure of this area is likely to change over time.LinuxCNC for the Hobbyist - 019 - Debian Wheezy is EOL, Now What?