We are designing a Cortex-M4F coupled with a Raspberry Pi running Linux or Andriod Quadrotor, here is our build log!


The Cortex would handle all the controls - sensor fusion, PID/LQR, height, RC controls etc. The Raspberry PI (or another platform) will handle GPS telemetry, communication across different quadrotors, and allowing the user to write higher level applications to do whatever they please while abstracting away the sensor/controls.


The goal is to make everything transparent as possible, from documentation of the sensor fusion algos, and also providing matlab, vpython simulation files.


Current electronic hardware specs (main features):

  • CPU: STM32F4-407
  • Gyro: IDG500, ISZ500
  • Mag: HMC5883L
  • Acc: ADXL345
  • Barometer : BMA180
    • Barometer will switch to MS5611-01BA03, Accelerometer will remain, Gyros will either switch to MPU-3300, or ADXRS450 depending on vibration tolerance/bandwidth
  • 8 PWM Inputs
  • 8 PWM Outputs
  • 3 USARTs
  • 2 SPI
  • 2 I2C
  • 6 ADC
  • 4 LED
  • 5V out
  • 3.3V out
  • 2 DAC

All the pins and ports are broken out for additional use such as GPS etc. I would like to keep the control board as straightforward as possible and abstract all the telemetry/localization features to the Raspberry pi (or other controller)




Using the Extended Kalman Filter with quaternion state propagation as the main sensor fusion algorithm, the Unscented KF is currently written in Matlab but have yet to ported to C.


Using PID for motors now, will resort to LQR when time permits.


Magnetometer calibration using Gauss newton method, written in Matlab.


GPS localization fusion algos have yet to be determined, it is simple outdoors as a Sigma Point KF will just do, but more difficult indoors due to the lack of an absolute reference.


If you have any inquiries/questions or want to help, please let us know!

Small quadrotor: ~8 inches tip to tip


Tri blades



PWM output sonar


Light and sturdy fiberglass frame



2nd revision of the control board


Using the STM32 discovery as a programmer

It is about 200 grams with everything mounted, motors are 2200kv, currently just using an AR DRONE battery. The controllers are 10A hobbyking controllers that can handle 500hz.


Larger all carbon fiber quadrotor:



Entire quad chasis


Carbon fiber blades, hope to reduce the vibration and also increase rotor response time.

Central hub - 4400mah battery for now, the motor controllers are I2C ones.


Motor choices...

Size difference...


4 in 1 brushless controller, theses are I2C controllers

Views: 15658

Comment by ThomasB on September 6, 2012 at 12:05am

Cool Project!

Do you have a website, or a link to your documentation?

Comment by Mita Yun on September 6, 2012 at 12:11am


Everything will be in 

http://code.google.com/p/narwhalroboticsquad/ , currently some of the matlab files/schematics live there, still uploading :) 

Comment by Kabir on September 6, 2012 at 12:16am

When do you plan to install the Pi?

Comment by Mita Yun on September 6, 2012 at 12:35am

Pi comes after getting all the cortex software up the running :)

Comment by Michele on September 6, 2012 at 2:46am

congratulation great projects

Comment by johnkowalsky on September 6, 2012 at 6:54am

nice... I wish one day one could buy one pcb with all the electronics on it

Comment by Juan Carlos Hdez on September 6, 2012 at 4:27pm

Very nice!

Comment by Luke Olson on September 6, 2012 at 8:19pm

Just the other day I was wondering if a Raspberry Pi or similar board could be used for higher level functionality. Today I'm reading this. I love the idea! When following my curiosity I was surprised to find the AR.Drone has a 1.0 GHz CPU and 1 Gb (gigabit not gigabyte) of memory. I suppose the use all of that power to do things like encode a live stream of the video for transmission over WiFi (it an iPad or whatever). Something like that which is open source could open doors to all kinds of things, like OpenCV capabilities on-board. Can't wait to see where this goes!

Comment by Mita Yun on September 6, 2012 at 10:06pm

@Luke, Thanks! We did a proof of concept using a beagleboard + 720p camera and Gstreamer, it handled 1080p pretty well. The main issue was desense - interference from the motors decreased the useable bandwidth which caused laggy video...Next thing to try is 5 ghz, or playing around with the channel settings.

Comment by Tomas Bauer on September 9, 2012 at 11:40am

Hi, can i ask you where did you get the frame for this project?


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