How it works

The Arduino system makes this really simple to implement. The Arduino board provides the computing platform, the Adafruit Ethernet (XPort) Shield provides a simple way to connect to an SNTP time server, and the Adafruit Proto Shield makes a good (well, workable) platform to build the interface circuitry for the analog meters.

The only real hardware design is a simple driver board for the meters. You can look at the schematic here. The driver board contains three meter drivers, one for each meter connected to 3 different PWM channels on the Arduino board. Each meter driver has two potentiometer adjustments: one is the "ZERO" adjustment to set the meter to read '0', and one is the "MAX" adjustment to set full scale deflection on the meter.

Each meter driver is a single opamp used to sum two signals, scale them and output the result to the meter. One signal is a voltage set between -12V and +12V (actually less because of the resistors on the high and low side of the adjustment potentiometer), and the other signal is an integrated voltage of one of the PWM outputs of the Arduino board. By loading a value between 0 and 255 in the Arduino's PWM register for that channel, you output a DC voltage between 0V and 5V. The opamp sums these two voltages together and presents the voltage to the analog panel meter.

Using three PWM outputs from a microcontroller isn't the 'normal' way to do a multichannel sample and hold. Normally, it would be built with a single sample and hold circuit, multiplexed with a computer controlled analog switch (like a 4066) to the proper meter. This way you would only need one PWM channel and two digital bits to control up to 4 meters, but since I was committing an entire Arduino to this project, it was just easier to build 3 sample and hold circuits using a single quad opamp, and a few passive components.

The only process that took some time was finding and modifying three analog panel meters. I found three surplus, NEW IN BOX Simpson D'Arsonval meters. The ones I found were part#17479 with a 0-5 AMP scale (see the Pictures tab for a photo of the pre modified meter). The 0-5 AMP meter meant there was a shunt between the input terminals of the meter that needed to be removed and a new resistor needed to be put in series with the movement. After carefully removing the meter from its case, clipping the shunt and replacing the resistor, it was time to create a different meter face.

I scanned the meter face, opened the scan file with Photoshop, and disassembled the markings on the meter face to include Photoshop layers for the tick marks, numbers, and other markings. After manipulating the layers, I was able to rebuild the markings to have a linear "HOUR" scale between 1 and 12, and linear "MINUTES" and "SECONDS" scales marked from 0 to 60. Clearly the 'over the top' exercise was disassembling the "Simpson" logo and using parts and pieces of it to reassemble it to say "SpectraBlocks". If you look closely, you'll find all the segments of the letters that make up "SpectraBlocks" in the "Simpson" logo. Photoshop is SO COOL!

After gluing the new meter faces on top of the old meter faces, I carefully reassembled the meters in their plastic enclosures and connected them to the driver board.

I built the driver circuit on the Proto Shield, and although I think it's kind of an awful prototyping environment, it works ok as long as there isn't much to change. Moving parts around on a protoboard is a painful exercise. BTW, it's not THIS specific protoboard that I dislike specifically, but ALL protoboards with drilled holes in a grid pattern. There must be a better way.

The next step in this project is to find a suitable enclosure. I'm not sure which direction I'm going to go, but I was thinking a rectangular plexiglas box that would look great on a desk.

More to Come!

Michael