February 3

DIY CNC Part 7: The Computer Insanity


Up to this point everything has been going relatively smooth and building the machine has given me a good understanding of how it is suppose to work, what works, and what doesn’t work.  The computer part of the equation is no different.  I thought this would be the easiest part, however, it was the most frustrating part of the build and a test of patience.  After four days of trying to get the software installed on the computer, I was at the point where I thought it would end up at the bottom of my pool.

destroyMost of the computers I have laying around have Linux already installed and so I decided my choice of machine software to drive the CNC machine would be LinuxCNC.  LinuxCNC is a free program and like most linux software, I thought nothing could be easier for me.  After all, Linux is freedom right?


I spent the day finding a computer with a parallel port and the system requirements to run LinuxCNC.  LinuxCNC runs on Ubuntu OS and again I thought no problem, download the ISO, burn it to disk, pop it in the drive and install the new OS.  After spending the day trying to install Ubuntu on a machine which already had Fedora 8 on it, I could not get Ubuntu to install properly.  This really wasn’t a big deal as I have had to troubleshoot some hardware issues in the past to get Linux to run properly on one of my old computers.  I really didn’t want Windows but I was out of options.  With Linux, once it is installed it just works.  With Windows, once it is installed it appears to work.  The drawback of Windows is I would have to track down device drivers and spend hours getting updates and security patches, reboots, service packs, and the list goes on.  With Linux, once it’s installed, it works, and I know I just said that.  I installed Windows XP and spent hours updating the system with 135 “high-priority updates.”

Windows-XPWith a fresh install of Windows XP on the CNC computer, I needed a parallel port to drive the CNC machine software.  I found a PCI card over at Frys which would provide me with a Parallel port so I could hook the computer up to the stepper drivers.  Although I wasn’t too excited to spend $40.00 bucks on the card, and not know if it would work with Windows XP, I took my chances.  I popped out the landline PCI card and installed the new parallel card in it’s place.  I loaded up the device drivers and crossed my fingers.


With the parallel port installed, I downloaded a copy of KCam which would run on the XP platform.  I immediately encountered a problem with KCam and Windows.  The port address of the card could not be changed in KCam.  I tried forcing the change but was unsuccessful.  Because the computer did not have a parallel port, there was nothing in the BIOS I could change.  After repeated attempts, I decided to install Linux Ubuntu on a different partition and run it side by side with Windows XP.  After days of research it would appear I still would need to run windows for creating the G-code to run LinuxCNC.  So I installed Ubuntu along side Windows XP.

ubuntu_largeThe install of Ubuntu went well and I had no errors during the software installation.  During the previous attempts of running Ubuntu the computer monitor would keep going into sleep mode and all I would get is a black screen once it was done booting.  Several attempts were made to try and get Linux to work and finally editing the grub file and adding “nomodeset” to the boot sequence was the trick.  The computer monitor did not get stuck in sleep mode and I was able to get to the splash screen on Ubuntu.  I did notice if I used the Nvidia drivers in Ubuntu, I would have problems with the Dell monitor going to sleep.  Once I removed the drivers and allow Linux drivers to do their thing, I had no problems with running the OS and eventually installing LinuxCNC.

It was insanity.  With Ubuntu installed and LinuxCNC installed there was not an issue with the computer talking to the CNC machine.  I was able to write in the correct port address for the parallel card I was using and was able to do a few test runs of the home built CNC machine.



On the next post, I will go over the settings I used for my CNC during the configuration of LinuxCNC.

Until then,

Happy Building!


January 29

DIY CNC Part 6: Wiring the Power Supply


In this part of the build I used a computer power supply to provide the necessary power to the stepper motor drivers and motors.  Finding a computer power supply wasn’t a hard task as I had three old computers in the attic.  I removed a power supply from one of the computers and made a few modifications to the power supply so I could use it to provide power to the stepper motors and drive the stepper motor driver modules.

tangouniformGenerally, an ATX power supply is usually turned on and off by the computer, but for my operation I need the power on and off when I flick on the power strip.  To achieve this, a minor modification is required to the main group of wires.  To make the power supply useful in this application, I took the green wire and connected to a black wire.  It isn’t like defusing a bomb but it is easy as eating pie.  This mod and I have done several times to use the power supply for powering up my lipo battery chargers.

powersupply1Once the power supply was modified I took all the yellow, red, and black wires out of the wire bundle and hooked them up to the stepper motor driver boards.  The boards will provide the signal pulses to the stepper motors.  From the power supply, I used some twisted pair I had to make the connections to the parallel port.  Twisted pair is generally used for telephone/data so it should do just fine for this application.


On the other end of the twisted pair was a 25 pin connecter which will plug into the parallel port of the computer.  The pin out was wired according to the build plans.


With all the wiring just about done it was time to figure out the computer part of the equation.  Although having to purchase a PCI card was not in the game plan, I had no choice but to purchase the card or this project would be dead in the water.  The computer I chose to use for this build did not have a parallel port so it was a necessity. Most computers today have USB ports and it can be challenging to find a computer with a parallel port.   Parallel ports are old school, but I managed to find a compatible card at Frys.

PCIcardWith the card installed, I completed the final assembly of the CNC machine by installing the anti-backlash mechanisms on all three axis.  The anti-backlash provides the driving mechanism for the stepper motors to transport the carriages.

Anti-backlash installed on all three axis.

With the table built, wired, and a computer ready for the CNC machining software it was time to bring it inside and begin the computer adventure.  In the next post, I will go over the software I chose to use on this build.

Until then,

Happy Building!



January 28

DIY CNC Part 5: NEMA Motors


For this build I am using NEMA 17 motors to transport the X, Y, and Z.   The NEMA motors have the same specs in the build plans and I was able to save quite a few bucks purchasing them through FoxyTronics.  Each NEMA motor cost me $14.00 dollars plus $6.00 dollars for priority mail shipping.

NEMA motors purchased from FoxyTronics

I initially had the impression the NEMA motors were big in order to transport the X,Y, and Z carriages, but as you can see in the photo below, they are actually quite small.

NEMA 17 motor

The NEMA motors will be used to transport the X, Y, and Z axis.

NEMA 17 motor for the Z axis

It took several trips to Ace Hardware to find the proper length of screws in order to mount the NEMA motors.  I ended up using 15mm screws for the Y axis, and 10mm screws for the X and Z axis.  Each screw will be installed with with 2 washers to avoid stripping out the aluminum.  If the screws are too long they will push the screw which holds the motor together.  I noticed a little jiggle on one of the screws when I was tightening the NEMA motor mount bolt down.  Fortunately, I did not strip the screw out of the motor.

NEMA 17 motor for the Y axis

Prior to attaching the NEMA motors to the CNC machine with the threaded rod, I will be performing a simple test of the motors.  This is one reason why I haven’t mounted the X NEMA motor to the CNC machine.  I used the X motor for a mock up of how all the wires connect to the stepper motor drivers.  Once the test is completed, I will connect the Y/Z motors to the carriages and construct the X motor mount.  For the stepper motor specs please visit the FoxyTronics website.  A link has been provided below.

Onto the wiring of the power supply, the stepper motor drivers, and finding an old computer to run the software.

Until next time,

Happy Building!


Bill of Materials

3 – Small Stepper Motors from FoxyTronics

4 – M3 metric machine screws 15mm for Y axis

8 – M3 metric machine screws 10mm for X and Z axis

12 – M3 washers

Recommended Stepper Motor Drivers:

3 – MyDIYCNC Universal BiPolar Stepper Motor Driver Modules