raspberry Pi 5 + 2 Adafruit Feathers + 10m of LEDs = a real-time light map of my country
The Pi 5 is the brain. It runs Python, holds all the modes (ambient, data-driven, event-reactive, and the touch mode you're seeing in the video), and talks to 2 Adafruit Feather RP2040 Scorpio boards over USB serial with a custom binary protocol. The Scorpios are dumb pixel pushers, they just take the frames the Pi sends and drive ~800 RGBW LEDs across 16 parallel channels using NeoPXL8 (PIO + DMA). Those were too many channels to drive from just the pi even though, in retrospect, I could have just put the LEDs in series.
Originally, I thought that I could do it without a pi. But having a central brain that can calculate the position needed and push it to the right microcontroller, interact with APIs and on which you can host a LAN control panel is just such a life savior. Main problem I ran into is heat. In a closed box with that many LEDs, the Pi was heating up really fast. So I made a passive heat sink with a few aluminium corner brackets and installed 2 fans to pull air from the bottom and push it out from the top!
Other point, originally, I wanted to use a switch with ethernet connection but I found out that USB can be more than quick enough for that type of application!
Each of the 179 acrylic cuboids maps 1:1 to a real 100m x 100m cell of Monaco. Elevation data pulled from Copernicus, building heights from OpenStreetMap, gridded in QGIS.
In the clip I'm using the touch mode via a Flask panel on my phone, tap anywhere on the map, ripple spawns at that lat/lng :)
I have the full build video were more code and details are shared : https://youtu.be/-wLMfcOFt5M