Homebuilt HUD – A $300 (really) head-up display for every airplane

Homebuilt HUD – A $300 (really) head-up display for every airplane

By Beth E. Stanton, EAA 1076326

This story first ran in the February 2019 issue of EAA Sport Aviation.

It started out as a joke. After a dismal performance in the flour bombing contest at the 2017 Arlington Fly-In at Arlington Municipal Airport, John Marzulli, EAA 796572, laughed with friends that he should build a targeting computer to improve his odds the following year.

John, a software engineer and former game developer, grew up on flight simulators. After reading an EAA Experimenter article about a cellphone-triggered engine preheater, he got pulled into the world of single-board computer experimentation, specifically, the Raspberry Pi (a low-cost, credit card-sized computer). After looking at the source code for the engine preheater, he decided to change a few things and ended up almost completely rewriting it.

He had built a Stratux open-source ADS-B In receiver in 2015, which he installed in his Zenith 701. When he wanted to add ADS-B Out in 2018, he realized that for about $150, he could rebuild the ADS-B receiver to take advantage of the improved Raspberry Pi and put in an attitude heading and reference system (AHRS) and GPS while he was at it.

‘Eureka!’ Moment

When he saw an ad on Amazon for a piece of prism glass that reflected images on a cellphone, he noticed that it acted like a head-up display (HUD). HUDs are typically expensive and are used primarily in military and commercial aviation, but rarely in general aviation due to the prohibitive cost.

John had a “Eureka!” moment when he realized that ForeFlight had access to the attitude information on his ADS-B receiver. He could build his flour bombing computer! Upon further thought, he realized this technology could be used to augment traffic awareness and enhance safety. With its poor rearward visibility and slow cruising speed of 92 mph, he always worried about planes coming up from behind and not seeing his grass-colored Zenith.

Project Goals

John set out to create a cost-effective HUD using off-the-shelf components that any pilot could afford to build. To keep focused, he set goals for his project, the primary of which was to aid traffic awareness. A HUD would also minimize time spent looking at a tablet or smartphone and result in refocusing the eyes outside the cockpit. He wanted simple, easy-to-interpret visuals. He purposely left out things like an angle-of-attack indicator and weather.

“Weather takes up a lot of real estate on the screen and is getting away from the idea of something that’s really simple and easy to digest,” John said.

For proof of concept, he didn’t integrate with any specific avionics system since wiring and soldering would make it a much more complex project. He wanted a design that was not permanently installed and could go into either a certified or experimental airplane.

A low-draw system that could be used with a stock Rotax alternator was essential.

“I wanted to create a system that you could install on a plane that had a weak alternator, like a Rotax, since we only have 18 amps at peak and you don’t want to draw that all the time,” he said.

It was important to John that the project was well-tested, fault-tolerant, easy for others to build, and that he provide the software for free as a way to pay it forward.

Software Solution

John’s approach was to make this a software rather than a hardware problem.

“I’m a software guy, not an optics guy,” he said. “I didn’t want to have to deal with shaping lenses and mirrors. That’s out of my realm of expertise. I wanted to try to find something that I could leverage quickly and cheaply and get the project successful.”

Tools and network libraries were chosen with fast development and software performance in mind.

“I tried to optimize things for my own ease of coding and productivity, then used some network libraries for all the hard work,” he said.

The software is written in the Python programming language, which makes it cross-platform and able to run on Linux, Windows, or Macintosh. It was initially written on a Windows laptop using Visual Studio Code, with the laptop and the Raspberry Pi running the HUD visualizer. Using Windows allowed him to write, debug, and run the code quickly. It also allowed him to make sure it worked the way he wanted and not have to be modified to run on the Raspberry Pi.

Projector Experiments

After working out a proof of concept on his laptop computer, he successfully pulled the attitude and traffic off the ADS-B receiver and began experimenting with different HUD converters. When he hooked up a 5-inch HDMI screen to the $7 cellphone reflector, it was not optimal. It had poor daylight visibility, the top of the screen was cropped off, and eyes focused in too closely at the point of reflection. He next tried a piece of teleprompter glass in a custom 3D-printed case. It was relatively inexpensive but had similar downsides as the cellphone reflector.

When he got the go-ahead from his wife to buy a $215 Hudly automotive projector, he found that it worked great. It is daylight visible, even flying into the sun. While it does not have infinite focus, the image appears far enough ahead near the propeller disc so that eyes don’t need to refocus looking outside the cockpit.

“If you want infinite focus, then the projector you want would be $2,000,” John said. “The Hudly is easy to look through and far enough ahead that my eyes don’t refocus. At this point, I’m not willing to spend $2,000.”

System Architecture

A project like this is possible because of the GDL 90 compatible interface protocol used for ADS-B In transmissions.

“The data comes back in the same way,” John said. “Theoretically, if you hooked up my device to any other ADS-B receiver with AHRS, you should get the same graphics.”

GPS traffic feeds into the ADS-B receiver, and the graphics processor pulls that data from the ADS-B receiver and connects to the display.

Along with the Hudly projector that is mounted to the glare shield with double-sided adhesive tape, the system is composed of a glass optical combiner and a Raspberry Pi computer with a heat sink fan and a keypad to issue commands. It is unobtrusive and a fairly low-powered system. Running the Stratux HUD off “ship power” using the Hudly power harness draws only about 1.5 amps at 12 volts, about 20 watts total.

View Modes

After pulling attitude and traffic off the ADS-B receiver, John found that displaying the information together was too busy.

“I realized very quickly that information overload is easy,” he said. “So I came up with this idea of pages that you can cycle through and select the information that you want and minimize things to make upload as easy as possible.”

To keep the display simple, different “view modes” or “pages” can be toggled through and include traffic, traffic listing (text only), and the attitude and heading reference system (AHRS). John used what he called the “Taco Bell method,” using the same collection of elements across the various view modes and combining them in different ways. Elements may be easily added or removed, allowing for the addition of new views and keeping the processing down to only what is needed for each view. The keypad controls the system and scrolls through the pages.

High-Visibility Cards

John used an additive color process and picked high-contrast combinations of black, green, yellow, and red to make the visually distinct information cards.

The traffic view mode shows traffic that is prioritized by distance and excludes any airplane further than 10 statute miles away. Above the heading strip is a red “bug.” The larger the heading bug, the closer the traffic. Above each bug is a yellow card displaying traffic information, including the tail number, bearing, distance, and relative altitude in hundreds of feet (+2 is 200 feet above). Cards are drawn so the furthest traffic is at the bottom of the stack, prioritizing the closest traffic so that the content is readable.

A text-only listing of traffic may be displayed, with the closest proximity aircraft appearing at the top. If the Wi-Fi connection is lost with the ADS-B receiver while in the traffic view mode, a red X appears across a black background, alerting the pilot to the problem. The attitude indication AHRS view includes a ladder with GPS altitude, g-loading, roll, groundspeed, pitch, and GPS, magnetic, and compass tracks. A blank screen mode allows the pilot to opt out of any displayed information.

Another page combines AHRS and traffic callouts but removed the information cards based on user feedback. John has recently developed a webpage front end that allows users to combine the view elements and create their own pages easily.

Advances Since AirVenture 2018

John has continued to make improvements on his project since EAA AirVenture Oshkosh. The system now requires less power, software installation is easier, and performance improvements make it more responsive in high-traffic scenarios. A web interface allows builders to configure and personalize the HUD by changing the order, changing the content, and removing or creating views.

He always planned to run the HUD software on the Stratux ADS-B receiver Raspberry Pi, but used a second separate computer board for experimental purposes as he developed the project. He recently successfully installed the HUD software on the Stratux ADS-B to operate as a single unit.

The project has been successfully implemented with FLARM, a European traffic awareness and collision avoidance technology, with minimal changes. An engineering student made a helmet-mounted system using the Stratux HUD and test-flew it.

When John flew with his Zenith to Oshkosh for the third time in 2018, he had the flour bombing mode disabled on his Stratux HUD. However, the original inspiration for his invention proved successful. A few weeks prior at his home airport, John executed a magnificent flour bomb drop, which landed mere feet from the target, winning him first place.

For the latest updates on John’s HUD project, check out his page on GitHub.  

Beth E. Stanton, EAA 1076326, flies an experimental Lazer in aerobatic competition and is a director of Northern California Chapter 38 of the International Aerobatic Club. She can be reached at bethestanton@gmail.com. For more from Beth, check out the Innovation section in EAA Sport Aviation each month.

Parts and Cost

Stratux ADS-B receiver components: $150

Stratux HUD components: $300

Stratux HUD instructions, manual, code, and illustrations are available at the GitHub open source code depository: www.GitHub.com/johnmarzulli

Required Parts:

Stratux ADS-B with AHRS and GPS    

Power source from a 5-volt USB port or a battery/12-volt cigarette power outlet

Hudly Classic projector              

Raspberry Pi 3                            

Cooling fan

Micro USB cable

Micro SD card

Rottay mechanical keypad

12-inch HDMI cable

Post Comments

comments