The Bridgeport BOSS

The Boss
The Bridgeport BOSS came to me filthy, outdated and unloved. The original machine was equipped with a tape reader and a gigantic steel box to protect the associated hardware. Somewhere in its life, the controls had been upgraded to read data from an RS232 serial type connection, so data could be sent to the machine from a standard serial port and terminal software. This left the cavernous tape reader box mostly empty, with the exception of a small steel panel of toggle switches, and a corroded RS232 socket. The original stepper motors were installed, but covered in 30 years of industrial grime and metal shavings. It was a 7 foot, 4000 pound beast, and 4 inches taller than my garage. All of that was about to change. My goal was to update the machine to a modern PC based control system, updating the hardware and making everything work better then it did originally. I wanted it to be fast, reliable, simple to use, 2 phase power, quiet, and accurate. All while maintaining the original Bridgeport build quality and mechanical reliability.
The Process

- Stock Bridgeport and Tape Reader
The Bridgeport controls were immediately torn down on arrival. The entire three phase electronic control box was gutted. Every complicated and expensive looking piece of hardware was torn out without regard. Each of the thousand carefully soldered wires was cut and torn from the box. Everything was removed, and the copper, aluminum, and misc hardware was sold for scrap. I was left with an empty steel cabinet, a box of gigantic (and potentially lethal) capacitors, and no hopes of running the mill as it was originally designed. The Bridgeport mill was originally equipped with a three phase 1.5Hp motor. Three phase motors are preferred in industrial applications because they are more efficient, more reliable, and emit much less noise than comperable DC or single phase motors. Unlike a DC motor, however, the speed of the motor is determined not by the current supplied, but rather by the frequency of the grid power. At 60hz, a standard 3 phase motor spins around 1800rpm. Always. For the Bridgeport, the speed at the spindle was controlled by a variable speed belt drive located in the machine head. By varying the drive and driven pully diameters, the spindle speed could be adjusted from a few RPM to over 4000rpm. The spindle speed could be increased or decreased by swithing a lever on the head, which then adjusted the speed up or down by a convoluted series of screw drives, worm gears, levers, chains and an air powered motor.
The Variable Frequency drive

VFD Spindle Control
Nothing short of digital magic. The variable frequency inputs line frequency 220 and outputs 3 phase power, at whatever frequency you choose. The output frequency can be adjusted by a digital readout on the drive itself, and controls the motor speed, from zero to the max RPM. The readout on the front of the display shows the motor RPM, and can be adjusted with the control buttons mounted on the VFD with an external voltage signal. Now I could adjust the speed of the motor itself, and no longer needed the convoluted mechanical speed controls. I set the variable speed belt somewhere in the middle range, and remove the mechanical speed controls. The machine was alive, and beginning it’s transformation to the digital age. The entire electrical control box, nearly 500 pounds of copper, aluminum heat sinks, and mechanical relays, had been replaced by a 4 pound hunk of computerized magic.
The Motors
Stepper motors are great for stepping. One pulse at a time. Step by step. They will get you there. Eventually.
But I didn’t want to get there. I wanted to get there fast, with power to spare.
Early in the project, I had chosen to use servo controls, which use a digital encoder on the motor shaft to relay motor position to the controlling computer and coordinate the motion of the motor. Servo motors can move faster, because they are not required to move one step at a time. You just spin them, and monitor the shaft encoder to calculate the position, and stop at the right place. If everything is tuned right, the motors will move quickly and accurately to the requested position.
The Bridgeport was a beast, and it was no trivial thing to move the bed, especially if I wanted to do it fast. When I started doing the research, most of the retrofits had used stepper motors, which are rated by their torque and holding power. Sure, you can size the motors based on torque alone, but when it comes to outright speed, we are talking about power, and if I wanted to be competitive with the modern knee mills, I was going to need something with at least 0.7kW of power. That is a big motor to equip with an encoder and fantastically expensive on a limited budget. DC motors equipped with encoders and capable of moving this machine could easily run $1000 or more per axis.
The Brushless Servo

Brushless Servo
The brushless servo motor kept showing up on ebay cheap. Gigantic powerful surplused motors for less than $100. Not really understanding the difference, and having a soft spot for (perceived) good deals I bought them. One at a time, until I had all three axis covered. I modified the existing belt pullys to fit the new motors, and bolted them to the mill. Three beautiful anodized brushless motors for my mill, and no idea how to run them.
The brushless servo motor is an interesting beast. It is essentially a three phase motor, the speed of which is controlled by the frequency of the supply power. There are different types, depending on how that power is supplied (trapezuidal, sinusoidal, PWM) but essentially they all work on a similar platform. Brushless servos have the same advantages of three phase motors, in that they lack contact brushes (which can deteriorate over time), they are quiet, they are cheaper to manufacture, and the can generate a great deal of power in a small package because the heat generating wires can be located on the outside surface of the motor. All things good.
The complexity comes in the electronic controls needed to run these motors. Servo motors are required to start and stop suddenly. Three phase motors are much better at running continuously, but need some help to get going (generally by use of a capacitor). The brushless servo has managed to bridge the gap by adding commutation capacity to the encoder. The commutator tell the the motor control where the motor shaft is positioned before it starts, so the drive can supply power to the correct two legs (of three) in order to get the motor moving with full torque.
So in order to make my motors work on my mill, I needed a set of motor drives designed specifically for the brushless servo motor.
The Drives

Parker TQ10 Axis Drives
Most of my ebay purchases are accidental; a last deperate bid after losing another auction. I had been bidding on brushless motor drives for weeks with no luck, and finally managed to pick up a pair of Parker TQ10 drives for less than $100. More amazing was the fact that they worked, and supplied adequate power to drive my motors. The parker TQ10 was designed drive the motors based on a -10v to +10v signal, so I could get the motors to spin with an external voltage signal. My PC, however, was not equipped to send a -10v to +10v signal. In fact, most computers can’t. In order to send -10v to +10v from a PC I would need a digital to analog card ($800 yikes) which added too much cost and complexity to the project.It was after a bit of research that I found a lifesaver in the skyko pixie controller (www.skyko.com). The pixie can take a digital step pulse generated by a PC based CNC controlled such as EMC or Mach3 and convert it to a -10v to +10v analog signal for the brushless servo drive. The pixie actually handles all of the servo tuning, and did a fantastic job with my mill. With three pixie controllers and a little tuning, I was able to assemble my mill and get it under the control of the PC based CNC control.
**Update** Since Skyko no longer offers the pixie controllers, and I had a couple of questions about where they could be found, I wanted to let readers know that I figured out a low cost alternative. Take a look at my article on the structure light scanning rig, and it glances over the use of an Arduino PLC to control a servo motor for my rotary table. The principle is almost the same. An Arduino ($30) can be used in place of the Skyko pixie to read encoder signals from the motor, and output a +0-5v analog signal and a digital (+5v/0v) direction signal. These signals can then be routed to a simple motor controller IC (LMD 18200 or similar) to output a +/-10 V signal for the brushless motor controller drive. There may be better methods, but it certainly is cheap, and it worked pretty well for my rotary table ( I drove the motor directly off the LMD 18200, rather than adding an extra servo drive). I used one Arduino to drive a single rotary axis, but theoretically, you could program a single Arduino to run three axis, if you are really determined. This would be a good method for driving low cost, low power devices such as 3D printers.**
PC Control
There are a number of PC based CNC control software packages on the market. They work by sending and receiving logic signals through the PC parallel port, which can then be interpreted by seperate motor control hardware to drive the motors. The most basic of these software controls are designed to drive stepper motors, which require two signals to operate. The first signal, direction, tells the stepper drive which direction to rotate (clockwise or counterclockwise) which translates to positive or negative linear travel on a CNC. The second signal, step, tells the motor to move one step. For a typical step motor with 200 steps per revolution, 200 step impulses completes one 360 degree rotation.
My system was a hybridized stepper/servo system, which required step impulses from the computer, but translated those into servo commands at the pixie controller. This system had all of the advantages of the servo control system (fast and quiet, with no chance of missed steps) while maintaining the simplicity of the step/direction interface from the PC.
I chose to use an open source platform for PC based machine control called EMC. It is based on Linux, and can be installed as a stand alone operating system, which means that the PC I had devoted to use in the mill is designed specifically for CNC only, and will not be distracted by too many other non-CNC processing tasks that could put the machine operation at risk. The open source platform means that lots of people have contributed to it as a labor of love, and the results are quite impressive. It is also completely free.
Once installed, the software can be configured to output signals through the parallel port to control each of the axis independantly. The current distribution features Axis as a GUI for the CNC, and it is remarkably simple and intuitive. It can take G code on the fly, or read prerecorded NC files. If working with an NC file, Axis shows a fully manipulatable 3D wireframe of the machine tool path and the current location of the tool as it runs through the program.
Electrical Gremlins
I have yet to see a complicated mechanical device work correctly the first time it was put to use. Actually, I have yet to see a simple mechanical device work perfectly either. The Bridgeport was no exception.
My first issue was incessent faults on the servo drive. The drives were designed to drive 5 amps on average and up to 10 amps intermittantly. The drives faulted and stopped working if the motors were driven to 10 amps for more than a few milliseconds. That was annoying, and kept stopping my mill in the middle of long and complicated programs if I ran them too fast.
There were a number of settings on the drive that could be changed by toggling little dip switches back and forth, and I spent hours fiddling with them to adjust them to match the motor charactaristics, which had no effect. In the end, I found I could turn the overcurrent protection off, which allowed my drives to overcurrent for short intervals without stopping the mill. Considering the stop and start nature of the mill, this is not nearly as dangerous as it may sound, and the drives seldom peak to 10amps under normal operation.
Servo motors require a bit of PID (proportional, integral, derivative) tuning in order to adjust their performance to the machine. While it may sound impossibly difficult, it is relatively easy if you keep it simple. The tuning is analagous to the tuning of a mechanical system consisting of a mass, spring and damper. The P (proportional) is equivalent to the Spring, the I (integral) is equivalent to the mass and the D (derivative) is equivalent to the damper. So in order to make my massive Bridgeport move and stop quickly, I needed a massive spring (high P values) and medium sized damper (mid range D values, the Bridgeport had lots of internal friction and damping charactaristics) and no additional mass (the Bridgeport was heavy enough). I adjusted the PID valued using a graphical output of the Pixie controller, and tested until I was satisfied with the performance.
Vibrating motors, for example, were mechanically equivalent to too large a spring, and could either be fixed by reducing the P (spring) or increasing the D (damper). Slow systems needed stiffer springs to move faster (higher P value). This analogy isn’t perfect, but it is a quick way to make educated adjustements to the PID values in order to make the system work correctly.
I had and continue to have some issues related with grounding. There are lots of very tiny electrical signals moving between the motors and the computer, and any errors can translate into big mistakes in the mill. I had a particularly annoying issue in which the mill would wander off course very very slowly when it was supposed to be still. I was machining a simple part using the manual controls to cut straight lines, and I noticed my lines weren’t straight. I finally stopped the mill and watched it, and very slowly, it would jiggle and wander about. Not good.
It turns out I had poor grounding on my parallel breakout board, which was sending confusing signals to the servo motors. I added a wire to ground to the chassis, and the problem went away. To this day, I still see some indicators of poor grounding, and am working to install a proper ground in my garage and correct some of those issues.
The Results
The Bridgeport BOSS was no easy feat, and was retrofit over the course of a year. The total dollar investment is somewhere around $3000 which includes the purchase price of the mill. That cost also discounts the resale of scrap metal and valuable components no longer used in the new configuration, such as computer boards and the old stepper motors. That cost does not include my time, which was easily 300 hours, but included a whole lot of learning and quite a few mistakes, which I consider invaluable in the design process. A big hunk of that time was research and shopping for good quality surplus parts at a good price. The alternative is to spend the money and get the parts you want to start with, and save that precious free time for your hobbies. My hobby happened to be retrofitting a Bridgeport CNC.
Over all the results were excellent. The machine is very fast, and can easily traverse 120 in/min or more for rapid traverse. That is a lot of weight to move that fast and the machine was never designed for anything more then stepper motors, so I generally run it at 30 in/min or less. The brushless servos are nearly silent, and are not under any strain at all. Watching the machine confidently whip out complicated contours under its own power is quite satisfying, and was worth the extraordinary effort.