When I was still in graduate school a few years ago, my office was in the center of a building which meant no windows and no way to quickly see the weather outside. This motivated me to make a project that would display the current weather on my desk. Being a pilot, I thought using the local METAR would be nice because I could also use the VFR, MVFR, IFR, and LIFR as quick designations for the weather and whether I could go flying after I was done for the day.

After messing around with a small LCD, I came across 16×32 RGB LED matrices from Adafruit which can be used for simple text ticker or even as large TV-like displays. The real work for using these has also been done thanks to the hzeller Github project would provides a library and examples for using these displays on the Raspberry Pi with Python (or C++ if you’re inclined).

I wrote my program based off the example text scrolling program, and simply added functionality to grab the latest METAR report for my local airport from NOAA’s FTP website. I then determine if it is VFR, MVFR, IFR, and LIFR, and color-code them green, blue, red, and magenta, respectively, as is common on many aviation products. The coloring of the LEDs makes it easy to glance and have a general idea of the weather without even reading it. Finally, the program runs everything in a loop so it checks for a new METAR every so often.

My program is available on my Github; warning, it is a pretty rough program and could surely be optimized! I used a Raspberry Pi Model B (the original) but this could be used on any Pi with some modifications to the program. I also suggest you use something like crontab to automatically start the program on boot.

Other than the displays, you’ll need a power supply. I used a 5V, 5A cheap switching supply that works fine to power the matrices and the Pi. Note that these matrices can use a lot more current if you a lot of the LEDs at once, but for basic text like in this project, this low current supply has been fine. The other challenge is a mounting scheme. I used some shelf brackets that worked fairly to mount the matrices at two points per panel. I then used a bookend I had laying around to hold it up.