Aaron Curtis's Posts (6)

Sort by

Modding a Wikipad for use as a ground station


Hi all,

I got a Wikipad (an Android tablet that targets gamers) to experiment with as a ground station / second TX, mostly because it has dual joysticks. There is a lot of work to be done until it has RC-controller like capabilities. First step was a workaround for the design flaw that no USB data ports are exposed when you have the tablet snapped into the joysticks. I did the mod and then made this guide:


Hope you guys find this useful! I will be working to add Wikipad support to Droidplanner and maybe Andropilot too.


Read more…


Several months ago I started working on a system called Afterflight to organize and browse my tlogs and dataflash logs, sync them with video, and view them along with a map GPS display. It still has a long way to go, but there is a fair amount of working functionality so I figured I'd get it out there for comment, warts and all. I would love to see it flourish as a collaborative project with lots of committers, see it get merged into another project, or whatever is most useful for the community. If anyone is interested in providing funding for it (or hiring me!) I'd love to hear that, as well, since I am a "starving PhD student". Alternatively there is a donate link if you click "about" in the software.

The source code has been available under the Apache License at http://afterflight.googlecode.com since I first started work on the project. I have an example server running at http://afterflight.volcanocopter.com

If you want a quick demonstration of what it can do, click on the first log entry, which will take you here . Press play on the video and you should see the map, graphs, and timeline animate.


Here's how it works at the moment:

  • Very slowly. Please be patient, the index page in particular is large and none of the code has been optimized. It may take up to a minute to load. I'm confident I can fix that with a little work. Major code cleanup on the way soon!
  • Python scripts read in your .log or .tlog. PyMavlink is used to parse tlogs. The scripts use the Django object relational mapper to put the data into a Postgresql database. It should work with most other database systems as well (but not MySQL because MySQL can't handle high resolution timestamps.
  • A Django web application serves up the data
  • The web interface uses a bunch of javascript widgets for displaying timelines, zoomable graphs, slippy maps, and video. Everything is zoomable but the controls aren't unified yet -- e.g. you click and drag to zoom on the graphs but you use the scroll wheel to zoom the timeline.
  • I'm just starting to add features that allow the user, through the web interface, to add extra data and re-sync the video with the logs

Improvements I'd like to make in the future:

  • Don't rely on youtube for video display; allow several web services or local video hosting
  • Add automatic detection of events (takeoff, landing, motor failure, collision, wind gust etc) in both logs and in video. I have some ideas on how to detect things like takeoff and landing in the video. This will allow Afterflight, given a bunch of logs and a bunch of videos, the ability to match the right logs with the right videos and sync them in time.
  • Add display of flight analytics calculated from the data. That includes things like top speed, but also derived values such as efficiencies, estimated lift to drag ratio, etc. The database already records different vehicles, batteries, etc., but those models need to be expanded.
  • Allow login (locally created, or Google, Facebook etc.) and have the server designed to handle data uploads from lots of people efficiently. Should be fairly easy with Django-socialauth. Log parsing to the database is fairly slow right now because I haven't optimized the code, so this needs to happen before I allow uploads.
  • Replace all of the javascript widgets with a unified system based on the D3 javascript library.

Similar projects

I'm not the only one who had realized the power of the browser as a component of an Unmanned Aerial System. These are the other browser-based projects I'm aware of:


  • www.droneshare.com
  • Many similar capabilities to Afterflight. Unlike Afterflight, user registration and uploading is already working, and the site is snappy, with no laggy loading. However, it lacks many of the features that Afterflight has, including integrated video and interactive ajax plotting of all log data.
  • Not open source, but creator says that he intends to open source it in the future. EDIT: Now open source (yay!), see https://github.com/geeksville/droneshare
  • Creator has expressed interest in collaborating with Afterflight and possibly merging the two projects.



  • www.droneos.com
  • Appears to be vaporware. I signed up to "beta test" 6 months ago and have not been contacted, nor has there been any change to the website.
  • No indication that it will be open source.



Hope you find this useful!


Aaron (foobarbecue)

Read more…


I've started flying a lot of FPV recently, and I noticed that my Fat Shark Base glasses were getting quite hot after just minutes of use. Using my lab's handheld thermal infrared camera, I took some photos of the goggles and my quad after a few minutes in the air partially to try and troubleshoot the heat problem but mostly just for fun.

The goggles appear to have melted in one spot and "heat shrunk" (see above)

IR image confirms the source of heat is in the same place:

3689474069?profile=originalHas anyone else experienced this? I assume it's a voltage regulator in there but haven't opened them yet.

Here are some thermal snaps of my quad:


The bright white in the front / center is a 900mhz video transmitter and HoryzonHD camera circuit board (camera itself is below decks)

Read more…

ArduCopter on an Antarctic volcano

Hi all,

It occurs to me that I never got around to posting my videos flying my ArduCopter, Cindi Lou, on Mt Erebus last December (2011). I'm at around 10700 ft, but the pressure altitude is around 0.65 bar -- the equivalent of closer to 13,000 ft at the equator. This was on a nice, warm (-15C) nearly windless day. I was pleasantly surprised how well the quad performed in stabilize and simple mode (no sonar, and loiter was unreliable).

I got my APM / Oilpan when they first came out, and that's what's flying in this video. Unfortunately I upgraded to 2.0.49 before going to Antarctica and didn't realize that flight log collection was disabled since I had the atmega 1280 version, so no logs.

This is vaguely related to my PhD research in volcanology. My job on Erebus is to map and study some ice caves that form when volcanic gases melt tunnels into the bottom of the snowpack. The BBC came out and filmed us at work and you can see it in the "Life in the freezer" episode of the BBC / Discovery series Frozen Planet if you're interested.

I'm going back to Erebus for the fourth time this November, and this time I intend to do some serious science using multirotors with APM2 onboard. Some of the caves cannot be entered due to dangerous gasses and / or unique microbiology. I'm planning to fly an autonomous quadcopter down into them, doing SLAM or at least wall avoidance, and measuring gas concentrations. Eventually I'd also like to fly a multirotor down into Erebus' crater to sample gas from the bubbling lava lake. NASA's New Mexico Space Grant Consortium has kindly awarded me a graduate research fellowship for this work, and I am considering an application to NASA NIACS.

Please let me know if you have any advice or are interested in collaborating. Major issues I need to overcome:

  • Radio transmission through the snowpack: can it be done?
  • Cave wall avoidance. I will probably do this with IR distance sensors, although the MIT RANGE quadcopter-mounted lidar or Kinect approach would be better if I can pull it off. RANGE said they are interested in collaborating wants me to email them again in June...
  • Propeller / motor design for high altitudes. Should I be changing the blade pitch for lower pressure?
  • Keeping a quadrotor running in a cold environment with acidic and corrosive condensing vapor.

Oh, by the way, I'm now flying a 3DR frame with an APM2, and an Xaircraft X650V8 also with an APM2. Thanks to all the developers, the technology has improving by leaps and bounds! As has my own flying ability...

One more question. Does anyone know of other people flying multirotors in Antarctica? Am I the first on the continent? I hope not, because it would be great to start the McMurdo RC flying club!



Read more…

After a rough start last month, my ArduCopter CindiLou showed what she could do today. See the attached video for four flights. In the first three the camera is pointing at the Cindi, and in the fourth I have mounted the camera on the forward landing gear so you get to see a rather dramatic crash from the quadcopter's POV. The wind was blowing quite strongly to the south the whole time.

I re-read the section on GPS / altitude hold and realized that I had misunderstood how altitude hold works; that was probably the cause of the crash. I'm looking forward to being competent enough to this thing reliably and am going to repair the quad and get back to flying it as soon as possible. I'm quite happy with the way I mounted my Countour HD camera on the front the landing gear. There's no stabilization and yet the quad video is steadier than the human-captured video!




Read more…


I've now gone around one full circle on the UAV wheel: I built her, flew her, and crashed her. It has been great fun so far and I can't wait to get in the air again. Before I do, however, I thought I would write something so that other beginners could learn from my mistakes.


Anticipation and Assembly

I decided sometime last April to buy an ArduCopter spent several months in breathless anticipation. I got home from Antarctica early this January to find the package had arrived and feverishly started building. A few little issues I encountered during construction:


- When connecting the ESCs to the power distribution board, the wiki guide advised me to solder them directly on. My ESCs had Deans connectors on them, so I chopped them off and soldered them on per the wiki instructions. Only later did I find the electronics assembly PDF, which advised soldering female deans connectors to the power board so that the ESCs could be disconnected. After finishing the copter, I found four female deans connectors in my kit which were for this purpose and wished I had followed the PDF rather than the wiki, so that I would have easily removable ESCs.

- The method for mounting the ESCs and dealing with the motor wires is unclear in the wiki instructions. This is probably because there are so many ways to do it, and also different types of arms. In the end, I velcroed my ESCs to the curved plastic supports of the protective dome, braided my motor wires, and wrapped them around the quad arms to take up the slack. In theory I guess the motor wires could go through the inside of the arms, but the arms that came with my kit had "half holes" i.e. they only have the slots for the wires on one side of each arm. Also, the slits for wire insertion are at the very end of the rods, so the motors mount right on top of the slits and it seems difficult to get the wires into the slits as the plastic motor screws are in the way. Not sure how this is supposed to work, it seems like maybe the "wires inside the arms" idea was abandoned during the design at some point.

- I cranked down too hard on one of the screws for the motor mounts, and cracked one of the thin clear plastic pieces below the motor and arm. This comes back to haunt me later in this blog entry!

- I forgot to solder 5 of the pins on the 6-pin header that connects the ArduPilot with the ArdIMU. This had the surprising result that the ArdIMU worked, but only in CLI mode. I was quite embarrassed when Sebastian on the forum suggested I check my soldering and it became clear why the ArdIMU was not initializing in normal mode!


First and second "flights"

Once I'd figured out my new Turnigy 9x and finished calibrations, I headed out to a nearby field with a couple of friends. After a good deal of testing I gritted my teeth and eased up the throttle. The hum whirred into a buzz and then... two of the propellers popped off, launched high into the air!

It reminded me of the Gemini test scenes in the movie The Right Stuff. I scratched my head for a while and eventually concluded that, unlike the motor mount screws, you really need to crank down on the propeller attachment chuck.


Props securely fastened, I tried again. This time, the copter got 3m up into the air and began to fly away from me quite quickly. Thinking I would bring it down and consider a recalibration, I eased off on the throttle. Cindi Lou (that's the copter's name)  descended a few feet while still drifting away from me and then promptly flipped over at a little under 1m from the ground and attacked the grass! My friends tried to contain their laughter as I inspected the damage, which was disabling but not catastrophic: cracks in the top and bottom plastic sections of the forward motor mount. Here are a few photos of the damage, and a video of both attempts. 3689385970?profile=original



 Eager to get back in the air, I ordered the $30 crash kit from the Fah Pah store. I would have preferred to order from DiyDrones (since they're in the US, not Thailand) but it seems they only sell full replacement frames and replacement arms. Not content to wait for delivery, I picked up some plastic repair epoxy from Ace Hardware and set about mending the motor mount. It looks fairly solid, but I'm not sure if I would be jeopardizing the rest the Cindi Lou should I attempt to fly on the repaired mount. My impatience to fly again is competing with my better judgment here...

Lessons learned

I'm not certain whether the crashed was caused by my poor construction job, or my poor piloting. I wonder if the pre-existing crack in the bottom motor mount section contributed to the crash. Either way, the crack in the top section was certainly caused on impact with the ground. One take-away message is to tighten the propeller chucks hard, but not the motor mount screws. Perhaps a more important one is to make sure the copter's horizontal motion has stopped entirely before attempting to land!


Read more…