7x5 E-Paper METAR Display
Introduction: 7x5 E-Paper METAR Display
Being a avid aviation buff and pilot, and wanting to learn how the E-Paper display worked I set out to create a METAR Display. It snowballed into a full blown application with multiple display layouts to choose from.
This project uses the 7x5 3-color E-Paper display available from Waveshare. The 3rd color added a lot of options to the design of the layouts. There are currently 10 separate layouts, each unique in its design and information displayed.
There is also the option to cycle through all the displays at specific update intervals or to do a random display of all the layouts. These features are nice to change up the look and also to fight burn-in/artifacts that can occur on these displays. Also, there is an 'Auto Interval' selection that decreases the update interval as the weather worsens. Since bad weather typically moves fast, it makes sense to update more quickly. Otherwise if the weather is VFR, it updates once per hour.
The script is setup so that it can be run from the command line with or without cmdline arguments. But there is a web interface that is particularly useful in administrating the display. From the web interface the display can be cleared, the RPi can be rebooted, or even shutdown. Any of the layouts can be selected along with the update interval. 152
So this is the suggested way to run the display.
The software is written almost entirely using Python 3. It uses libraries supplied by Waveshare to drive the display along with various libraries such as PIL, Numpy and Flask.
The transition for E-Paper displays is a bit on the slow side, and the 3 colors slows it down even further. A video of the transition is attached, but it was sped up quite a bit for time. So please don't assume there is a problem with yours based on the speed of the video. It's simply to show the update process.
The next step will take you through the supplies needed for this project. Enjoy.
Supplies
There are only a few supplies needed
* Raspberry Pi - https://www.raspberrypi.com/products/raspberry-pi-zero/
* MicroSD Card - 4 gig or larger should work fine.
* Waveshare 7x5 3-Color E-Paper display (B) - https://www.waveshare.com/7.5inch-e-paper-hat-b.htm
* Frame/Shadow Box - Michaels.com, Note: one of the side inserts will need to be removed for e-paper to fit properly.
Note: The RPi Zero W was chosen for it's size, but any RPi should work.
Let's take a quick look at METAR's in general before we get into the build process.
Step 1: METAR Info
METAR's are dynamic reports created for airports that provide actively flying pilots information about the weather and conditions at an airport. The idea is to impart important information to all pilots who are flying out of or into an airport ahead of time so that the pilot can make intelligent situational decisions about their flight.
Typically as a pilot, the first thing of concern is what is the Flight Category at the airport. The choices are; VFR, MVFR, IFR and LIFR. These categories are determined by Cloud Ceilings and/or Visibility.
* VFR = Visual Flight Rules, clouds greater than 3,000 feet AGL and greater than 5 miles visibility.
* MVFR = Marginal Visual Flight Rules, clouds 1,000 to 3,000 feet AGL and/or 3 to 5 miles visibility.
* IFR = Instrument Flight Rules, clouds 500 to below 1,000 feet AGL and/or 1 mile to less than 3 miles visibility.
* LIFR = Low Instrument Flight Rules, clouds 500 feet AGL and/or less than 1 mile visibility.
Note: AGL = Above Ground Level
Traditionally these categories have a specific color associated with them, i.e. VFR = Green. The E-Paper METAR Display however uses a slightly different scheme since the colors it can display is limited. So each layout will depict each of these flight categories in this way;
* VFR = Black Text on White background.
* MVFR = White Text on Black background.
* IFR = Red Text on White background.
* LIFR = White Text on Red background.
Note: See pictures for an example of each
The METAR is actually a cryptic string of characters and numbers that need to be decoded. 152