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
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.

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

Software Solution

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

“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

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

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

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

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.  

E. Stanton
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

ADS-B receiver components: $150

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