What a journey the past nine months have been.  At university, a classmate built an Arduino-based quadcopter for our senior capstone design project, but I was already committed to a 4WD Mars-type rover robot project.  I was toying around with some RC helicopters, but I had my eye on the quad...

Moved to Canada after graduation and went to work specifying a quad frame, motors, ESCs and such.  So much has happened in the quad industry in the past 9-12 months.  Coming from a control systems background, I wanted to test my skills and decided to take on my own controller, but I was going to use an AHRS unit with built-in extended Kalman filtering to help reduce my processing time, and simplify things.  While researching the frame, it was noted that one could use eight (8) motors--two on each arm--for redundancy and with a future interest in FPV I thought that redundancy was exactly where my design needed to be.  Since I was driven to create my own design that would meet all my goals, I thought I'd better have built-incontrollerredundancy, so that I could protect my expensive frame, and electronics from something going wrong with my pre-alpha control system.

Here's the first version that never was completed:

The radio fed into the PIC32MX MCU and was output, raw or filtered, to the redundant FY-90Q controller.  Outputs for the ESCs were multiplexed by a 4-port A/B servo multiplexer from Pololu.  The goal was to have a watchdog on the PIC32 that controlled the switching of the two flight controllers, and the FY-90Q would hopefully recover my quad if something went wrong with my green code.  The AHRS was a CHR-UM6 unit from CH Robotics--a splendid little device tucked away under the PIC32 board.

With a strong interest in a flying robotics platform, I wanted to have scripting capabilities and even entertained the idea of using FPV and machine vision, but like I said above A LOT has happened to the industry in a short period of time and I learned of the ArduPilotMega V2 (purple) that already had a ground control station and made use of the MPU-6000 from Invensense for sensor fusion.  I had done quite a bit of work with AVR microcontrollers at university and knew that my classmates used an Arduino Mega board for their quadcopter.  I also knew it was quite taxed when trying to perform the sensor fusion for a 6-DOF IMU, so the thought of adding a barometric altimeter, compass, GPS, and who knows what else left me feeling cold from a performance standpoint.  The addition of the MPU-6000 to the APM2 board, with future sensor fusion handled by this IMU really appealed to me and I thought I could get everything I hoped to get with my first large and clunky design all wrapped up in a small package that (1) was already developed and tested, (2) integrated more sensors and options, (3) had a ground control station already written, and (4) looked cool and took up less space/weight.

My final unit is shown in the photo below.  I built a test stand to help dial in the PID parameters for the pitch and roll axes and I've had my first few successful flights in between wind and rain storms here on the island.

apm2safeesc.jpgI retained the servo multiplexer to use its jumper to select between Master output and Zero output.  This lets me power up the quadcopter with the LiPo battery attached (and the jumper removed) without fear of the ESCs spinning up.  I can setup the radio and parameters as needed, then install the jumper to arm the ESCs and be ready to fly.

Right now, I'm using Bluetooth for local wireless telemetry to setup the gain constants, but will replace that with Xbee in the next week when my shipment comes in.

I went through an intermediate quadcopter stage where I used an OpenPilot CopterControl board (while waiting for the APM2 board) and had to replace the Hacker ESCs shown in the first photo with these Maytech ESCs because the CC board had their gains specified for a 400 Hz ESC update and the Hacker ESCs wouldn't arm above 100 Hz update rate.

The components on this quad are:

ThunderPower 4S G6 3300 mAh battery

Hoverthings VC550 frame

AXI 2217/20 motors with RMS mounts

Maytech 30 ESCs

9" x 4.7 props--currently loaded with GemFan but prefer APC (not as brittle)

A7 Engineering Bluetooth module

Pololu 5V/3.3V SBEC

Pololu 4-channel servo multiplexer

ArduPilot Mega V2.0 (purple)

12V SBEC from HobbyKing to power LED strips

Turnigy waterproof LED strips: North = blue, East = green, South = yellow, West = red.  White are supposed to go on the skids but I haven't hooked them up.

So, there we go.  My professors always knew I was going to build a quad, and as much as I wanted to design my own controller from an academic perspective, I just couldn't beat how neat, tidy, cool, and otherwise perfect the APM2 device is.  It completely meets my needs from all of my initial design goals and better yet I don't have to reinvent any wheels.  Now, I get to go out and fly.

I'll save the machine vision for my rover robot and am looking at MAVlink and qGroundControl for possibilities for a rover drone...

E-mail me when people leave their comments –

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

Join diydrones


  • Installed APM2 v2.5.5 and have never experienced a greater flight!  Wanted to share this setup:

    Frame: Hoverthings VC-550

    Motors: AXI 2217/20

    ESC: Maytech 30

    Battery: ThunderPower G6 4S 3300 mAh

    Props: Carbon filled; 9" x 4.7

    Radio: Spektrum DX8 w/ AR8000 receiver + TM1000 telemetry unit

    Modem: Xbee Pro 900 MHz w/ 3.1 dBi dipole

    Orientation: "+"

    Lights: Blue (North), Red (West), Green (East), Yellow (South), White (landing)

    APM2 v2.5.5 settings that are working great for this large/heavy bird are:

    Rate_P (pitch/roll) = 0.126/0.124 [a tad imbalanced]

    Rate_I = 0.014

    Rate_D = 0

    Dampening = 0.162

    Stab_P = 2.65

    Stab_I = 0

    Yaw_Rate_P = 0.168

    Yaw_Rate_I = 0

    Yaw_Stab_P = 8.500

    Yaw_Stab_I = 0.022

    Loiter and Navigation haven't been tuned yet; trying to get used to flying first :)

    RC_RATE = 400 Hz

    Having a blast; now working on making him a bit more visible during daylight hours...

  • ^^^ that may be the OpenPilot board but the APM2 board went through a similar process.

  • Here's a *very* boring video of me setting up the quad on a quick-and-dirty test jig to dial in the rate and stabilize PID parameters.

  • Nice job and looks great. Show some video when you get a chance.

  • Radio is Bluetooth, 2.4 GHz.  Good for very short range telemetry/parameter setup.  Luckily, it works with Spektrum receivers (also 2.4 GHz).  Will replace it with Xbee 900 Pro tomorrow when it shows up in the mail.

    Radio receiver is Spektrum DX8-type 8-channel receiver with Telemetry unit mounted underneath.  This lets me receive my pack voltage and monitor radio packet loss directly on my radio.  Just ordered the add-on board that lets me monitor current and voltage on the APM2 so that will make its way into the OSD on the GCS.  Spektrum radio also has diversity mounted on the East arm that may help with range.  Really haven't done a full range check and right now I just fly in line-of-sight.

  • What kind of radio modem is that?  How good does it work?

  • Distributor

    well done Scott! 

    Looks like you should contribute with the dev team or the hardware team!   

    I really want to see some video and future updates.  Enjoy flying it! 


This reply was deleted.