Spinning AC mains frequency display

The guys at dynamic demand have a meter showing the frequency error of the UK AC mains, which shows typical values ranging between 49.9 and 50.1. A digital count will do that a treat, but the trouble with digital displays is they have no soul, IMO.

Frahm vibrating reed frequency meter has a steampunk charm of its own, but lacks precision to < 1%

In the past there were all sorts of weird and wacky methods of displaying measured variables, analogue sensors sometimes wear their heart on their sleeves, like the vibrating reed frequency meter.This doesn’t have the frequency precision needed, however.

The click of a Geiger counter is well known, but old-school Geiger counters also had dekatron tube displays, which whizzed round faster at high rates and inched round at slow rates. These tube displays, where a red glow would move clockwise round the tube, was a good, intuitive indication of count rate. I wanted something like that.

So my idea is for a rate counter. A single ring of red LEDs, one of which is lit. If the mains is too fast the lit one will progress clockwise, if too slow, it will move anticlockwise. A set of red LEDs on black perspex is hard to get a good picture of, it looks better than that in real life. Normally it spins a lot faster, I had to wait for a point close to 50Hz to get both too low and too high frequency.

This is built largely out of a 16F628 PIC. The mains is run through a wall-wart 9V transformer, which is an increasingly rare beast nowadays. Often old land-line phones and answering machines had low-voltage AC power supplies, but switch-modes are far more common now.


The 9V is half-wave rectified, clipped to 2V with a LED and sliced with the comparator in the PIC, with the voltage regulator module providing the other side. Internally the transition copies the state of a 16-way counter fed from a 6400Hz clock derived from the 4MHz crystal. There isn’t an integer relationship between 4MHz and 6400 Hz so I used Roman Blacks Bresenham timing ideas to toggle a divide-by 76 and 77 counter using TMR1, I confess I got it roughly right by calculation and then tinkered with the ratio while watching the dynamic demand display to fine-tune the 50Hz point. My null is ever so slightly higher than theirs, but it’s good enough IMO.

I like the effect, it’s more for its ornamental nature, it’s not like I will be calling up Sizewell to throw some more fuel pellets into the reactor, but it’s a sort of connection with what my fellow Britons are up to and there’s a surprising amount of variation moment to moment. It will be interesting to see if a ad break in a big TV program is perceptible, the speed of rotation reacts quickly to frequency changes, a little faster that dynamicdisplay’s meter

Code and schematic

at Github

Over at Return to Zero they’re counting over 100 cycles to get a digital display. Which is fine as far as it goes, but doesn’t have the at-a-glance feel of the spinning LED display IMO. I tip my hat to RTZ for accuracy, if you need to really know what the frequency is, there’s nothing wrong with that solution at all.

laser cutting rather than drilling

Construction was Veroboard and because I’m far too imprecise a craftsman to make the display right I used Razorlab to laser cut the holes and panels from black Perspex, controlled by an Inkscape drawing. That worked remarkably well; I’m tempted to make more designs that way and it may be a solution for decent looking front panels too. The display really had to be regular and even to look any good, and Inkscape made that easy.

Leave a Reply

Your email address will not be published. Required fields are marked *