Remote Controlled Quadcopter Based On Raspberry Pi

by Oscar

Raspberry Pi Intro

We have seen a lot of remote controlled quadcopters based on many micro processors or dedicated flight controllers, but not many people would have thought of running a Linux machine on a quadcopter! Since Raspberry Pi has been very popular these years, and the it’s compact size and computation power compared to most micro-controllers, it would make a good flight controller.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

The PiCopter is a remote controlled quadcopter based on a Raspberry Pi. The Raspberry Pi handles all the flight control without using a micro controller like Arduino.

However many people have doubt about Raspberry Pi doesn’t run in real time so might have trouble getting sensor data and sending commands to the motor in the right timing, eventually leads to instability. But Marlon explains “Hard real time” is not required (no need for real time kernel, only stardard Raspbian) as you only have to update the motors with at least 10hz.

Here is a video of the result.

Hardware Components on this Remote Controlled Quadcopter

There is no standard Quadcopter Board, the Raspberry Pi controls everything, and there is no arduino or any other micro controller for flight control. However he used an Arduino as an interface between the Radio transmission and the RPI.  The Radio System works on 433MHZ. Currently he’s using an PlayStation console for flying control, but he can also use his laptop.

The MPU6050 and special Motor controllers allows I2C communication protocol, there is no need for PWM signal.

  • 4x Robbe Roxxy 2827/34 Brushless Motor
  • 4x BL-Ctrl V1.2 (equivalent to ESC – electronic speed controller)
  • Raspberry Pi
  • Arduino+RFM12 for Radio transmission over ttyUSB0
  • MPU6050 Gyro and Acc Motion Sensor
  • 3-Axis Digital Compass HMC5883L (not in use)
  • ublox5 GPS (not in use)
  • WiFi Dongle to ssh into the RPi (not in use)
  • 2700 mAh 3S LiPo Battery

With all the Parts, the whole quadcopter weights about 1 KG including battery.

Quadcopter Software Programming

The software was written in C++, and Marlon is so kind to share with everyone hereThe Software is mostly written by himself therefore most Parameters, e.g. PID, are not comparable to other quadcopters.

The sensor sampling  frequency is about 300 Hz to 500 Hz and the motors are controlled at 50 Hz. Most of the Software processing time is spent on waiting for sensor data due to the slowness of I2C. The actual computation takes barely no time even though everything is down in floating point numbers.

Flight controller: Raspberry Pi VS Arduino

It is amazing that the Raspberry Pi is working so well without a real time kernel. But it might start to get a bit tricky when running video recording on the Pi at the same time, as it might be taking too much resources from the flight control process.

One thing quite a few people have done is to power the quadcopter real time stability with an Arduino Pro Mini or equivalent micro processor, and build an I2C or SPI connction with the Raspebrry Pi for control. This allows more room on the Raspberry Pi to run the expensive video recording. Also by doing that we can avoid those expensive I2C motor controller.

But one obvious advantage that Raspberry Pi has over Arduino is its much greater computation power, thus more complicated and better stabilization algorithms can be run on the RPi.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

9 comments

Edward 9th July 2019 - 10:52 am

Hi!

The software is not available anymore. Would it be possible to send me the software?

Edward

Reply
Mar 13th January 2016 - 12:33 am

Can i use KK2 controller instead of arduino? It is possible to connect the raspberry pi with the KK2 controller ??

Reply
Shakeel Engy 8th December 2015 - 4:57 pm

Hello Oscar, I’ve been searching some information about drones and lastly I think I found the right place. I want to build a quadcopter which I want it to lift more than 3 kg. I just wanna know what motors I can use in order to lift that much of weight.
what micro-controller to eliminate overheat and also drastically shorten battery longevity problems if you do it for too long.

do i have to see the motor watts or the torque of it? How to find out the payload that can carry by the quadcopter ? I want the complete specifications & components that are required to design high speed, atleast 30 mins flight time, with a payload of >=3 kg and it should be feasible to design i.e., low cost.

It’ll be great help from you if you could provide me with details. Looking forward for your response.

Thank You in advance :)

Reply
Alex 27th July 2016 - 4:44 am

you can use a LDPOWER D450 power system with a 4000mah 25C 4S battery
works fine with us.

Reply
moda 3rd September 2015 - 6:41 am

hi oscar
i ask about the best type of communication we can use with qucadcoter and can tell me which paper used this

Reply
chetu 4th November 2014 - 10:59 am

can you plz send all deatil of it..

Reply
Zust 14th October 2014 - 2:53 pm

Good article. Ι aabsolutely ɑppreciate thіs website.
Continue tҺe ցood work!

my blog post

Reply
Donof43 5th October 2013 - 1:49 pm

Hey,

As a french student, I gonna work on a group project about QuadCopters. Studying Computer Science, we’re interesting in building a simple QuadCopter to focus on the source code. So, we have some questions about electronic parts.

Actually, we plan to use a RasberryPi and an Arduino together, the Arduino will be reserved for the communication with the motor and the sensors. The Rasberry will process all the signals and send the motor commands. It’ll also have a wifi connection to communicate with an Android Tablet or other support (May be another quadcopter)
What do you think about all of that config ? Is an Arduino Uno adequate ?

You have used MPU6050 to access to sensors. Is it a good price ? (Student budget = saving money :) )

What is the difference between an ESC like that http://www.hobbyking.com/hobbyking/store/__25362__Turnigy_Multistar_10_Amp_Multi_rotor_Brushless_ESC_2_3S.html
and the BL-ctrl you have choosen ?

Is there a real difference between your 35€ motors and this one http://www.hobbyking.com/hobbyking/store/__25080__NTM_Prop_Drive_28_30S_800KV_300W_Brushless_Motor_short_shaft_version_.html ?

How long take a flight with your 2700 mAh battery ? We thought about a 4000 one.

Does the Rasberry support a 3S Battery alimentation or have you used a transformer ?

Thanks to take time to answer !

Reply
Oscar 10th October 2013 - 11:31 am

Hi!

just to be clear I didn’t build this quad, you can visit the author’s post via the link i provided.
the BL-ctrl is a type of ESC, but it can be controlled using I2C which is required if you use RPi as flight controller.
If you are using ARduino as flight controller, you don’t need these and you can use a normal ESC (which is also cheaper).

As for sensors, you can take a look at what Multiwii supports, choose the one you think is the cheapest.

when it comes to battery, it’s not only the capacity but also the weight, there is a trade off somewhere for best performance. (a balance between weight and capacity).

you will definately need a voltage regulator to supply power for RPi, because it only takes 5V voltage, or you can use the 5V BEC power from one of the ESC ( i have not tested this practically, so you need to confirm with Raspberry Pi staff on the forum).

thanks
Oscar

Reply