Hello Everyone,

I want to share a project I have been working on for the last year. It is a quadcopter controller with full Linux support (maintained using buildroot)

This means:

  • full networking support (Wifi, Bluetooth)
  • use scripting or any programming language you want
  • SSH, Busybox, and hundreds of other tools
  • compile your own additional tools 
  • video4linux/camera (when using capable board - i.e. Odroid-W or RPi)
  • anything else Linux supports

The controller's features currently are:

  • Support for quadcopters in X configuration of any size
  • 2 fly modes - Auto-level & Acro
  • Altitude hold
  • learner mode (attach 2 controller simultaneously - one for the teacher and one for the learner)
  • fast (boot time of around 2-3sec)
  • WWW configurable (i.e. you can adjust anything using your phone in the field)
  • Camera support for taking pictures and videos
  • Live and Offline log charting (vibrations, quaternions, altitude, etc)
  • Out of box bluetooth (PAN) and WIFI connectivity for receiving flight logs, accessing the file system (NFS and SSH), browsing videos and pictures
  • Endlessly and easily extensible

The setup is relatively simple and includes 2 boards - AVR board (like Arduino Pro Mini) and SPI capable SBC (like Odroid W or RPi) wired together using SPI.

With the software provided the setup is of plug-and-play and you can control your quadcopter using PS3 controller or via network.

See the wiki for more information.

Sources: https://github.com/rpicopter/AvrMiniCopter
Wiki: https://github.com/rpicopter/AvrMiniCopter/wiki
Precompiled images: https://github.com/rpicopter/AvrMiniCopter-images

If you passionate about linux and quadcopters than this is something you should try! :)

Let me know if you have any questions.



Views: 2544

Reply to This

Replies to This Discussion

This is very interesting to read.  I am wondering if there is a functionality or difference in performance that you are seeking to achieve that is different than the Navio or Firecape projects?  Thank you for the interesting post.  I am working with Kali Linux to integrate sensor and wireless sensing capabilities.  I am seeking one of these projects to dovetail with our work.

For current status of the project please see: http://www.rcgroups.com/forums/showthread.php?t=2302054

Not sure about Firescape project, but Navio is something in a way similar but different. AvrMiniCopter is pretty much complete and currently in maintenance mode. It has support for FPV including 3d flying as of recent development. It does not require any croudfunding - it is ready to be flashed and get anyone going.

All of this is opensource and available on github with set of buildroot scripts to build automatically the end-image.

The things we are looking into (but currently not included are):

- navigation (GPS) support

- improving documentation

Not sure what exactly you are looking for but if I can help, I certainly will.

Hope this clarifies

Hello I interrest your project for make too. But I don't know how to do it?

Hi, it is reasonably straight forward to start. We have written most things up on the wiki: 


Do you already have a quadcopter?

Hello Gregory D nice to see you.
Yes I have already very thing of quadcopter. I am installing raspberry pi and arduino for your code. I don't know what pin for Arduino for connect ESC + motors.

I missed this! Thanks a lot :-)

You should use pin 3, 5, 6 and 9

I've also updated the wiki: https://github.com/rpicopter/AvrMiniCopter-wiki/wiki/Wiring

I test comple this code it warning.

pi@raspberrypi ~/MotionSensor $ make
make -C MotionSensor/
make[1]: Entering directory '/home/pi/MotionSensor/MotionSensor'
g++ -Wall -g -O2 -c -DMPU6050 -DMPU_DEBUGOFF -I../libs/ sensor.c -o sensor.o
g++ -Wall -g -O2 -c -DMPU6050 -DMPU_DEBUGOFF -I../libs/ inv_mpu_lib/inv_mpu.c -o inv_mpu_lib/inv_mpu.o
inv_mpu_lib/inv_mpu.c: In function ‘uint8_t mpu_lp_motion_interrupt(uint16_t, uint8_t, uint8_t)’:
inv_mpu_lib/inv_mpu.c:2809:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
inv_mpu_lib/inv_mpu.c: In function ‘uint8_t mpu_run_self_test(int32_t*, int32_t*)’:
inv_mpu_lib/inv_mpu.c:2228:34: warning: ‘sample_rate’ may be used uninitialized in this function [-Wmaybe-uninitialized]
inv_mpu_lib/inv_mpu.c: At global scope:
inv_mpu_lib/inv_mpu.c:2408:12: warning: ‘int setup_compass()’ defined but not used [-Wunused-function]
g++ -Wall -g -O2 -c -DMPU6050 -DMPU_DEBUGOFF -I../libs/ inv_mpu_lib/inv_mpu_dmp_motion_driver.c -o inv_mpu_lib/inv_mpu_dmp_motion_driver.o
ar rcs libMotionSensor.a sensor.o inv_mpu_lib/inv_mpu.o inv_mpu_lib/inv_mpu_dmp_motion_driver.o
make[1]: Leaving directory '/home/pi/MotionSensor/MotionSensor'
make -C libs/I2Cdev
make[1]: Entering directory '/home/pi/MotionSensor/libs/I2Cdev'
g++ -c I2Cdev.c -o I2Cdev.o
ar rcs ../libI2Cdev.a I2Cdev.o
make[1]: Leaving directory '/home/pi/MotionSensor/libs/I2Cdev'
g++ -Wall -g -O2 -o mstest \
main.c \
MotionSensor/libMotionSensor.a \

Hi, you do not need to compile anything to fly AvrMiniCopter. You need AvrMiniCopter images as described in the wiki.

If you have any problems with MotionSensorExample please create an issue request on the MotionSensorExample page.

Hello Gregory D.

I completed for wiring it can arm motor and speed up motor. I use pin 3, 5, 6 and 9 for esc motor. But I don't know what pin for
front left motor
front right motor
back left motor
back right motor.

           D3          D5
              \         /
                \ --- /
                 |    |
                / --- \
              /         \
          D9           D6

Do I put imu sensor true direction x y?
How to use altitude hold?

Thank you.

This is my multirotor.


It is locking good!

The pins you have to configure through the www interface. Can you connect your computer to the quad through wifi or Bluetooth? Then just open a browser and go the ip of the quadcopter

How to connect over wifi?
I can't scan found Ad-Hoc hotspot of rpicopter.

I use this usb wifi.

To connect over wifi just plug you wifi dongle and reboot your quadcopter. After some seconds a WIFI called RPiCopter should appear.

As far as I can see EDUP is using RTL8188CUS chipset. This is provided by Realtek 8192C driver which is supported by AvrMiniCopter.

Can you `dmesg` on your quadcopter?

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service