Track Your Days with a Linear Clock
Even as we return to more normal schedules, the isolation of 2020’s lockdown has changed the way many of us view and experience time. For James Wilson, who posted a linear clock project on his blog jmw.name, it meant it was time to revisit a horological experiment first inspired by Camp Grounded, where time is counted not in hours and minutes but in percentage points of a day.
The clock displays a day as a progress bar, using satellite navigation and astronomy to measure how much of it has elapsed since sunrise and noting the time of sunset as a separate blue dot.
The design features a GNSS receiver to compute time relative to sunrise and sunset; since it derives time from a satellite signal, it never needs to be reset or adjusted. The display is comprised of discrete surface-mount LEDs assembled in a straight row on a circuit board.
To control an arbitrary number of LEDs with a single data line, constant-current shift register drivers are used to light them. The only information the shift register needs is a string of bits, and it holds its state until new information is received, eliminating any need for the display to continually refresh.
The GNSS module and microcontroller occupy separate boards since the GNSS is best mounted horizontally, pointing toward the sky. The particular module used is the SAM-M8Q, which comes with an integrated patch antenna and employs an efficient binary protocol over I2C.
The microcontroller, which performs the astronomical calculations and acts as both I2C and SPI bus master, was chosen from the low-cost STM32G0 series.
The software design relies on astrological calculations based on those in Astronomical Algorithms by Jean Meeus. The sun’s orbital elements are computed based on the date and time obtained by the GNSS, seen as several polynomials computed on the Julian date. Other computations are coordinate transformations performed with latitude and longitude obtained from the GNSS.
As the clock functions, it waits for an interrupt from the GNSS module, then computes the day fraction based on the sun’s position and sends a sequence to the shift register to turn display LEDs on or off.
Given all the recent upheaval, a project like this takes somewhat familiar systems and uses them to create a new sort of clock that can refresh the way we think about time and how we use our days. The sunset indicator, too, adds in a more practical way to see the length of days changing throughout the year.
More in-depth descriptions of the process, as well as the building of a wood enclosure, are available on the blog post.