A minimalist digital speedometer for a Simson. An ESP32-C3 takes the speed straight from a BN-220 GPS module and draws it on a 128 × 64 OLED. There is no wheel sensor to fit.
ESP32-C3BN-220 GPS128 × 64 OLEDU8g2, TinyGPSPlusNo wheel sensor
I’m a developer and maker in Germany. I write the code between the signal and the screen: firmware for small displays, and the servers that feed them.
The weather and speed readings are live; the two screens further down are drawn in your browser.
00
Sort by any column
Column headers sort the list. Each row links to its figure or repository.
01
Hardware
Fig. 1

Generated image, not a photo of the build. The screen is real: 128 × 64 pixels, drawn in your browser. With no GPS fix it reads how fast you scroll, in km/h. One CSS pixel is 0.26 mm.
A minimalist digital speedometer for a Simson. An ESP32-C3 takes the speed straight from a BN-220 GPS module and draws it on a 128 × 64 OLED. There is no wheel sensor to fit.
ESP32-C3BN-220 GPS128 × 64 OLEDU8g2, TinyGPSPlusNo wheel sensor
02
Library
Fig. 2

A library for the Seengreat 1.54-inch tri-colour e-paper display: 200 × 200 pixels in black, white and red, driven from an ESP32-C3.
The panel shows what I’m working on now: weather from the open-data server of the Deutscher Wetterdienst.
Seengreat 1.54″200 × 200Black, white, redFull refreshESP32-C3C++
Generated image, not a photo of the build. The panel is drawn the way the real one draws: 200 × 200 pixels in black, white and red, full refresh only. Air temperature 2 m above ground at sixteen DWD stations, via Bright Sky.
| STUTTGART | 17.5 °C |
|---|---|
| BERLIN | 16.3 °C |
| KIEL | 16.2 °C |
| FREIBURG | 15.6 °C |
| HANNOVER | 15.3 °C |
| ROSTOCK | 15.0 °C |
| FRANKFURT | 14.7 °C |
| NUERNBERG | 14.6 °C |
| HAMBURG | 14.3 °C |
| BREMEN | 14.1 °C |
| KOELN | 13.9 °C |
| SAARBRUECKEN | 13.5 °C |
| DRESDEN | 13.1 °C |
| KASSEL | 12.7 °C |
| LEIPZIG | 11.1 °C |
03
Web
Fig. 3

The map, running at meshtastic.hennesbolte.de.
A live map of every Meshtastic LoRa mesh node heard via MQTT. It is a fork of Liam Cottle’s meshtastic-map that I maintain for self-hosted deployments: Node.js and Express in front, MariaDB behind, all of it in Docker.
Node.js, ExpressMySQL / MariaDBMQTTDocker
04
JavaScript, TypeScript, Python, C and C++. Next.js, NestJS and Vue on the web; Docker, PostgreSQL and Nginx underneath; PyTorch for machine learning. At home: Home Assistant, Ubiquiti, Raspberry Pis, and AMD and NVIDIA hardware.
Forked on GitHub: a live Starlink satellite map, Nowify (a Spotify now-playing screen for the Raspberry Pi), Pi-hole, OpenSpeedTest, meshmap.net and a few public-API lists.
05