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.
Most 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.”
With 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.
The 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.