ESP32 weather clock that fetches its own radar, satellite and air traffic
It started as a joke. I wanted a Pong clock — two paddles knocking the digits of the time back and forth — and the ESP32 on the bench had Wi-Fi doing nothing. What came out of it is a 320 × 240 desk clock with seven faces, five of which fetch live pictures of the sky and put them on the glass within seconds of the satellite publishing them. This is the short version: what it can do, and what the licences say you may do with it.
Figure 1. The weather face. Current conditions, today's range, sun and moon times, and the 12-hour forecast strip along the bottom.
What it can do
Seven faces: a classic clock, the weather, satellite, rain radar, a flip clock, a cycling mode, and the Pong clock that started it. The forecast comes from Open-Meteo every fifteen minutes — current conditions, today's high and low, sun and moon times, wind, humidity, pressure, and a twelve-hour strip along the bottom of the weather face.
Five live sources share the imagery faces, and each arrives in a different shape. RainViewer supplies worldwide rain as slippy-map tiles, six to a frame. Buienradar's Belgian product is one finished picture per frame, basemap and all. Buienradar Europe is the same idea on a fifteen-minute grid and a wider view. The MTG Lightning Imager's accumulated flash area comes from EUMETSAT as a transparent overlay rather than a picture. And the fifth is not imagery at all: live aircraft within twenty-five nautical miles from adsb.fi, polled every fifteen seconds, drawn with trails, altitude-coloured silhouettes chosen from the broadcast ADS-B category, and route lookups for the airline names.
There are no buttons. A tap raises a map of tap zones over whatever is on screen and a second tap chooses one — zoom in or out, pan in eight directions, jump to another face, or open the menu. Overlays switch independently: city crosshairs, place names, a live temperature at each crosshair, coastlines and borders, airports on the flights face, and what each aircraft label should say.
Ten location slots hold wherever you care about — home, the office, the coast, a city you are about to travel to — each chosen from a table of 1,486 European cities and kept through a power cut. Picking one moves everything at once: the forecast, the crosshairs and their temperatures, the satellite and radar windows, and the circle the aircraft are searched in.
Figure 2. The rain radar with the basemap, coastlines, city crosshairs and temperature readings — all composed row by row before anything reaches the panel.
The satellite face
Thirty-four products, from two generations of satellite. Meteosat Second Generation publishes every fifteen minutes at about 3 km a pixel; Third Generation every ten, and as fine as 0.5 km. They fall into three kinds: single channels straight off the instrument (infrared 10.8 for cloud-top temperature, water vapour 6.2 for the mid-level moisture that steers weather systems, visible 0.6 for plain daylight); composites that mix channels into something interpretable (natural and true colour, geocolour, airmass, dust, fog and low cloud, convection, snow, volcanic ash, fire temperature); and derived products that are the satellite's own analysis rather than its picture (cloud mask, cloud top height, active fire, rain rate, thunderstorm detection, lightning, and the instability indices). Anything built on reflected sunlight is black at night, so those are flagged day-only in the picker rather than left to look like a failed fetch.
Figure 3. The satellite face. A EUMETSAT frame with the coastlines, city crosshairs and live temperatures composed over it, and the attribution and frame age along the bottom.
Setting it up
There is no configuration file, no serial console and no app. A clock that has never been told a network makes one of its own: the screen shows a network name and an eight-digit passphrase, generated fresh and alive for five minutes. Join it from a phone and the sign-in sheet appears by itself; pick your network, type the password, and the clock stores it and gets on with fetching. Afterwards, Setup then Wi-Fi scans from the device itself, and Setup then Location fills the ten slots. All of it survives a power cut.
Everything over TLS, and actually checked
Every host this clock talks to is reached over HTTPS — not most of them, all of them — and the certificates are genuinely validated against a root bundle rather than waved through, which is the usual shortcut on an ESP32 and leaves the connection encrypted to whoever answered. Verified rather than assumed: a probe against badssl.com went in and came straight back out, with the expired certificate refused and the good one accepted. It is not free — a validating handshake wants 18 to 26 kB, on a board whose largest free block is 34,804 bytes — and most of the memory work in this project comes from that one number.
Licences, and what you may not do with this
Attribution is a licence term, not a courtesy. EUMETSAT, RainViewer, Buienradar, Open-Meteo and OpenStreetMap all require the source to be credited wherever the data is shown — Buienradar puts it as bronvermelding verplicht — and that is why a strip along the bottom of every imagery face names whichever source is on screen at that moment. It is also why that strip cannot simply be switched off: removing it would put the build in breach of the terms that let it exist.
Non-commercial is the other recurring condition. Several of these services are free for personal use and chargeable, or simply not permitted, for commercial use — Open-Meteo and RainViewer both draw that line, and a commercial product would need paid plans or different sources entirely. This clock is a personal build on one device on my desk. It does not redistribute anything: it fetches pictures, shows them, and throws them away.
There is also an unwritten condition, which is not to be a nuisance. The aircraft feed is a volunteer network with no published rate cap; that is not an invitation. Polling it every fifteen seconds for one small circle of sky is deliberate restraint, and the sockets are reused rather than re-handshaken for the same reason. Hammering a free community feed is how free community feeds stop being free.
If you build something like this, read each provider's current terms rather than trusting a summary in an article. The short version: credit every source visibly, keep it non-commercial unless you have checked otherwise, and ask for no more data than you actually look at.
…and you know what? The Pong clock also made it through!
Sources:
Imagery and data: EUMETSAT View (MSG and MTG products, Lightning Imager), RainViewer, Buienradar and Buienradar Europe, Open-Meteo, adsb.fi and adsbdb. Place names from Natural Earth; coastlines and borders rendered from the same. Figures and timings are measured on the device.
See the download section for the full documented article: 703 - Weather_Clock_Article_rev09.pdf
Note 1: (31 Aug. 2026): KiCad schematics and partslist: coming soon.
Next developments:
Further debugging, new features (anyone requests?)
PCB design and enclosure.
Want to build a project?
Bring your design to life with the Elektor PCB Service, powered by Eurocircuits. Upload the project files and order professionally manufactured PCBs or assembled boards through a proven European production platform.
Supporting KiCad, Eagle, Gerber, and ODB++ formats, the service is suitable for everything from prototypes and validation builds to series production and volume manufacturing.
Elektor Magazine has been one of the leading sources of information on electronics for engineers, designers, start-ups and companies for 65 years. Our magazine is powered by an active community of electronics engineers – from students to professionals – who are passionate about designing and sharing innovative ideas.
For them, we publish hundreds of items a year, in formats such as articles, videos, webinars, and other learning formats. Our mission is to share knowledge in every possible way and inspire readers with the latest developments within the electrical engineering sector.
Thank you for your vote!
Leave further comments in the fields below.
Thank you for your vote!
If you wish to leave a comment with your rating, please first use the login below. If not, just close this window.
Discussion (0 comments)