FPV setup with raspberry Pi


After much chasing, and testing, I have found this to be an efficient way of getting low latency high quality HD video out of an Aircraft. The latency is around 0.4 seconds at worst which would be OK for an FPV with an APM doing the hard work.

I will continue to search for methods to drop the latency down further, but this is a lot better than the 6-12 seconds I was getting on my first attempts.

Any comment (with useful instructions) would be appreciated.

For the wireless link, I am using two UBIQUITY ROCKET M 900 with Australian ACMA approved firmware, at the base station, I am using a tracking (yet to built the tracker...) 1.5 meter long X and Y polarised Yagi, and on the plane, two RF Design flexible strip antennas, placed at right angles to each other.

but how you do that bit is up to you.....

the critical bit is getting the Raspberry Pi's to chat to each other.

I have tried to make this as user friendly as possible... good luck.


Setting up IP video for Raspberry Pi 1080p video (FPV)


You will need 2 B model Raspberry Pi's and 1 Pi Camera. (Element 14, or RS components)

Preparing your Raspberry Pi for first boot…


Follow the instructions at

Install the prepared SD card in the Pi and boot.

Setting up your Pi

Connect the Pi to your router with a network cable.

On Start-up it will resize the FAT partition and present you with a menu.

Set your language, and keyboard layout.

Select Raspbian… then click install.

After this has extracted (will take a while….) it will reboot into the configuration screen (again will take a while for this first boot.)

The important things to change here are

  1. Enable the camera
  2. In advance options…..
    1. Set the host name (camera, for the camera end, receiver, for the viewing end)
    2. Memory split, set the memory for the GPU to 256
    3. Enable SSH ( will come in handy later, as you may need to talk to the Pi in the air.....

Then finish and reboot.

First login

Username: pi

Password: raspberry

Setting up the required programs for video streaming


Install the dependencies by running the following in a terminal:

sudo apt-get install mplayer netcat

cd /opt/vc/src/hello_pi

make –C libs/ilclient

make –C libs/vgfont

cd /opt/vc/src/hello_pi/hello_video


cd ~

Now repeat this for the other Pi….



First set up the receiver….

Ensure the receiver is connected to your network and run


after you press enter, you can find your ip Address.  Note this down.

Then run the following.

mkfifo buffer

nc -p 5001 -l > buffer | /opt/vc/src/hello_pi/hello_video/hello_video.bin buffer

the Pi will now wait for the feed.

On the Camera Pi

Ensure camera is connected to the Pi

Ensure Pi is connected to the network (you can confirm this with ifconfig)

(see instructions at for how to connect the camera)



In the following command, replace the ip address with the one you just noted down.

raspivid -t 0 -fps 15 -o - | nc 5001

if all goes well you should be streaming 1080P video at 15fps with less than 0.5seconds of delay..

now add your wireless bridge between the two, and away you go J

This information has come from the Raspberry Pi foundation website, and other sources, tested and proven by myself..

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Here is my FPV setup

    With simple USB-WiFi adapter (100 mW) you can go FPV up to 500m with 12 dBi antenna and more with bigger antenna. And such adapter weight is 5g without case. It can be good in small-quad setup for low-range FPV

  • I just started working on my own Raspberry Pi video streamer. It seems like you went away from gstreamer to netcat-mplayer, is that because there is no gstreamer support for Windows?

    With my first attempt I ran on Windows:

    [Path to nc.exe]\nc.exe -L -p 5001 | [Path to mplayer.exe]\mplayer.exe -fps 31 -cache 1024 -

    And on the Pi:

    raspivid -t 999999 -o - | nc [insert the IP address of the client] 5001

    And I get video but its got really bad lag, 6 seconds at least. This is over my home wifi network. How did you reduce the lag and how do you specify UDP over TCP?

  • 3692939948?profile=original3692939838?profile=original3692940028?profile=originalA couple of pictures with the new RPI camera enclosure, which is very close to the size of my GoPro which should make it easy to mount to the GoPro gimbal I have on the way.  Also a shot of the Rocket M5 with the (2) 5.8ghz "Mad Mushroom" antenna.

    I'm hoping some others have got a functional platform up in the air and will share!  Has been a lot of fun...


    Didn't have a lot of time this weekend, but got out for a couple of hours this afternoon to test out new camera enclosure, Rocket radio, and the very well balanced 12" T-Motor props!  I have to say I'm quite impressed with the improvement in the video quality!  Adding some mass to the camera with the aluminum enclosure, and the balanced props made all the difference in the world. 

    I had planned on getting out 800 meters but only made it out about 450 meters due to a radio failsafe.  Not sure what happened as I had just ground tested my Aurora 9 with all radio gear and had no issues..  Might have just been a glitch.  Needless to say, failsafe functioned perfect and she flew right back home! 

    I was very happy with the Rocket M5 on the quad, it appears to maintain a much more consistent signal with the 2x2 MIMO setup..  In fact I think I'm going to add the same to my antenna tracker with (2) of the 13dbi patch antenna's. 

    Would love to see some field testing video's from others if you have any.  I'm extremely happy with how this has turned out so far and will continue testing and improving.

    Thanks for looking!

  • @ SaadTiwanna - Looks like 87g on the weight of the rocket without the case.  This includes (2) 90 deg. rp-sma adapters.

  • @ SaadTiwana - I'll pull the rocket off tonight and weigh it for you, I have some other work to get done, still struggling with a solid camera enclosure, so will be back at it this evening..

  • Telemetry over wifi will be my next project...  Tough to find any solid info on this, but I hope to figure it out.  My primary goal was low latency video feed.  My primary focus now is getting an idea of range limitations.  If I can get out at least 1km id be happy...  Then on to telemetry, and maybe someday a real HUD overlay over the video stream...

  • I ended up using the NUC on the ground station for a variety of reasons, most important:

    • I wanted a ground station that would allow me to run mission planner; not something you can do on the RPI.
    • The NUC with its dual display output allows me to have mission planner up on the 23” IPS display, and MPlayer fed to the HDMI/Wireless control unit for my Sony HD goggles.  I pull the HUD out of mission planner and have it overlaid on my video feed to the goggles along with my wireless signal info per my video.  All of this is something that just can’t be done with the RPI.   
    • Having and i5 NUC with 8gigs of RAM on the ground station allows for almost endless flexibility..


    At the end of the day you can use a second RPI for a simple video feed, but for me the HUD and Wifi info was important.  With all of this being somewhat experimental I figured the more info I have while flying the better off I would be.  Having the HUD overlaid on the video also allows me to catch lag issues should they arise.. 

  • This is very interesting, I read through the whole thread and Id like to buld something similar. Im wondering about the reasons for usoing a NUC on the ground station vs a second Rasberry Pi? Also, is there a technical reason why you dont run telemetry over the same link as the video?

  • Patrick,

    Nice setup! Looking forward to your flight video.

    Can you tell me how much the Rocket M5 weights (board-only, without the casing)?


This reply was deleted.