Hennes Bolte

Developer and maker, Germany

Now: a scraper for DWD open data

hennes@bolte.proContact

Weather data
18°warmest, Stuttgart
Fig. 2
Radio packets
869.525MHz, Meshtastic EU 868
Fig. 3
GPS fixes
0.0km/h, your scroll (no fix)
Fig. 1

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

Contents

Sort by any column

Column headers sort the list. Each row links to its figure or repository.

1
Hardware
C++, ESP32-C3
May 2026
Built
2
Library
C++, ESP32-C3
May 2026
Built
—
Game server
JavaScript, Docker
May 2026
Built
3
Web app (fork)
Node.js, MariaDB, Docker
Apr 2026
Maintained
2
Data
Not public yet
Ongoing
In progress

01

Hardware

Fig. 1

Generated image: the view over the handlebar of a scooter, with a small screen clamped in the middle.

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.

Simson GPS-Tacho

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

Generated image: an e-paper display module and an ESP32-C3 board lying on light grey paper, seen from above.

ESP32-C3 E-Ink

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.

Air temperature by station
STUTTGART17.5 °C
BERLIN16.3 °C
KIEL16.2 °C
FREIBURG15.6 °C
HANNOVER15.3 °C
ROSTOCK15.0 °C
FRANKFURT14.7 °C
NUERNBERG14.6 °C
HAMBURG14.3 °C
BREMEN14.1 °C
KOELN13.9 °C
SAARBRUECKEN13.5 °C
DRESDEN13.1 °C
KASSEL12.7 °C
LEIPZIG11.1 °C

03

Web

Fig. 3

A laptop on a desk showing the Meshtastic Map at meshtastic.hennesbolte.de: clusters of mesh nodes across Europe.

The map, running at meshtastic.hennesbolte.de.

Meshtastic Map

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

Toolbox and forks

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

Contact

github.com/Hennes617

Set in Archivo. Figs. 1 and 2 are generated images, graded to the page; the two screens in them are drawn in your browser. Weather: DWD open data via Bright Sky. Built with Astro, served by nginx.