View on GitHub

LED Sectional Project

This project uses an ESP8266-compatible controller to download METARs for a set of airports and assign a color to a LED representing each airport so that they can be put into an aviation sectional map.

LED Sectional

This project is adapted from a few other very similar ones:

There were small gaps in the how-to details for some of them so I figured it might be helpful to fully document how I did it. I also opted to use a microcontroller rather than a Raspberry Pi, so mine is different in that way too.


Here are a few pictures of the final product: Final Product Final Product Final Product

Things you’ll need

The materials themselves are pretty cheap–you should be able to get everything you need aside from the frame for less than $100. The frame cost will vary depending on how big you want to make the sectional. The tools may add some cost if you don’t already have what you need.


LED Sectional Kit

I originally wrote this guide with instructions on how to buy all of the electronic components on Amazon, but now I have a kit available that contains all of the electronics except for the power adapter and the LED strands themslves. The kit is significantly cheaper than buying each of the components a la carte since most of the components come in large quantities.

Click here to find out more information about the kit.

The Amazon links from the original how-to are below in case you’d enjoy doing everything yourself.

Buying a la carte

I’ve linked to Amazon for most of the electronic items. You should be able to buy them for cheaper and in smaller quantites from Aliexpress or another similar store if you’re willing to wait for the shipment. (In the interest of full disclosure, the Amazon links do have my affiliate tags, but I’m not really trying to make any money here.)

Map and Frame

You’ll also need either:



Here are the tools you’ll need. I’ve provided links to the ones I use, but any set of good tools will work.

If you used foamcore backing:

If you used wood backing:

If you went the a la carte route for the electronics, you’ll also need:


The code I used for this project is available at It is designed to use the Arduino IDE and should be relatively easy to adapt for your own purposes. I should mention that I’m not an engineer–I just hack together code to try to make it work, so I’m sure the code is ugly.

The program uses standard definitions for VFR, MVFR, IFR, and LIFR, but I also set it to show yellow if an airport is VFR but winds are greater than 25 knots, and an airport will strobe white every 5 seconds if there are thunderstorms in the area. These can be disabled by setting DO_WINDS and DO_LIGHTNING to false respectively.

On power on, all LEDs will show orange initially. Once the controller is connected to the WiFi network, they’ll turn purple, and then they’ll show the airport colors once the data is downloaded in parsed. LEDs for airports that have not reported weather in the last 3 hours, or that don’t have a clear flight category will be turned off. Weather is updated every 15 minutes, and the update rate can be adjusted in REQUEST_INTERVAL.

You’ll need to install the following in order to program the board:

Once you have all of that installed, you’ll need to set the Board to LOLIN(WEMOS) D1 mini Lite under Tools in the Arduino IDE.

The airports vector contains all of the airports used for the project in the order in which they appear in the LED strand. NULL is used when we have unused LEDs in the strand. If you’d like to add a key, you can mark those LEDs as VFR, WVFR, MVFR, IFR, and LIFR. You’ll also need to edit in the SSID and Password for your WiFi network.


Soldering and Wiring

The following section is only necessary if you went the a la carte route.

The Wemos D1 Mini Lite can accept 5V as input voltage, but the GPIO pins run at 3.3v. The WS2811 LED strand is expecting 5V on the data line, so it is necessary to convert the GPIO 3.3v to the WS2811 5V using a logic level shifter. (In some cases it may work without the shifter, but using one is the safer bet.) Below is a breadboard diagram for wiring it all up:

Breadboard Diagram

I’ve diagramed on a breadboard for simplicity, but I used a 3cm x 7cm PCB. In the diagram, the (optional) JST-XH connector on the right goes to the WS2811 LED strand. If you don’t want to bother with the connector, you can just solder the wires from the LED strand to the PCB.

Controller on PCB

If you have a smaller number of LEDs on your map, it may be possible to power the LED strand from the Micro USB port on the Wemos D1 Mini rather than connecting an external power supply. No wiring changes are necessary, but be sure to not connect an external power supply when the Micro USB port is connected. Also be aware that the Wemos D1 Mini has a 0.5A fuse on the 5V line so it would need to be a really small number of LEDs.

The data flow on the WS2811 strand is directional. In the LED pixel itself, the PCB will be marked with an arrow on one side. That arrow indicates the input side of the pixel. Connect the microcontroller to the side of the strand such that the wires from the controller are connected to the input side of the pixel (with the arrow), matching the 5V, Data, and Ground lines on the strand to those on the controller.

The WS2811 LED strand has pigtails for injecting power on the ends of the strand as well. Solder a DC barrel connector for power to the pigtails nearest the microcontroller. The microcontroller will receive power from its conenction to the LED strand.

Once I had it all connected up, I created a small pigtail with a JST-XH connector on one side and a JST-SM connector on the other side (which matches the connectors that came with the LED strand) to make it easy to attach and detach the LED strand, then I put it in an enclosure box.


Mounting the sectionals

This section is only necessary if you bought actual sectionals and didn’t take the shortcut and have a sectional printed and pre-mounted.

When I bought the Hard Tempered Board noted above, I had Home Depot cut it to the desired size. The combined halves of the San Francisco sectional were just over 36” high, and the board itself was 24” wide, so I just decided to use that width.

I cut off the bottom white space of the northern sectional, then I taped the sectionals at the seam using scotch tape, and measured which 24” of the sectional width I actually wanted. I then put the board on top of the sectional and used an Exacto knife to cut off the excess parts of the sectional, but leaving about 1” on each side of the sectional just in case I didn’t get it perfectly centered when glueing.

Next, I sprayed the shiny side of the board with the 3M Spray Adhesive, waited about a minute per the directions, and then laid the sectional flat on the board so it would adhere. I used a ruler to flatten out any spots that were not flat.

Once the glue was dried, I cut off the excess parts of the sectional using an exacto knife, and then glued the flap created by the seam between the two sectionals using PVA Adhesive.


Important: Don’t use ForeFlight to determine where METARs are available. ForeFlight aggregates several sources of weather data together, and contains several airports that are not available via the API. I suggest using the METAR map at to determine where to drill.

The Foamboard Holl Drill makes super clean cuts and is the perfect size for the LEDs, so I highly recommend grabbing that set if you used foamcore backing and drilling using them.

On my first board I used wood backing, which was quite a bit more challenging. I used a 7mm drill bit to drill through the sectional and the backing board together. This resulted in some holes that weren’t super clean.

Rough Edges

I specifically wanted my LEDs to stick out, but if you don’t then adjusting the drill bit size and using a countersink bit would allow you to align them with the front of the board.

After I drilled, I then took a file and an exacto knife to clean up the edges to make it look significantly better.

Glueing LEDs

Once all of the holes were drilled, I rough fit the LEDs throught he holes in the back to try to find the optimal routing. IT’s not important what order they’re in yet–I’m just trying to waste the fewest LEDs. Once I figured it out, I started gluing a few at a time using the hot glue gun.

First Glued LEDs

In the picture you can see that I cut the strand because the next LED in the strand was too far from the previous one, but eventually I realized that LEDs are cheap, so it is much easier to just leave the LEDs on the strand and not use them than to cut the strand and splice in a jumper. The final product looked like this:

Final Back

Final Details

Because I don’t have good tools or really any skills with woodworking, I purchased a frame from Their SP8 frame has 2 1/4” of depth, which is plenty to contain the electronics. For my 24”x36 1/2” project, it cost me about $120 shipped for the frame, and it came fully assembled with mounting hardware (but no glass), which I thought was a pretty good details.

I mounted the map on a place on my wall previously had a wall sconce light, so I was able to re-use the existing power rather than running new power or running a cable.