CrazyCopter – A Flying PCB    Posted:

To err is human, to really screw up requires a computer    Posted:

Or an autopilot in this case. Something went wrong with the ArduPilot and the AXN Floater dived into the ground from about 50m up.

First, some nice photos from the day, which had perfect flying conditions:


And a video of a couple of ArduPilot stabilised glides down from about 170m. The glide ratio is about 10%, covering 1200-1500m.

Altitude profile of the last flight:

View all details

Overall, the AXN Floater was a great plane, I flew it for 2 months getting about 26 sessions and 7 hours of logged flight time. It took about 1 hour of flying over 5 sessions to learn as I was starting from nothing and didn't have anyone to show me the ropes (a bit stupid really, but the plane survived a couple of rebuilds and replaced servos). The eventual battery life was between 15 and 25 minutes (from a 2200mAh 3S LiPo) and it was covering about 15km distance along the ground in a session.

The maximum altitude I flew to was probably about 200m (I logged 183m with the ArduPilot on board) and the cruising speeds were between 30-70km/h on average.

I've no idea what caused the crash, I had some issues while attempting to test the Loiter and RTL modes, but was able to recover from those. At the time of the crash it was flying fairly quickly (throttle nearly wide open) and there was a bit of a wobble/turbulence, then it just turned and dived:

The fuselage was very damaged, broken in a few places including the motor pod, but the wings are salvagable. The main thing stopping me bothering to repair it (for now) is that the receiver antenna was cut (even though I hot-glued it), and since it's a coaxial cable, it's going to be pretty impossible to repair and still guarantee a decent range.

The ArduPilot was protected well by it's pod, though the GPS socket was ripped from the ArduPilot board. Thankfully there are through-the-board holes I can solder it back on to later.


Time to get serious with the QuadCopter now!

Festo SmartBird    Posted:

Pretty awesome really. Other videos gave the impression it was closer to life-size, it's got a 2m wingspan!

Adding a stabilising gyro to the AXN Floater    Posted:

I thought I'd try adding a gyro to my AXN Floater to provide some el-cheapo stabilisation (when I didn't want the ArduPilot onboard).

I found a heading hold gyro from DealExtreme and hoped it would work (the standard HobbyKing 401B one wasn't in stock). It really does come in a "Lithium Polymer Battery" package and had no instructions, but looking around at similar products on the web gives you the general idea of how to use it.

It's attached with double sided foam tape and hooked up inline on the elevator channel and a control channel so I can switch it on and off mid-flight.

The control channel determines how the gyro behaves:

  • "Left" or "negative"
    The gyro is in rate mode. It will dampen wobbles and slowly adjust to the new roll angle (i think the delay pot controls how fast this happens)
  • "Center" or "zero"
    The gyro is off and has no effect.
  • "Right" or "positive"
    Heading hold mode, generally used by helicopters and not what is normally recommended for use in planes. This doesn't really seem to be a problem, when you let go of the elevator stick it will hold the current roll angle, rather than levelling itself back out. This is quite easy to get used to when flying as it's basically what the plane will do without the gyro but it does mean it handles differently to how the ArduPilot stabilisation mode works, which is to "magically" right the plane and keep it flying straight and level when you let go of the sticks.

To set this up on the Turnigy 9X transmitter, I did the following:

  1. Go to [AUX-CH] and set CH5 to THRO HOLD (this is the switch on the back left of the transmitter and will be used to switch the gyro on/off)
  2. Go to [PROG.MIX] and set up MIX1 as follows:
    State: ACT
    Master: GYR
    Slave: FLP
    Offset: 000
    Uprate: 000
    Dnrate: 075 (This is the gain, you can tweak this to make it more or less sensitive)
    Sw: NOR
  3. The above is for "heading hold" mode, for "rate" mode, change use the values below instead:
    Uprate: -075
    Dnrate: 000
  4. Plug the gyro control plug into CH6 on the receiver.

The above is a bit random, FLP probably should be the master and GYR the slave, but that didn't work for some reason, and ideally you'd use one of the pots to adjust the gain. Using the PIT TRIM directly to control the gain works, but doesn't allow you to quickly find the zero position and switch the gyro off if you need to, so I went with the switch option instead. Someday I may try and program this into the 3 position switch so it had off/rate/heading hold modes.

I haven't flown with it in the wind yet, but expect it should work and it's certainly a cheap and easy experiment.

Li-Ion battery modification for Turnigy 9x    Posted:

Just followed along with this tutorial to convert my Turnigy 9X transmitter to use Li-Ion batteries.

I used the 2500mAh batteries from DealExtreme, nice and cheap. Hot-glued them together and soldered on an XT60 connector so I can charge them easily too. They're much bigger than they look in the photos, not AA sized, but they fit in the 9X compartment with no problems.

Overall, the modification seems to have worked fine, the initial voltage reading on the transmitter was 7.9V with the new batteries, after soldering in the 8.2k resistor it now shows 10.2V. Soldering the resistor was a bit tricky, but doable and certainly better than fussing around charging all those NiMH batteries.

QuadCopter frame ideas    Posted:

A simple version that looks quite nice:

And a deluxe version (that floats, awesome!):

DeX Quad from DeX on Vimeo.

ArduPilot test flights    Posted:

I built a pod from 3mm plywood & hot glue to mount and protect my ArduPilot on my AXN Floater. The box weighed in at about 29g and the entire ArduPilot at about 90g.


I immediately went out to test fly it and this turned out to be a mistake. It was a bit windy and the extra weight meant the plane had to fly too fast for the small field and I crashed into a tree. Thankfully the pod protected the ArduPilot nicely, though the same can't be said for my receiver. Though I didn't notice at the time, the coax antenna cable got a small cut in it, which caused a few problems later as the range was drastically reduced. I gave up and came back the next morning for another go.

The second session went terribly, presumably because of the reduced transmitter range. I switched the ArduPilot into Stabilisation mode at one point and it dived into the ground. Other times the engine would cut out or the throttle would open fully. This all ended in me climbing a tree to retrieve the plane, but nothing was seriously damaged.

Changing tack, I began testing the stabilisation mode by simply throwing the plane in a straight line with low throttle across the field and landing it. This worked fine, but exposed the range issue for what it was.

So, I replaced the receiver with my spare and rebuilt the pod with a bit more protection.


Test flying it this time in better conditions all went much better. Stabilisation mode works like a charm, the Fly-by-wire worked, but was a bit to "tame" with a turning circle that was too large for comfort. I haven't tested the other "more automatic" modes yet, but the data logger is working well.

The following screenshot from Google Earth shows a KML file I generated of the AXN Floater gliding down to a landing:


And with a lot of fiddling around (to synchronise the ArduPilot log with the video) I was able to overlay the stats from the log over the onboard video:

This flight starts nice and high, cuts the engine and then glides down under stabilisation mode to a landing.

It's not really clear to me yet how much the "instrument error" on the video is due to:

  • bad synchronisation (likely, an error of 1 second is more than enough to make the visuals not line up properly, and it was tricky enough getting the sound to synchronise as bad as it is...)
  • buggy rendering code, or
  • measurement errors (does the ATT: roll take account of centrifugal force for example)

Programming an ArduPilot mode switch for Turnigy 9X transmitter    Posted:

I just managed to setup my Turnigy 9X transmitter so I can use a toggle switch and the 3-way switch to select between 6 modes on the ArduPilot. It took a lot of experimenting, and interminable beeping, but it's just about perfect now:

  • The "THR CUT" switch (back left) switches between "Manual" modes and "Auto" modes, and
  • The 3 position "AUX 3 F. MODE" switches between "sub modes": Manual / Stabilised / Fly-by-wire and Auto / Loiter / RTL.

The Turnigy 9X (aka FlySky 9X, iMax 9X ...) transmitter is cheap and works well but has attrocious documentation and menus, add to that my limited experience with radio control and it's a bit of a miracle I figured this out.

  1. Go into the FUNC SETTING menu
  2. Go to the [AUX-CH] menu on the second page
  3. Change CH5 to THRO HOLD, hit Menu to save and return to the menu
  4. Go up to [PROG.MIX]
  5. Setup MIX1 as follows:
    State: ACT
    Master: GYR
    Slave: FLP
    Offset: 000
    Uprate: -020
    Dnrate: -020
    Sw: ID2Hit Menu to save.
  6. Setup MIX2 as follows:
    State: ACT
    Master: GYR
    Slave: FLP
    Offset: 000
    Uprate: -050
    Dnrate: -050
    Sw: ID1
  7. Setup MIX3 as follows:
    State: ACT
    Master: GYR
    Slave: FLP
    Offset: 000
    Uprate: -100
    Dnrate: -100
    Sw: NOR
  8. Check the [DISPLAY] to make sure that the FLP output is changing to 6 different positions depending on the positions of the 2 switches.
  9. Connect CH6 of the receiver to the APM Mode input (IN8)
  10. Connect to the APM CLI
  11. Go into the "setup" mode
  12. Calibrate the tx/rx using "radio", including all the positions of the 2 switches.
  13. "exit" "setup" mode and go into "test" mode
  14. Use the "pwm" test to ensure the pwm values on IN8 for each switch position falls within the ranges required by the APM readSwitch() function:
    Pos 0: <= 1230
    Pos 1: 1230 - 1360
    Pos 2: 1361 - 1490
    Pos 3: 1491 - 1620
    Pos 4: 1621 - 1750
    Pos 5: >= 1750
  15. Go back into the "setup" menu and enter "modes" and set them up to your liking. I did the following as it meant that the "THR CUT" switch flips between the "manual" modes and the "auto" modes, and the 3-way switch selects the sub-modes and most importantly, that "position 5" which is hard-coded to "Manual" mode corresponds to both switches being in the "up" position which is required for the transmitter to start without it's "Switch error!" message:Pos 0: Auto
    Pos 1: Loiter
    Pos 2: RTL
    Pos 3: FBW_A
    Pos 4: Stabilize
    Pos 5: Manual

While setting this all up, I made constant use of the [DISPLAY] function on the Turnigy 9X to see that the output was getting closer to what I wanted.

Since I wasn't able to find any working information on this elsewhere I'm posting it in the hope it helps other people get their transmitters working nicely with the ArduPilot and so I can do it again if and when I need to.

It should be simple enough to vary these instructions to use a different button/channel too.

There are a couple of downsides to this setup (that I know of, if there are more or you have any improvements, please let me know):

  • CH5 is now not really usable
  • The "AUX 3 F. MODE" can't be used for whatever it usually does...

Note: At this point, it's also worth figuring out how to have multiple models saved in the transmitter, so you can switch between the ArduPilot setup and a simple version for flying without the ArduPilot installed. It's easy enough, though editing the names is very tedious.

An ArduPilot of my own    Posted:

I ordered an ArduPilot Mega Kit from last week and it arrived today.

According to my tech tree, it was the most productive step to take, providing me with lots of cool functionality for the plane and staring down the path to a QuadCopter. I considered the OpenPilot board, which looks and sounds great, but since it isn't really available yet I'm hoping ArduPilot will do everything I want.

It's really much smaller than I expected, not a lot bigger than my receiver. I actually thought for a second that maybe they hadn't sent me everything (it was buried in a big box with lots of polystyrene peanuts):


182 solder joints later and it was ready to be assembled:


Loading the firmware (following along with this post to get Arduino and the ArduPilot Mega Planner installed on Ubuntu and running under mono, I haven't linked it to the simulator yet):


The board was recognised with no problems by Ubuntu, showing up as /dev/ttyUSB1 (I already have another FTDI device that shows up as /dev/ttyUSB0.)

Connecting it up to the receiver (I'm still considering how to mount it "permanently" onto my AXN Floater):


A little clip showing the stabilisation mode in action, I had to use the DIP switch to reverse the elevator:

There'll be lots more info coming as I really get it going.

Aerial panorama of Melbourne skyline    Posted:

A panorama from the Royal Park video (view full size & make sure your browser hasn't shrunk it to fit):


The panorama consists of 36 frames from a 6 or 7 second period (approximately every 1/5th of a second) and was stitched with Hugin which also did some exposure compensation.

It's a bit messy because of the receiver aerial (red) and timestamp (yellow) which could probably be removed with some more effort.

The image is about 1.8 megapixel and spans about 155 degrees. Not bad from a $20 camera.

© 2013 · Source · RSS