Scott Thompson's Posts (2)

Sort by

Implementing ESC Fail Safe


I had a request to provide information on how I implemented an ESC fail safe on my quadcopter and posted a small image of the process under the ArduCopter 2.5 firmware thread.  Since I suspect there may be a more general interest in this, I'm posting a blog segment on this fail safe.

Above is an image of the process.

Also, here's a pdf copy

Edit: the Pololu devices are Pololu Servo Multiplexer, Part # 721.  pololuservomultiplexer

Read more…


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...

Read more…