While waiting for my airplane kit to arrive I got inspired to make a small crafty project after seeing someone post about it on reddit and showing it to my girlfriend who said we can make one together.
We did a bit more research and because I’ve made some projects with Raspberry Pi before, we decided to go that route. Here’s a picture of the finished project:
Here’s a list of the things you will need:
- Raspberry Pi Zero W – This kit comes with a nice case, the pin headers and a power supply, but you could also buy those separate.
- Micro SD Card to install Raspbian Lite
- WS8211 addressable LEDs
- Wires to connect Raspberry Pi to LEDs
- Sectional Chart
- Soldering Iron to attach the pin headers to the Raspberry Pi
- Foam Board to glue LEDs into from your local crafts or stationary store
- Shadow Box frame (in our case we used a 16 x 20 inch frame)
- Some transparent sheet to transfer the location of the airports from your sectional to the board for drilling (we cut up and taped together some sheet protectors we had around)
- Glue stick to attach the sectional chart onto board
- Glue gun (or super glue would probably also work) to affix the LEDs to the board
Plotting your chart area
Unless you want to make your own frame, the dimensions of your project will be limited by what size shadow box frame you can easily purchase. The simplest size is 16 x 20 inch frames, so I used that as a guide of the area to size out.
This worked out great for the Puget Sound Area to cover the airports from Bellingham in the north to Olympia in the South and Hoquiam and Quillayute on the coast using my old expired sectional chart from my private pilot training.
To light up the airports with the flight category, we’re using the data reported from www.aviationweather.gov so we checked the airports we want to highlight via the API to ensure they are reporting data.
After we were satisfied with the area, we created a 16 x 20 inch transparent sheet by cutting up some sheet protectors and taping them together and then overlaying them onto the area and marking down the airports so we could transfer the locations onto the back of foam board for the LEDs to go into.
Software and Wiring
Since the project is pretty simple, we used a Raspberry Pi Zero W, which has WIFI built in and can run the code to download the weather data using the above mentioned web API to pull the weather for all the airports in one go.
For the code, I’ve started by looking at some of the other projects people have done and the NeoPixel documentation for python.
We wrote an updated and optimized script and published it on Github, along with the instructions to set it up.
We ended up with a total of 22 lit up LEDs, so we wired it directly to the Raspberry as shown here. Before attaching the wires to the Raspberry headers, I soldered the header strip onto the Raspberry so it creates a good connection.
Here’s a picture of the wiring while I was testing out the code. I was using a breadboard while doing this since it made it easier to disconnect the wires during testing.
To finalize the order of the LEDs you will need to arrange them on the board and make changes to the airport list accordingly.
Another important note is to test the LEDs for all the colors in case there is a bad one, in our case the 5th LED couldn’t show RED light, so we skipped over that one.
The easiest way to test this once you’ve installed the software is to just manually control the colors of the LEDs by opening the python3 console:
Then entering the following to light up 30 LEDs at once (if you are using more, just replace the number below):
import board import neopixel pixels = neopixel.NeoPixel(board.D18, 30) pixels.fill((0,255,0))
This will light up all LEDs in red, if you see a bad one, mark it with some tape so you don’t use it for an airport.
Repeat the step for green:
Once you’re done you can turn off the lights by typing
and then pressing CTRL+Z to exit the python console.
Once we figured out the software portion and what airports to light up it was time to drill some holes in the foam board for the LEDs to go into using the template made earlier.
After we had the holes made we tested it by temporarily affixing the sectional chart onto the board and sticking some of the LEDs into the holes and turning on the project, but we found that the LEDs created a lot of light and the LEDs were sticking out a bit, so we decided to double up the foam board, which made the light more defined and allowed the sectional chart to sit flush on the board, so we glued together the two foam boards.
We did a second quick test and pinned the sectional chart onto the board for the first complete light up test:
After that it was time put everything together. we made the final cuts to the chart to fit perfectly onto the board and align with the lights and then glued it to the board using a glue stick.
Then it was time to glue the LEDs onto the board, as you can see from the picture below, some of the LEDs are not lit, one of them because the red light didn’t work and some others because the gap between two airports was too much and it was easier to just skip the light than to cut the lights and having to solder in some wires. at the end we just cut off the remaining LEDs we didn’t need (disconnect the Raspberry power when you do this).
Once that was all done and good it was time to assemble it all into the frame – we drilled a hole into the bottom of the frame for the power cable to go through.
And here is the final picture of the completed project: