So what did I choose? Well, the primary options for those of us retrofitting machines with PC based controls are Mach3 (Windows XP based and requiring a paid license -- don't ask me how much, I never bothered to find out) and LinuxCNC (formerly EMC2). As a MythTV user, I already had some Linux exposure, and liked the Ubuntu distribution for its ease of use. When I found out that LinuxCNC ran on a real time version of Ubuntu, I was already sold! Plus it's free! I've now had a version of MythTV running on Ubuntu 10.04 for over 2 years and have not had a hiccup, so gave me confidence that I could get it working without too many headaches.
I researched parts selection for some time, ultimately deciding to make every effort to use the existing spindle speed control, spindle brake, and other external inputs from the machine rather than exclusively use the pc interface. This required figuring out which wires did what. Ultimately, the machine schematics were very helpful, but some probing was still required. With all this in mind, it was clear that I needed stepper motor drivers to run the mammoth NEMA 42 steppers, a power supply for the steppers and the interface board, power for the 24V DC solenoid valves, and power for the lubrication pump and spray mister (120V AC). I also required an interface board to connect all these signals to the computer and a Variable Frequency Drive (VFD) to turn my single phase power to three phase power.
For the stepper motor power supply, I chose an Antek 70V 20A (1500 Watt) power supply. This is the biggest wattage they make, and 70V leaves a reasonable margin for the Gecko Stepper Drivers' max voltage (80V). More on them in a bit. I chose 20A so that I could run up to 5 stepper motors quasi-simultaneously without overload. See the Gecko manuals & documentation for calculations on this. You may need less if you only ever run 3 or 4 motors. I chose a version that also had a 2A unregulated 24V DC output, perfect for operating the solenoid valves (that each take roughly 6 Watts, or 0.25A at 24V) and a 12V regulated output, also perfect for supplying an interface board. The interface board would need an on-board regulator to bring that 12V input to 5V, but many boards have that functionality or I could easily build my own. After playing with electronics for a while you tend to have 5V regulators in your 'inventory.' It's a very handy voltage!
I also needed 120V (nominal) and I only had single phase 240V wired to the machine. Incidentally, the machine runs on 30A, 240V. This is plenty of power for our needs, but 120 is not available directly from the mains. So I chose another Antek toroid which would transform the 240V input into 120V output, allowing me to run some relatively low power devices like the lubrication pump and the spray mister. This version also had 18V AC and 12V AC windings, but I didn't need them and just tied them to terminals on a terminal strip to secure them.
Stepper Motor Drivers:
I chose the Gecko G203V's for ease of use, low price, and acceptable performance ratings. They will operate the steppers at up to 7A, 80V. The original Bridgeport motors were wired in series configuration, with 8A and 55V. Thus, the low speed torque is marginally reduced (because it's current limited, not voltage limited -- see the Gecko manuals for a fuller explanation) when the motors are run in series, but the high speed operation is slightly improved due to the higher voltage. In parallel, the low speed torque is substantially reduced due to the lower impedance of the wiring. However, the Geckos are simple to use, cheap, and readily available. I could find numerous affirmations that they ran the Bridgeport steppers just fine. If we wanted absolute maximum speed and power we'd be using servos but that would cost substantially more, and is out of scope for this project! Although the standard NEMA 42's are relatively torquey, should we ever need better performance, we can always retrofit NEMA 34's which have far lower inertia and generate superior torque as compared with the original steppers. A true win-win, and only ~ $120 each plus shipping.
These also have 10 micro steps by default. Initially I was concerned because I knew that these motors would not respond well to microstepping, as there is a high detent torque between motor steps. However, I realized that if the machine would only move accurately between one step and the next, it won't be any less accurate than having whole step drivers. At present, 1 step = 0.001" so any distance less than 0.001" is not considered reliable. Certainly no worse than the original control!
Here's the million dollar question: Do we use a simple 'breakout board' and rely on software stepping of the parallel port, or use a hardware solution? I chose to use a hardware based solution from Pico Systems called the Universal Stepper Controller (USC) board. The USC board offers a number of advantages. First, if your computer has a lot of variation in its timing (often from video card drivers, etc), there is a risk that the machine will lose steps because it can't give the next step before the inertia of the table pushes past the stepper's holding torque (when moving). If you set the pulse speed slow enough that this is unlikely, then you may not be able to go as fast as the machine is capable of moving. Further, a single parallel port (though you can add more) is limited in the number of inputs and outputs it can provide. I like to have total control, so I didn't want to compromise on I/O. It is also possible to add a second USC board through the same parallel port connection, further expanding the available I/O. Just the ticket! I must also add that Jon Elson of Pico Systems was extremely helpful throughout the process. His customer service is excellent and he is very knowledgeable. You can't go wrong.
I also purchased his 60V 15mA Solid State Relays (SSR's) for control of the VFD's direction inputs. Finally, I sprung for the Pico Systems DAC board to (ultimately) enable frequency control of the VFD, which will enable total speed control! This outputs an analog signal from 0-10 volts upon command from LinuxCNC. The VFD, when properly configured, will read this voltage and adjust its output frequency. This is one easy way to adjust speed, and can be used if you don't have the air powered spindle speed option. I plan to mount an encoder on the spindle and use a hybrid method to achieve spindle speed control, using the solenoid valves and the VFD to achieve automatic speed adjustment. This is a bit more difficult than the standard closed loop spindle speed control examples shown on the LinuxCNC wiki, and may require that I program my own LinuxCNC component. We'll see, I haven't gotten there yet!
Variable Frequency Drive:
What better way to get rid of your noisy rotary phase converter than to use a VFD? I could have gone cheaper, but Hitachi drives have an excellent reputation and the WJ200 series are fully featured. They should enable virtually any function I could want, including analog speed input, and digital direction control. Running a three phase motor on single phase power has never been easier!
I've attached a spreadsheet in PDF form of all the purchases I made to complete the project. I can say that I could have bought more cheaply in some areas, but I tend to try to do it right. Of course, I included things like a full case of both cabinet filters, which certainly adds to the cost, but isn't strictly necessary. Keep in mind that it's probably an item you wouldn't think of changing, so it doesn't hurt to factor it into the plan. I suspect, for me at least, that 12 of each will be a lifetime supply!