Last updated July 19, 2020

(This is currently a placeholder page.)


Here are the SolidWorks model files associated with the YouTube video below detailing the conversion of a South Bend SB1001 lathe to CNC operation. There are multiple ideas in the assembly called “Alternative CNC drive 1-3” and can be (un-)suppressed. Contact me if you have any questions and especially if you make something wonderful based on these ideas.

This work is licensed under a Creative Commons Attribution 4.0 International License.

My CNC mill is based on a Precision Mathews PM-25MV manual mill. A CNC conversion kit was purchased from David Clements of ArizonaVideo99. This project was meant to be a hobby and much of the project sat for months until…

I’m a freelancer who builds prototype computer vision machines and analytical software. A plant research company asked if I would build them a system to image and measure plants. Machinists are busy running a business and working with an inventor may not be profitable. I designed the machine in CAD, but once assembly starts, there changes will be desired and returning to a machinist for changes will create delays and extra costs.

I needed to get the CNC mill to a point that I could make the parts I needed. David’s kit was an easy bolt-on. Most of the kit was assembled in a day and the CNC mill was operational by the end of the weekend.

This is the second CNC mill that I’ve built. The first was an Industrial Hobbies mill. Both are based on a manual mill, a conversion kit, and supply-your-own electronics. The IH used Mach3 and a parallel breakout board. It also had servos on all axes and a 3HP VFD controlled motor. It was a beast of a machine.

The PM25 is smaller, but capable machine.


The CNC machine is composed of the 1) mechanics of the machine, which includes the frame, ballscrews, etc; 2) the motors and their drives; and 3) the CNC controller.

The CNC controller includes everything from the interface that one supplies the G-code file to through and including the hardware the produces the signals to control the motor drives.

Most controllers for most DIY CNC machines likely consist of the selection of some hardware and software. The software is likely to make the largest difference in the experience of using the machine, but selection of the software will put limitations on the selection of the hardware.

Simplifying the selection, there are also all-in-one CNC controllers including the Masso Controller. I’ve not used these but they deserve serious consideration for anyone who simply want their machine to work with minimal fuss and continue to work reliably.

Controller – Software

I previously used Mach3, which runs on Windows. It’s been many years since I used Mach and much is likely changed. What I remember most about Mach was it was simple to use. However, coming from an IT background, didn’t like that 1) Mach3 was Windows based; and 2) Mach3 is not open source. Windows is more stable today then the old days, but there is still a lot of baggage that comes with any Windows installation.

I selected LinuxCNC for a CNC controller. I’m reluctant to suggest it to everyone except those familiar with Linux, and then only if using well supported hardware.

Controller – Hardware

Consider if the computer used for your CNC machine will be dedicated to the machine, a number of machines, or will perform other tasks than being a CNC controller. Being dedicated and potentially network isolated may be ideal, but may not be practical or economical.

Most everyone starts with a parallel port breakout board, and I tried a number of parallel port cards until finding one that was compatible with Linux. The breakout board was basic and essentially provided a convenient way to connect the pins of the 25-pin parallel port to wires attached to motor drives, relays, and switches. The only bit of sophistication on the board was electrical protection.

A property that the LinuxCNC folks highlight in comparison to other products is that LinuxCNC is real-time, meaning there is a limit to how long an operation, such as sending a step pulse to a drive, will take. Real-time is the prefered property of controllers because it’s possible to make arguments about performance.

The parallel port is possibly the best real-time option for a personal computer. Compare to Ethernet where messages traverse layers of software and hardware, a parallel port can be controlled by setting value at a memory location.

Needing more capability


Like any home or hobby project, I’ve not declared “I’m done” yet. Probably never will be. And there is a warning here. If you purchase a complete CNC machine, you’ll spend a little more upfront, but potentially much less over the lifetime of the machine. There’s no limit to what can be replaced on a CNC conversion, and one may regularly decide to upgrade a part. The costs can grow.