Welcome at the top!

← Back

PING - Progress INdicator Gauge

This documentation was written on an IBM ThinkPad 380D

PING (Progress INdicator Gauge) is an ESP32-driven, solar-powered gauge instrument that will indicate the progress of a multitude of things. It features an ePaper display for dynamically changing the scale and can be controlled by an IR remote.

The idea for PING came after finding an old broken Pirani Cold Cathode Gauge Control device on E-waste. After salvaging the gauge indicator and leaving the rest of the device behind, a new use for the beautiful piece of hardware needed to be found. The idea to control its deflection with a PWM signal was quickly deemed feasible, as the maximum deflection is reached by applying only 80mV to the 80kOhm coil. Providing a 33kOhm resistor in series will form a voltage divider that makes it easy to control the deflection from any 3.3V-based PWM signal. But now, what to indicate on the original mBar scale? Or maybe just use the 0-100 scale to indicate the percentage of something? As beautiful as the original red and black scale is, it will very likely be too unflexible to use. So why not use an ePaper display in the background of the pointer needle and change the scale dynamically to whatever is indicated? As intriguing this idea was, it immediately drove the complexity of this little project up to the next level.

The choice was made for a 3.52" black & white ePaper display from Waveshare. Featuring a resolution of 360x240 pixels, it roughly offers enough screen real-estate to render a scale that matches the full deflection range of the pointer. Convenient enough, Waveshare also offers an ESP32-based display driver board and some basic source libraries for an easy start. After digging out some of my 2D drawing routines that I wrote for other projects, a first proof-of-concept was about to see the light of day. However, the question remained of what exactly to indicate. The first thought fell on making it a clock. Wouldn't it be cool to see the day progressing with a pointer? But even cooler would be to indicate personal progress of any kind. Like the number of followers on social media. Or the achieved bike kilometers on Strava. Thanks to the WiFi connectivity of the ESP32, all that information could be fetched from the internet by calling some API functions.

Welcome at the bottom!

↑ Beam me up Scotty ↑