A Maker Saved Two Wind Gauges From a Demolished Airport Tower and Gave Them an ESP32 Brain

User Avatar Aswinth Raj
Author
Share
Vintage Wind Gauges Displaying Live Weather Data

When his local airport tore down its old control tower, one maker got the chance to salvage two vintage wind meters from the controllers' console: a wind speed dial (0-100 mph) and a wind direction dial (0-360 degrees), both heavy steel cans with glass faces and night lamps. Instead of putting them on a shelf, he made them show live wind again, fed from his own weather station and driven by a Seeed XIAO ESP32-C6 on a custom board. The direction needle was the tricky part, and he solved it by treating the old meter like a brushless motor.

Two meters, two very different drives

The speed meter is a simple moving-coil meter that was once fed by a generator-type anemometer, about 4 V at 100 mph. On its 1000-ohm tap it needs only about 3 mA for full scale, so the ESP32 drives it straight from a GPIO with PWM, with no extra resistor. He calibrated it by eye with a 4-point lookup table, and the firmware glides the needle between readings instead of jumping.

The direction meter had three wires and about 81 ohms between each pair. Touching a 9 V battery across different pairs snapped the needle to 330, 90 and 210 degrees, which showed it is a DC Selsyn: three coils set 120 degrees apart. That is far too much current for a GPIO pin, so he used a DRV8313 three-phase driver with the SimpleFOC library in open-loop angle mode, the same approach used to position a gimbal BLDC motor. A low voltage limit keeps the coils from overheating.

Where the wind data comes from

An AcuRite Atlas weather station on his tower sends data to an RTL-SDR on a Raspberry Pi running WeeWX, which publishes to MQTT every 10 seconds. The ESP32 subscribes and moves both needles. If his station goes quiet for 2 minutes, it falls back to the airport's official observations, and a lit button cycles between sources. A round 1.28-inch GC9A01 LCD between the dials shows a small radar-style wind display.

Key details

  • Controller: Seeed XIAO ESP32-C6 (moved from a XIAO ESP32-C3 because USB uploads were flaky), now updated over the air
  • Driver board: 72 x 58 mm custom PCB assembled by JLCPCB, with a 12 V input, PTC fuse, reverse-polarity diode, DRV8313, 5 V buck and a MOSFET for the dial lamps; 5 boards cost about $75 before shipping
  • Lamps: the original BA9s sockets now hold warm white 6.3 V LED bulbs that switch on at sunset
  • Case: 3D-printed, airfoil-shaped desk case with clip-in base and no screws on the bottom
  • Tip from the maker: use the external antenna on the XIAO C6, or Wi-Fi reception is very poor

Our take

The Selsyn trick is the lesson here. Plenty of old aircraft and ship instruments use synchro or Selsyn movements, and most people assume they need the original transmitter to drive them. A cheap three-phase gimbal driver and SimpleFOC turn them into a needle you can point anywhere from code.

Image credit: u/Evening_Stretch100 on Reddit, resized.

About the author: Aswinth Raj is an electronics engineer and the editor of CircuitDigest, where he has published more than 150 hands-on projects and tutorials across Arduino, PIC, ESP32, Raspberry Pi and EV battery systems. He selects the stories on this page for what engineers and makers can actually learn or build from. Connect on LinkedIn

Add a comment

No account needed. Your comment appears once a moderator has reviewed it.

Never shown publicly.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.