AutoQuad ver 5

3689387530?profile=originalI know, the world probably has enough flying machine projects, but here is yet another one.  AutoQuad's original design goal was high precision autonomous flight.  It took five prototypes before I was happy with the hardware.  The current prototype, AQv5, is showing very promising results.  In fact, there is little left to do before this first goal can be checked off  the list.  Using this as a solid base, I intend to continue research, design and experimentation toward vision based navigation for indoor and outdoor use.




- 2" x 2" board with same mounting pattern as the MK FC

- Input voltage ~7.5v => 18v

- High efficiency DC/DC converters

- STM32F103 32bit Cortex M3 microcontroller @72 MHZ

- standard ARM 20 pin JTAG header for real-time debugging

- up to 8 PWM ESC motor control (prefer Turnigy ESC's with custom firmware)

- 2 powered payload servo controllers

- optional ultra sonic range finder

- Spektrum satellite (remote receiver) 2.4Ghz RC radio



- uSD card slot

- optional onboard uBlox LEA-XX module w/battery backup & timepulse capture

- optional female SMA connector for active GPS antenna

- optional external GPS via standard 6 pin connector (EM406, EM401, uBlox, MTK)

- optional onboard xBee module - up to 300mA (2.4Ghz, 900Mhz, bluetooth, etc.)

- optional external radio via standard 6 pin FTDI connector - up to 1A

- I2C bus connector for I2C ESC's


- modular sensor board (SBv5) - 100% analog sensors, EMI hardening:

+ 3 axis acc (ADXL335)

+ 3 axis mag (HMC6042 & HMC1041Z)

+ 3 axis gyro (IDG500 & ISZ500)

+ 2 temperature sensors

+ pressure sensor (MPXH6101A)

+ battery voltage





- Fully threaded RTOS design written in C -  60% idle

- All sensors read at 113KHz (~1.4M sps total)

- 450Hz motor update rate

- 200Hz attitude, 3D velocity / position solutions

- Full downlink telemetry

- Detailed system state dumps @200Hz => uSD card w/FAT32 FS

- Quaternion based attitude filter additionally producing rotation matrix and Euler angle outputs

- All math in single precision floating point

- Temperature compensated and calibrated sensor suite

- Custom ground station software w/bi-directional command and control API

- Cascading PID control system, velocity based for smooth transitions

- Auto land / takeoff

- Hover position / altitude hold

- Autonomous waypoint mission navigation

- Precise altitude hold indoors


Example of current capabilities:


Design philosophy:


- High performance

- Efficiency

- Ease of development

- Consistency / Repeatability

- Low cost


There is always room for improvement.  For instance, I would like to see how much of a benefit using a SPKF (Sigma Point Kalman Filter) would be over my fixed gain navigation filter.  Looking forward to the new Cortex M4 uC's with a hardware FPU so that any such math intensive solution can be more easily handled.  As I mentioned above, there is a lot of room for work with vision navigation and SLAM.  Also interested in propulsion efficiencies which with an eye toward higher endurance.  Although the PID based control system works extremely well, I'm interested in exploring different types of MPC (model predictive control) to reduce control costs and increase precision.


I'm wondering if there is anyone interested in joining forces to work on some of the above mentioned or anything else along these lines that presents itself.  This is only a hobby for me and I currently have no profit motive.  This is definitely not a beginner's project as you can see by my sloppy SMD hand soldering job.



E-mail me when people leave their comments –

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

Join diydrones


  • Brian: Good question. First problem with the HMC5843 is that it is digital.  The second is that it is I2C :)  In my opinion, you need the higher level of control you get with analog sensors if you don't want them to become a bottleneck in improving performance.  With the HMC6042/1041Z you can get updates at an almost unlimited rate which allows for onboard signal processing.  Also, you have complete control of the set/reset circuitry to clear magnetic effects.  AQ actually set/resets at 100Hz.


    The cons are that it a very difficult part to hand solder and align and that the data collection and set/reset software timing can be complex to work out.


    The mag sensors in AQ are integral to it's operation and are not optional.  Actually, almost as much data coming from them is used in attitude estimation as from the accel's, not just yaw.  This allows accurate attitude estimation during quick maneuvers, like high speed turns or during other 3D accelerations.

  • T3

    Hey Bill,

      Nice board! I can spot another design junkie a mile away.

      I'm getting ready to re- spin my PICPilot and was wonder why you chose the HMC6042/HMC1041Z combo rather than someof the 3 axis units such as the HMC5843. I'm currently running the 5843 and although it works I'm not overly impressed with noise/repeatability. It was very easy to intigrate though and takes up very little board space.

      I'll pull up the data sheets for the HMC6042/HMC1041Z when I get home tonight.




  • Taylor: I was always underwhelmed by the precision of things like position hold that I saw in other projects, that is why I started working on AQ.  There are a lot of things that go into being able to hold a tight position, there is no single thing.  Some of the issues that must be addressed:


    - Clean / fast / high resolution sensor data

    - Highly tuned attitude estimation

    - uBlox GPS - the best there is IMHO

    - Highly tuned IMU / GPS fusion filter

    - Well tuned control system


    As well as the AQ does so far, I think it can get better.  Research is on going.

  • What are you using to hold the position so well? The arducopter drifts with it's GPS within about 3 meters, but yours is basically dead on.
  • It's basically zero work if you already know the tools and if you aren't using a version control system already then you are doing it wrong, even if you are the only one who is ever going to access the source.


    There are several good choices for project hosting.


    Github is getting really popular and git is a very powerful tool and allows easy colaboration, though it might be a little tough to learn as the first version control system.


    Google code at uses Subversion which is less powerful and not distributed in the way that Git is, but it's somewhat easier to get your head around.


    I'd be happy to help set your project up on either site and get you started with the tools.

    Google Code
  • As to the question of open source:  I'm not  opposed to it, but I loath the idea of having to administer / coordinate / maintain the project and web site that would go with it.  I'd rather be coding :)
    I've not looked into the tools that are available online these days for this sort of thing.  How much work is it?
  • Hey, Bill, where can I check out the source?
  • Hamish: It's not for sale, if that's what you are asking.  As to build cost, I have not actually added up the BOM.  Depending on how many you "print", the boards themselves can be fairly cheap.  As I said above, a lot of components can be left out or replaced to reduce cost if that's a goal.
  • geir: Chose to use Rowley's Crossworks IDE as it runs natively on Windows, OSX, Linux & Solaris and can be had for only $150 for personal use.  Of course, the code could be easily ported to any tool-chain.
  • ~how mucho?  if i may know :3
This reply was deleted.