Odd Lot

   Sing 79-81


   Replacing the Battery in a Sonicare Toothbrush

   Replacing the Battery in a TI-59 calculator

   An Analog Digital clock

An Analog Digital Clock

This project began when I saw the web page of the $1800 McIntosh MCLK12 clock. For those not familiar with McIntosh, it is a high-end audio company that sells extremely expensive audio gear. Their clock has 2 analog meters made to neatly match the rest of their product line in both appearance and price. I don't have $1800 to spend on a clock but I do have access to old style analog meters. I finished this in early 2017.

This clock consists of a few simple parts. The heart of the timekeeping is an Arduino compatible Feather board sold by Adafruit.com. Rather than use the embedded clock in the Feather, I opted for a high precision RTC Feather Wing. Check with Adafruit.com to see their latest product offerings. Other electronics components used include (I2C) digital potentiometers, discrete resistors and panel meters.

The meters came on a grey panel and were purchased at a flea market - $20 for 5 meters or $4 each. Each meter is different - it's made to measure either current or voltage of different ranges and types (AC or DC). I had to gut the internal components inside each meter and create an external resistor network to allow the digital pots to control each meter accurately. I retained the original grey panel in the final case. New analog meters can be costly. Aside from the flea market, check out garage sales for unwanted electronics. I've recycled analog meters from cassette tape decks and voltmeters.

I'm not going to provide schematics for my clock - if you're interested in making something similar, chances are your meters will be totally different and will require your own custom circuit to interface them to the Feather board. I'll go over what I did briefly but be aware that a knowledge of electronics is necessary.

Above is the front view of the completed unit. The stains on the panel's metal surface are remnants of its past use (wherever that was) so I didn't try clean it off. From left to right, the 5 meters give the Day (Sunday to Saturday), Hour (1 to 12), Minute (0 to 59), Second (0 to 59) and AM/PM. Shown is (roughly) Wednesday 10:10:03 PM.

Here's a side view. The unit measures roughly 17-1/2 inches wide, 6 inches deep and 4-1/4 inche tall. The side panels are sold mahogany. The bottom is 1/4 inch hardboard. The top and back is bent sheetmetal.

Here's a back view. Four screws on the top and two on the back hold the sheetmetal to the sides. The only outside connection is a micro-USB connector. This provides both power (under normal use) and a programming inteface (for software updates). Power is supplied by a wall-wart USB power supply - the kind used to charge cell phones.

This is a what the insides of a meters looks like. Naturally, your mileage may vary with yours. This one says "Motorola" but I believe the manufacturer was actually Simpson. The circuitry inside the meter makes the meter measure DC milliamps up to 250 mA. The existing faceplate are thin metal and held by 2 screws near the bottom. To change the looks all I had to do was reverse the plate and glue on a new scale printed onto regular paper. The actual lettering was done with a scanned faceplate and edited in Photoshop.

The view inside the box reveals the digital nature of the clock. The five meters each have 2 bolt connections. All the electronics sit on a single perforated board. At the center is the Feather Arduino compatible board from Adafruit and the precision clock Feather Wing above it in a stack. The round backup battery on the Wing of the clock is visible.

Now comes the fun part. First we'll look at the right side. The 2 vertically mounted 16 pin DIP parts are DS1803-010 dual digital potentiometers. These are connected to the Feather via the I2C bus and provide 256 steps from 0 to 10K ohms. The horizontally mounted 14 pin DIP part is an LM324 quad op-amp. Together, these three parts allow the control of 4 meters. The fifth meter is controlled through an additional DS1803-050 (50K digital potentiometer) and LM324 on the left side. Also visible on the right side are four blue trimmer pots. These, in conjunction with some hard-to-see resistors, provide the voltages that drive the meters.

A quick theory of operation: the software selects a digital pot to update by writing a pot value to the correct I2C address of that pot. The value to be written is driven from a lookup-table that is calibrated for that meter and its network of resistors. This is time consuming but luckily only has to be done once. For meters that go from 0 to 59, it means tweaking 60 values. The meters are generally fairly linear but to get the best results, I found the lookup table to be better than relying on linearity. The pot sits between 0 and +5V so that's the range of its wiper. This wiper is used by the op-amp at the (+) input. Each op-amp is wired as a non-inverting unity-gain buffer to drive the meter (the digital pots can't drive them directly). The trim pot and other resistors serially connect the output of the op-amp to the (+) terminal of the meter and reduce the voltage presented to the meter as necessary (this requires some trial and error when working with unknown parts). The meter's (-) terminal goes to a common ground. Repeat this once for each meter.

The last piece of the puzzle is the software. Most of it is pretty straightforward. The only tricky part was writing the interface to the digital pots using the existing I2C library. The code loops periodically to update the meter a few times a second; most of the time it's pausing. At power-up, the code looks for input from the serial port. If none is found after a timeout period, it reads the contents of the clock chip on the Wing and uses that. If there is user input, it decodes the string, sets the clock chip and that becomes the new starting time. Daylight savings time adjustments are pre-programmed into a table for many years to come - this was easier than calculating the actual days each year.

That's it. This was my first Arduino (compatible) project and I had a great time building it. It took quite a while to build mainly because I slowly scavenged meters over many months from different sources until I lucked out and found those 5 meters in a panel. This also means I have a bunch of odds and ends meters looking for a project.

So what's next? Since the digital to analog interface using the digital pots and op-amp can easily be re-used, I have a pair of VU meters recycled from some old stereo equipment that could make an Analog Digital Weather Station to display temperature and barometric pressure.



Note: The contents in these pages are provided without any guarantee, written or implied. Readers are free to use them at their own risk, for personal use only. No commercial use is allowed without prior written consent from the author.