The Road To CNC (pt 1)

I always wanted to setup a garage workshop! Now that I’m finally living in a place with a spare garage, I decided to get started.

LinuxCNC was my first choice for numerical control of any machine that I thought I might want to setup. Since 1952 when the first CNC machine was made at MIT to crank out aircraft parts, numerical control (NC) has revolutionized the way parts are made in the modern day. Pre-1952, many, but not all, industrial fabrication machines (mills, lathes, and many more) were operated by hand; furthermore, the complexity of the part that could be fabricated was limited by the skill of the machinist. Nowadays, the instructions are defined as 2D or 3D lines and arcs and uploaded to a machine that makes cuts along these paths. Don’t worry, we still have machinists! They just have a far-more augmented toolset, and the limits of “what we can can make” have been redefined to be both the limits of what we can define parametrically and the precision of our cnc machine. (Here’s an article from Scientific American way back in 1952, when it all got started.)

LinuxCNC is one of many software packages for “numerical control” of fabrication machines. In a nutshell, it’s mature, open source, under constant improvement, and “generic enough” to extend control to all sorts of machines (lathes, mills, laser cutters) with a user-definable “hardware abstraction layer” for defining custom machine kinematics. In other words, as long as I can write down the “rules” (equations) for how my machine moves around its tool in 3D space, I can control it with LinuxCNC.

The drawback? There’s a learning curve that’s biased towards those familiar with Linux already–not to mention that LinuxCNC needs to run on its own computer with a parallel port (DB25 connector). While there’s work done on the hardware-compatibility end to run LinuxCNC on a (much cheaper!) BeagleBone, I figured it’d be great to get support from the forums with a familiar hardware setup, so I picked up a refurbished PC on the Neweggs and installed LinuxCNC 2.6 via a liveUSB key that I made with another computer. (BeagleBone, maybe next time, bub..)

I admit that before I committed to the desktop I first picked up a cheap solid-state drive, installed the latest LinuxCNC image onto it, and booted it up on my normal pc to play around with. The ethernet connection didn’t work (hardware was too new), but everything else checked out cleanly. From there, I picked up the refurbished desktop, dropped in the hard drive, and everything checked out OK (except for the parallel port which is recognized in Linux, but I haven’t yet verified if any of the I/O pins are sending signals.)

For reference, here’s the hardware list so far:

Leave a Reply

Your email address will not be published. Required fields are marked *