Bausch and Lomb XY Plotter

Last spring, my college was cleaning house and a Bausch and Lomb analog XY plotter found its way into the junk pile. Branded as a "Recorder 2000", the plotter was originally part of tensile strength measurement system in the Mechanical Engineering department. Several years ago, the system was overhauled and the plotter was swapped out for a data acquisition system that allowed test results from the machine to be recorded directly to a PC; a much more convenient option than the plotter. No one else seemed to be interested in adopting the machine, and I couldn't stand to see it end up in the dumpster, so I gave it a new home. It sat in my apartment for ages before I finally had a bit of time to play around with it in December 2012.

The bottom of the machine had three banks of numbered screw terminals but no indication of their function. Much to my surprise, I wasn't able to find a manual or wiring diagram on Google, so I ended up having to try and reverse-engineer the machine connections. A ±10VDC signal is used to control the X and Y movements of the plotter. 0V on the "X" terminal will bring the arm to dead center, +10V to the extreme right, and -10V to the extreme left. The "Y" axis works the same, just with a different set of terminals.

Since the ultimate goal is to interface the plotter to a computer, a means of generating analog control voltages from a set of digital coordinates must be realized. Since I already had one on my desk at the time, an Arduino seemed to fit the bill perfectly. The Arduino has a handful of PWM (Pulse-Width Modulation) channels that can effectively generate analog voltages when some filtering is introduced. With a pair of LM741 op-amps, I breadboarded two identical active low-pass filters (Sallen-Key) which produced nice clean DC voltages in response to the PWM signal generated by the Arduino.

At the moment, I can drive the plotter in both the X and Y directions for half of the axis travel available on the machine. To get full left-to-right travel a -12V supply is needed to power the op-amps so that a 20V swing is possible (giving the op-amp 2V of headroom). Ultimately I'd like to design a "shield" that contains both the analog driving electronics and a pair of switching regulators to generate +12V and -12V rails from the +5V supply of the Arduino. The plotter control lines draw practically no current (<1mA), so the only real concern would be noise from the supplies getting fed back down the USB cable to the PC.