FPV control over 3G celllular connection

We developed a simple controller to pilot drones/cars/boats/etc. via 3G cellular connection, using a custom PCB on top of a Raspberry A+ with a camera.

Here is a video of test flight controlled via a 64Kbps cellular connection:

A view of the Raspberrry Pi "Hat":

The PCB in a prototype 3d-printed case:

All the source files, schematics and CAD files are open source and on github:


Any feedback would be welcome in order to guide the development of the project.

Anyone else interested in FPV control over cellular connection? If so, what setup are you now using?

Views: 5440

Comment by Hein du Plessis on October 12, 2015 at 9:47pm
Nice, can you add telemetry support?
Comment by David Janssens on October 12, 2015 at 10:12pm

Yes of course.

Actually in a previous test version, I showed horizon, altitude, etc. in a HUD display over the client. Now stripped down everything to show only battery voltage in order to clean the code before put on github, I will add it back soon.

The strange colors are due to PiNoir camera that I used (was only camera I had on hand yesterday...)

On the PCB it's also possible to solder a 10DOF module to get sensor data directly. Some months ago I made a prototype to control the drone without external controller for stabilization directly from gyo/accel/baro/gps velocity sensor data. That code is in the /firmware_old  directory in repo, I still need to port it to STM32 (used AVR before when testing an earlier prototype).

So now the board still links to an external controller for stabilization (can be any kind: apm,pixhawk,naza,etc.). There are 2 serial ports in the connector pins and also a CAN bus transceiver to connect to external controllers to read telemetry data for example. (the STM32 chip on the board has 3 serial ports but 1 of them is connected to the Pi GPIO to upload firmware, send commands, etc.)

Comment by David Janssens on October 12, 2015 at 10:21pm

I would also like to produce a first batch of controllers (maybe 50 pieces). Currently, the prototype PCBs are assembled by hand and the case is 3d printed, which is time consuming.

The PCB itself should cost less than 10$ to produce (board+assembly+components, without sensor module).

For the box, I would like to use a plastic injection mold but AFAIK it costs several thousand dollars to make such a mold. In the mean time, it's possible to use 3d printing to make the enclosure but the finish is not so good compared to a mold and the unit cost is high.

I would appreciate suggestions if anyone has ideas on how to produce a first batch, or perhaps it's unnecessary and people prefer to build PCB and 3d-print case on their own?

Comment by Hein du Plessis on October 12, 2015 at 10:47pm

Thanks David - so you can make a version that allows me to connect from Mission Planner to the APM/Pixhawk? Barring any firewall issues on the SP of course.

I think most of us here are at DIYD is fine to print or cut our own casings in the mean time!

Comment by David Janssens on October 12, 2015 at 11:01pm

i think that would be not too difficult and the hardware should support it already, but currently I'm not using Mission Planner myself. I just made a small client program from scratch with SDL in C+lua (in the repo) that runs on my laptop and that I control using a gamepad. (I connect laptop to TV and control the drone/car with the wireless gamepad, I use a logitech F710)

I also have some plans to port this client program to android/IOS (SDL can be compiled on different platforms quite easily). This way I can control using a special joystick such as this one: http://www.lazada.co.th/ipega-joystick-pg-9023-839950.html .

Comment by Hein du Plessis on October 12, 2015 at 11:07pm

Ah ok, understood.

Comment by David Janssens on October 12, 2015 at 11:20pm

There should not be any firewall issues, because the current system allows to use an external UDP relay server to route the traffic. (the code for the UDP relay is only 20 lines of python and is in the /server directory of the repo).

I also tested to connect directly to the 3g device using STUN (because most 3g devices are behind a NAT). This also works but I think is less reliable because I think the IP address of the 3g device can change when moving between cell towers, etc.) Also each 3g network has a different type of NAT and symmetrical NATs can be difficult to connect to.

So currently, I fly by using a UDP relay, it works behind all routers and the latency is a little bit more than using STUN, but not more than around 100ms, which makes it possible to pilot without problem.

Comment by Rana on October 13, 2015 at 7:53pm

Hi David, its quite interesting, I have four questions to you;


1. Will it support fixed wing aircraft as well as multi-rotors ?


2. I am referring to $35USD + Shipping  You mentioned PCB, is it a completed assembled and tested board or bare PCB without components + case ? I could guess but to get things clear in initial stage itself.


3. If high speed data connection available, can it support HD video I mean atleast 720p ?


4. If due to any reason, 7500US$ goal could not be raised then would my money be refunded back ?           


Comment by David Janssens on October 13, 2015 at 8:37pm


1. I didn't try with wing aircraft yet (only tried quadcopter and car), but I think it should work although it will be more difficult to pilot than a quadcopter because it is moving faster. I will probably test with one of those EPP foam wings first (similar to this: http://hobbyking.com/hobbyking/store/__30973__Combat_Slope_Soaring_...)

2. The indiegogo campaign is to enable a first production batch (fully assembled and tested PCB and injection molded plastic case, but does not include the Raspberry Pi and camera).

3. Yes the resolution/bitrate is only limited by your 3g connection, not by the hardware. The Raspberry Pi is capable of streaming h264 in HD while using less than 10% CPU (hardware encoding).

4. It's the first time I use Indiegogo, but the way I understand it, you get a refund if the campaign goal is not reached. (although maybe minus the payment processing cost, I'm not sure) In case the campaign doesn't work, you can also try to assemble the PCB and 3d-print a case by yourself as well. (but more time consuming and lower quality)

Comment by Rana on October 13, 2015 at 9:59pm

Hi David, most of my queries are addressed, thanks


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service