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 25

DIY CNC Part 3: Y / Z Carriage and Spindle Mount


I received the steel rods from MSC Industrial Supply.   Sure I could have purchased the rods from a local hardware shop but I did not want to take the chance on getting rods that were damaged.  I ordered 1/4 20 threaded rod and 3/8 precision steel rod for the project.  The rods are 36 inches in length and will be used to transport the x table and the y and z carriages.  In the previous post I mentioned I made the base of the table to be 36 inches to avoid having to make three cuts.  With the rods being 36 inches in length I will only have to cut the rods for the y and z carriages and not for the x table.

For this part of the build I am using:
6 wing nuts purchased at Lowes
misc screws for anti-backlash mechanism purchased at Ace Hardware
1/2 inch quality plywood
wood screws purchased from Home Depot
2 – 1/4-20, threaded rod MSC Part # 06050108
4- 3/8, steel rod MSC Part # 06010243


– 3/8″ precision steel rods from MSC Industrial Supply

I tested the rods in the bearing subframes and clamped the machine together to make sure the measurements were correct and the bearing subframes would move freely without binding.

3/8″ precision rods and the 1/4 20 threaded rods dry fit on the base.

With the dry fit complete I moved onto building the Y and Z axis backplates.

Both Y and Z axis backplates are built with quality 1/2 inch plywood purchased from Home Depot.

Y axis backplate with Z axis NEMA motor mount

After a mock up of the Z carriage I found the bottom Z plate to be flimsy.  I modified the bottom plate by drilling a 3/8 inch hole completely through the bottom plate and attaching a secondary piece of 1″ x 1.5″ x 1/2″ wood.  The Z bottom plate was then screwed to the inch and a half wood and secured in place on the Y axis backplate temporarily.  I will have to install the anti-backlash mechanism and the spindle mounts on the Z axis plate before final assembly.

Z axis bottom plate

With everything looking and coming together nicely, it was time to build the spindle mount.  The spindle mount was constructed out of 1″ x 3″ pine and cut to the same size as the Z backplate.  It was then drilled with an inch and a half hole saw drill on the drill press.  Two mounts were made and one was cut in half to provide the upper mount.  A 3/16″ hole was drilled along the length of the mount so the spindle can be secured with a zip tie or something similar.

Dremel used as the spindle

Once the spindle mount was complete, it was time to construct the anti-backlash mechanisms.  The anti-backlash mechanisms are used on all three axis to eliminate any slop in the threaded rods.

Anti-backlash mechanism

They were constructed out of the same sheet of plywood I had purchased to make the X table and other parts.  Although only three are needed, four pieces were cut so I could clamp two at a time for drilling.

Wood used for the anti-backlash mechanisms

A 1/2 inch hole was drilled down the center of the two pieces.  This will allow for the threaded rod to clear and house the wing nuts.

1/2 inch hole drilled down the center of two pieces

With all the pieces drilled, I assembled the three anti-backlash mechanisms using the wing nuts.  I had installed compression springs in between the wing nuts however there was enough tension on the threaded rod I removed the compression springs but allowed for enough tension/room should I decide to re-install the compression spring later.

Anti-backlash mechanism

The next part of the build, I will assemble the X table rods and install the gantry.

Until then,

Happy Building!