Hey there, human — the robots need you! Vote for IEEE’s Robots Guide in the Webby Awards.

Close bar

Wi-Fi + HD Video + Drones = Still Wobbly

Using commodity Wi-Fi for high-definition FPV flying has rough edges

4 min read

Photo of HD video drone
Photo: David Schneider

I’m preparing to return to a pastime that I gave up a few years ago: flying radio-controlled model airplanes by first-person view, or FPV. This is where you control the plane while viewing live video transmitted from an onboard camera to the ground. I quit this hobby when the FAA issued an interpretation of the law that forbade flying model planes this way. In a nutshell, it defined a model aircraft as something you kept in sight at all times. Having video goggles or other visual aids (besides eyeglasses) blocked your view, so it wasn’t okay to fly with them under model aircraft rules.

But the FAA opened the door to FPV again last year with its Small UAS Rule [PDF], which allows this kind of flying if you are certified as a remote pilot, as I’ve recently become. So I’ve been dusting off my FPV gear and exploring what’s new in the hobby.

One thing that caught my eye was an HD digital-video system called Wifibroadcast. It’s a collection of open-source software that uses ordinary Wi-⁠Fi dongles and Raspberry Pi hardware at each end to provide telemetry, recording capability, and high-resolution video for FPV. What’s more, the Wi-⁠Fi transmitter and receiver don’t need to associate (which requires them to be able to communicate back and forth rather than the receiver simply listening to a signal broadcast by the transmitter). So the video link degrades gracefully with distance instead of abruptly shutting down at the point when it would be impossible to maintain an associated connection. What better way to get back into FPV than with low-cost HD video?

img

imgTelemetry to Go: My ground station for receiving video was a battery-powered Raspberry Pi connected to two Wi-Fi dongles (top). On board the plane, I mounted a camera module attached to a Pi Zero (bottom).Photos: David Schneider

So I purchased the gear and installed it on a model airplane. I needed to hack the open-source code a little to get it to work properly with my flight controller and GPS, but that wasn’t too hard. It was a little more work to figure out how to mount a Raspberry Pi Zero and a camera module on my plane in a fashion that allowed a servo to pan the camera left and right.

Although the video transmissions would be blaring out on the 2.4-gigahertz Wi-Fi band via a dongle plugged into the Pi, I thought radio interference between the electronics used to control the plane itself and the video equipment wouldn’t be a problem for me: Unlike nearly everyone else in this hobby, I still use a radio controller that operates at 72 megahertz.

Once I had things working on the bench, I took my gear to a nearby cornfield, where a test flight showed that the 160-degree lens I was using with the camera module was awkwardly wide. The lens distorted the horizon badly—and the focus wasn’t set so well. On the upside, the Wifibroadcast’s HD video transmissions were rock solid. But it didn’t take long for me to realize that my radio-control link was compromised, at which point I landed in a hurry.

Ground tests revealed the source of the problem to be the Raspberry Pi Zero. Even without a Wi-Fi dongle attached to it, the Pi generates enough local radio interference to make the controls dance around.

It was time to switch to a modern 2.4-GHz spread-spectrum radio-control system, which I believed would be less susceptible to interference from the Pi. But of course now I had to contend with the risk of interference between the Wi-Fi transmissions and the radio-control signals. Some investigation revealed a solution. I bought an Adaptive Frequency Hopping Spread Spectrum remote-control system from Hitec, which can be set to scan the spectrum and use only an interference-free portion. This would allow video and control radios to share the same band, or at least that was the plan.

It worked, but not that well. Extensive range testing and another flight showed that the 2.4-GHz flight controls were now solid, but the video quality was not as good as when I had been using 72 MHz. Moving the receiving Raspberry Pi farther away from me (and therefore the remote-control transmitter I held in my hands) helped, but even 10 meters of separation with a long HDMI cable back to the display I was looking at didn’t remove the video glitches.

I decided to take one more stab at getting this system to function better by purchasing a couple of Wi-Fi dongles that can operate on the 5.8-GHz band. Strangely, that strategy failed completely when it came to getting usable video. I don’t understand why, but I found reports from others experimenting with Wifibroadcast who had similar experiences, so I gave up this line of attack.

The final nail in the coffin was that I discovered that the Raspberry Pi Zero’s camera connector wasn’t making a very solid connection to its ribbon cable. Now that’s really troubling. After all, with FPV, you can’t afford to have some vibration in a connector cause the video to suddenly cut out.

In the end, I concluded that this HD video system, despite its many attractive features, probably isn’t ready for use in FPV. But if you’re looking to broadcast HD video in some other context without the need to control something by radio at the same time, a couple of Raspberry Pi computers running Wifibroadcast might suit you just fine.

This article is for IEEE members only. Join IEEE to access our full archive.

Join the world’s largest professional organization devoted to engineering and applied sciences and get access to all of Spectrum’s articles, podcasts, and special reports. Learn more →

If you're already an IEEE member, please sign in to continue reading.

Membership includes:

  • Get unlimited access to IEEE Spectrum content
  • Follow your favorite topics to create a personalized feed of IEEE Spectrum content
  • Save Spectrum articles to read later
  • Network with other technology professionals
  • Establish a professional profile
  • Create a group to share and collaborate on projects
  • Discover IEEE events and activities
  • Join and participate in discussions