Michał "lcamtuf" Zalewski's "Nicer Voltmeter Clock" Boasts Continuous Movement

Powered by a Microchip AVR, with no digital to analog converters in sight, this desk accessory is a slick way to tell the time.

Gareth Halfacree
3 seconds agoClocks / Displays / HW101

Security researcher Michał "lcamtuf" Zalewski has revisited an older project to give it an aesthetic overhaul — coming up with "a nicer voltmeter clock," he explains.

"As the name implies, these clocks use analog panel voltmeters instead of traditional clock faces to display time. I didn’t come up with the idea, so I never really blogged about the design; I just built one and kept it on my office desk," Zalewski says of the project's original incarnation. "The idea endures, but most of the designs I see on the internet are needlessly complicated and not all that pretty, so when I decided to build a revised design, I figured it might be good to document it better."

A voltmeter, as the name implies, is a device designed to measure voltage. A classic analog voltmeter has a needle that moves across a dial according to the amount of voltage it receives — and if you hook it up to a microcontroller's analog output or a pulse-width modulation (PWM) pin, you can control where it points yourself. Swap out the dial's face for one with hour markings, and you've got a basic clock; add two more voltmeters for minutes and seconds, and you've got a fully-functional desk clock.

Zalewski's second-generation voltmeter clock design uses a curved housing, designed in Rhino3D; a trio of low-cost analog voltmeters serve as the hour, minute, and second dials, with replacement faces printed on adhesive paper. "The new hour gauge has 13 divisions, from 0 to 12, while the minute and second templates have 61 divisions, from 00 to 60," Zalewski notes of one change from the original clock's design. "This is because I wanted to implement continuous motion for each hand; this meant that at 11:30, the hour dial couldn't be just stuck at 11; it needed to be moving toward the twelfth division, even if it was never to reach it."

The housing, CNC milled from maple lumber, includes recesses to hide what Zalewski describes as the "hideous plastic flange" included in the design of the cheap voltage meters used, while the side wall is curved using a series of notches cut internally. "The circuit is far less interesting and took just an hour or so," the maker adds.

"I grabbed the venerable [Microchip] AVR128DB28 MCU, powered it off a wall wart, interfaced it to an 8MHz crystal (ECS-80-18-4X-CKM). The panels are connected to three digital output pins (PC0, PC1, PC2). Finally, two input pins (PD6, PD7) are interfaced to two small pushbuttons mounted on the back and used to set time. Note that the circuit doesn’t required digital-to-analog converters or any other additional components to drive the meters; instead, I'm just using a relatively high-frequency, one-bit digital pulse train."

The project is documented in full on Zalewski's website, along with printable dial faces and the source code under an unspecified open source license.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles