SDG Electronics

SDG #146 Driving an LED Matrix with the ESP32 and using OpenWeatherMap

This instalment of the Wharton display project moves from bare hardware to a working, network-connected sign. With the custom PCB assembled, the focus shifts to getting an ESP32 to scan the LED matrix reliably and then to pulling real data down from the internet so the panel shows something more useful than a test pattern.

The matrix side of the work is the part most builders underestimate. Driving a multiplexed panel means shifting column data out fast enough that the eye sees a steady image, keeping row switching in step with that data, and doing it without starving the rest of the firmware of CPU time. Getting brightness even across the panel, avoiding ghosting between rows, and choosing a refresh rate that will not beat against a camera shutter are all practical problems that only show up once real LEDs are lit.

The OpenWeatherMap side demonstrates why the ESP32 is such a good fit for signage projects. Wi-Fi, TLS and enough RAM to parse a JSON response are all built in, so a forecast request becomes a modest firmware task rather than a bolt-on module. Anyone copying the approach should note the usual gotchas: API keys need to be kept out of the source tree, free-tier call limits mean polling every few minutes rather than every few seconds, and the JSON parser needs to fail gracefully when the connection drops.

The result is a good template for any ESP32 display project. If you want a networked clock, weather board or status panel, the combination of a multiplexed matrix, ESP-IDF and a free weather API covers most of the ground without any extra hardware.