Note: to view the .kml files in the article, you must download and install Google Earth.
Among my various hobbies, I fly aerobatics and I dabble with electronics. When flying competative aerobatics, which I started last year, you a gauged on the accuracy of your performance of certain maneuvers. ex. A loop should be a perfect circle, otherwise, you lose points. That being said, it's hard to do these things correctly, and you never get to "see" your own performance.
I needed a project to occupy my mind, so I decided to that I should build a flight data recorder that would allow me to track certain aspects of my flight such as 3d coordinates in space, G forces, roll rates, and possibly even cockpit voice. But certainly, the most useful would be the 3d position data. This could be done with a basic GPS unit, as they are able to not only determine your point on earth, but your altitude as well. With the help of an Arduino, I was able to build a device that would capture 1 data point per second and write it out to an SD card. I could then feed the data to a very cool utility, GPS Visualizer, which can take standard NMEA output:
...and convert it to a number of useful outputs, most particularly Google Earth, such that the flight could be viewed in a 3d world.
Flight Test Alpha
The first flight was a bust. The unit never got a GPS lock, so I collected no good data. My passenger ended up barfing. I was not a good day for technology or aviation.
Flight Test Beta
1286892046-21655-22.214.171.124.kmz (217.07 kb)
I decided that it would be quite expensive to go flying every time I needed to test the unit, so I asked a friend to take the unit up on one of his flights. The pilot was doign 3 ILS simulated approaches, which brought him from Hanscom Air Force Base to Manchester to Portsmith and back to Hanscom. It was a total success. You can not only see the entire flight track in detail, but pan around and see the elevation of the flight as well.
Note: Color coding is used to indicate groundspeed.
Flight Test Charlie
1286892076-21704-126.96.36.199.kmz (120.55 kb)
Having had a successful test completed, I decided to take it up for aerobatic testing. Everything appeared to work well, until I looked at the results:
Basically, the GPS unit I was using didn't like being inverted, or moved around a 4+ Gs. The altitude data was all wrong, and it "flattened" the whole flight. Also, my (different) passenger got sick. Back to the drawing board.
I decided I would replace the unit with a better unit that would sample at up to 4 times per second, had a omni-directional antenna, and was able to be configured to expect to be diving at 100 knots and pulling 5 Gs. Upon testing, I found that the unit would only reliably sample at 2 times per second. So with the unit rebuilt, and some coding modifications to handle the higher throughput more efficiently, I set out for...
Flight Test Delta
1289677643-30373-188.8.131.52.kmz (118.64 kb)
Instead of bringing someone for this flight, who would inevitably get sick and force me to truncate it prematurely, I decided to go it alone. I spent about 25 minutes doing loops, spins, half cubans, and the like. It was a good flight and I thought would yield some interesting data. When I got back on the ground, my heart sunk to see that the unit was not running. The power was still on, and the connections were solid. I concluded that the battery had been drained. It was a new 9v to begin with, so this think was sucking power. I would have to wait and see how much data I collected.
Once I got home, I eagerly uploaded the data, expecting to be disappointed. I was not. It got all of my acro. It died seconds after my last loop. I didn't get to see my landings, but this was cool. As for accuracy, it was well beyond my minimum expectations. Take a look:
A loop, looking a little pinched, but not bad.
Two separate 45 ups to a 1 turn spin (foreground) and 1 and 1/4 turn spin (background).
The whole ride.
Clearly, I'm very happy with the results and look forward to continued progress on both this project and my aerobatics. I highly recommend downlaod ing Google Earth and viewing the above .kml file. It's way cooler when you can pan around.
So here's what it looks like:
The black box (no pun intended) contains the 9v battery to power the unit.
On the right is the unit itself. It contains:
Here are a few things I'd like to do with it in the future:
- Capture up to 9 degrees of motion. This includes acceleration, rotation, and magnetic direction. This will allow me to better present the flight, since the current data indicates nothing about flight attitude. If I feel like getting real geeky, I could use this data in coordination with the GPS to get a more accurate display of the flight track
- Audio. I would love to be able to "playback" the flight with narrations about what's going on, and my thoughts for later anaysis.
- Migrate to a Netduino. Writing code for the Arduino is not exactly fun. I spent hours debugging my code, and going for test drives in my car. I'm a .NET guy, so the prospect for building this thing in Visual Studio with the Compact .NET framework sounds too good to be true. I believe it has more memory and a faster processor as well. for $5 more, it's a no brainer. Sadly, I didn't find out about this until after doing it all on an Arduino.
- Better power efficiency. Chewing through a 9v battery in just over an hour sucks.
- Better battery. Perhaps a rechargeable lithium battery will also serve to give me more runtime.