Glen Akins' Synchro-Based Altitude Warning System Gets a Digital Decoder, Written in Python

Eager to make use of a neat piece of aircraft instrumentation, Akins has developed a Python decoder for its twin synchros.

UPdDATE (1/24/2023): Glen Akins has written a detailed blog post walking through the synchro-to-digital project, complete with the creation of a custom alternating current power supply, a sine-wave generator driven by a Raspberry Pi RP2040 microcontroller, and the Python code required to take the input from a synchro and decode it.

"This project has been a very interesting look into the past and at how some aircraft avionics work," Akins notes, "but I would stick to potentiometers and encoders for most of my hobby projects because they’re far simpler to interface to a microcontroller than the synchro transmitter and I don’t need the accuracy or resolution afforded by a synchro."

The full write-up, including source code and schematics, is available on Akins' blog.

Original article continues below.

Maker Glen Akins has been playing with some hardware taken from an airplane cockpit, and to get an altitude warning system up and running has developed a conversion system for its analog synchros — capturing and decoding their position with some clever Python code.

Developed in the early 1900s and first seeing use as a means of transmitting lock gate and valve stem position information to the control desk of the Panama Canal, a synchro looks a lot like a motor — but is usually used on a smaller scale in instrumentation, with a single transmitter controlling multiple receivers connected to dials or other indicators.

The heavily analog technology of synchros means a challenge in interfacing with modern digital systems — requiring a synchro-to-digital converter, which is precisely what Akins has built.

Written in Python on a small form factor Linux machine connected to a Dataq USB analog-to-digital converter (ADC), the algorithm allows a synchro-based altitude warning system pulled from an airplane cockpit to be decoded and represented as a decoded shalf angle on an OLED display connected via an Espressif ESP32 microcontroller.

"The alerter has both fine and coarse synchros," Akins writes. "5k feet of altitude corresponds to one complete rotation of the fine synchro and the OLED displays the decoded shaft angle. I'm ignoring the coarse synchro w/ range of 135k feet. It looks like the coarse synchro moves through 1/7th of 90 degrees [for 0 to 5,000 feet]."

"I'm running the alerter backwards from normal operation," Akins notes. "I'm feeding a 400Hz reference signal from a function generator into the synchro resolver's 2 phase outputs. Then I'm grabbing the signal from the resolver's three phase inputs on the rear connector and feeding that to the Dataq ADC box along with a copy of the reference signal."

More details on the project are available in Akins' first and second Twitter threads; at the time of writing, the code had not been publicly released.

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