A clock that shows no hours, no minutes and no time zone should be useless. Turkish maker Görkem Bozkurt built one anyway, and his Internet Time Clock drifts by roughly ±0.6 units a year, which is better than half the Arduino clocks sitting on hobby benches right now.
The units are ".beats", the leftovers of a 1998 marketing push by Swatch. The company sliced the day into 1,000 equal chunks of 86.4 seconds each, wrote them as @500 instead of 12:00, and anchored everything to Biel Mean Time (UTC+1) so a student in Manila and a student in Zurich would read the same number at the same instant. Nobody adopted it. Bozkurt rebuilt it in hardware anyway, and the result is a tidy little study in doing one job properly.
Inside the build
The brain is an ATmega328P, the same chip on an Arduino Uno, so the whole thing can be programmed with the Arduino IDE and a USB-serial adapter. Timekeeping is handed off to a DS3231 real-time clock over I2C (SDA and SCL, with the usual 4.7k pull-ups), backed by a lithium coin cell so the count survives an unplugged week. That DS3231 is the reason for the accuracy figure: it has a temperature-compensated crystal, unlike the bare 32.768 kHz cans that make DS1307 builds drift minutes per month.
The fun part is the display. Instead of a seven-segment module, Bozkurt hunted down an HPDL-1414 alphanumeric bubble display from the 1990s, which can render the @ symbol that the format depends on. It is thirsty, pulling about 150 mA, so power comes in over USB-C rather than a coin cell. Setting the time needs exactly one push button: hold to enter adjust mode, tap to step the .beats, hold again to fast-forward, then walk away and the value writes back to the RTC.
Build it yourself
Nothing here is exotic. An ATmega328P or a plain Uno, a DS3231 module, a CR2032 holder, one tactile switch and a display of your choice will get you a working prototype on a breadboard in an evening. The math is four lines: read UTC from the RTC, add one hour for BMT, convert seconds-since-midnight to .beats by dividing by 86.4, print with an @ in front. If you cannot source an HPDL-1414, a 4-digit TM1637 module works for the digits and you can silkscreen or 3D-print the @ next to it.
The gotcha most people hit is forgetting that the DS3231 stores wall time, not UTC offset, so set it to UTC once and do the +1 in code. Full build notes and the PCB are on Hackster.
Originally published on blog.circuit.rocks.
Top comments (0)