Glen Akins' Latest Upcycled Aircraft Instrument Shows Your Mountain Biking Altitude Gains and Losses
Playing back recordings from a Garmin watch, this Python-powered project swaps an aircraft's wings for two wheels and a mountain.
Engineer Glen Akins has turned an old aircraft altimeter into… well, it's still an altimeter, but instead of aircraft altitude it displays the altitude gains and losses during a recorded mountain biking session.
"In this project," Akins explains, "I use a Python script and an updated version of my digital-to-synchro project to replay my mountain bike climbs and descents at 60x real time speed on a vintage aircraft altitude indicator. The updated D2S converter fits on a single board and uses three Microchip MCP4802 DACs and three [Texas Instruments] OPA548 power operational amplifiers to produce high-power 400Hz AC waveforms to power and control the servo loop in the altitude indicator."
The altimeter in question isn't something that just accepts a variable voltage, or even a digital control signal via I2C or SPI or similar. Instead, it's servo loop which operates like synchro — a device which looks at first glance like a motor but which links a single transmitter to one or more receivers through an analog signal. "The software and hardware need to generate sine waves to power and control the servo loop," Akins explains, "just like if it were controlling a synchro receiver."
This isn't the first time Akins has upcycled a piece of vintage aircraft instrumentation into something new: last month he reverse engineered an old tachometer and turned it into a CPU usage monitor, after previously developing Microchip PIC- and Raspberry Pi Pico-powered adapter boards for Selsyn-based instrument displays. It's this latter design which served as a basis for the new and enhanced adapter board powering the biking meter.
"The first converter worked," Akins explains, "but it was spread across four boards connected with dozens of wires and was very inconvenient to use. The updated converter consists of only two boards. The first board is an adapter board that routes the [Raspberry Pi] Pico dev board's SPI bus to the second board. The second board is the D2S board containing the DACs, op amps, and passives."
A Python script running on a desktop decodes GPX files recorded from a Garmin smartwatch during a mountain bike outing, extracting the minimum and maximum elevations along with elevations for every point in time of the ride. This is then fed through the Pygame library to create an altitude graph over which a green circle — representing the rider — travels at up to 60x real-time, with each point in time transmitted to the altimeter.
Akins' full write-up is available on his blog.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.