I have just bought the ArduPilot Mega 2560 Full Kit... plus the Triple Axis Magnetometer HMC5883L. I should have it built over the weekend.. then i'm off to a my mates machine shop, and i'll make the splitter plate for the lower frame onto which i am going to fit the Ardupilot. the magnetometer i'll put on the tail as suggested. I am going to use my X-cell Razor 600E. For those that dont know its around the 50 size nitro heli.

Do i need to buy any other sensors i.e. the Sonar... i can fly a helicopter all day long but this is my first time flying one with stabilisation so any tips would be gratefully appreciated.

If this works well then i am going to try and use it on my x-cell gasser. i can get up to 20 minute flights with this. But i think for the time being a battery 600 is the way to go.

i'll post some pictures when i have it all together.



Setup Instructions

Views: 46032

Reply to This

Replies to This Discussion

I have finally added in some code to trunk (ver .50) which scales the throttle from the pilot to match the collective pitch limits.  This fixes issue #246.  I've also written the explanation of the issue below.  I haven't updated the APMissionPlanner yet to dispense this fix yet.



In the CLI's setup, heli function (or in the AP_MissionPlanner) users set up the range of motion of the helicopter's swash plate in order to stop servo binding.

In cases where a small range is set-up (i.e. say only 20% of the possible servo travel), the user must also modify their radio channel 3 end points to match this limited range.  If they don't do this, they find the collective pitch control is overly sensitive and they're only able to use a limited range of the control stick.  Setting the endpoints however has the side effect that the range of inputs that the APM sees from the receiver is also limited and so the user can't perform certain functions like "arm motors" or adjust the altitude when in ALT_HOLD or LOITER.

We should modify the code so that the full range of values from the radio channel 3 are accepted but then scaled down to move the swash/collective appropriately.


Another small improvement added - you can now update the external gyro's gain directly from your transmitter's channel 6 (the tuning knob) if you set the TUNE value to 13 via the AP_MissionPlanner.  Hopefully this will save some messing around with wires.


Wiki page also updated. 

Randy, did you make the "# define INSTANT_PWM ENABLED" change in .50, or is that something unique to my case?


I got the sonar installed today, I'm not too sure if the location is ok, but it's basically installed right on the bottom of the frame facing down, about 2" away from the APM for nice short wiring.


I'm having some trouble with the magnetometer now however.  It seemed to be reading ok before (just holding it in my hand), but now that it's mounted on the tail, it seems to always read west-ish, no matter which way I turn the heli.


Compounding matters, while fiddling with that, I have torn the USB connector off the board. :(  It was surprisingly easy actually.  I'm not sure if that's normal for this component, or if the solder joints were cold.  Just popped right off. (yes, obviously I did stress it with the wire plugged in).


Now I have to figure out how to repair that which looks pretty tricky with the surface mount solder pads.  >8-(


Whew!  I got it on, and it seems to be working.  I had to grind my soldering iron tip to a needle point.  I added a dab of solder to the 4 mounting pads and just reflowed the five pins.  It seems to be working!


I hesitate to suggest this because maybe it's risky, but people might want to think about adding a dab of solder to the mounting pads to make sure they're fixed more solidly.  There isn't much solder there with the surface mount.


     I added the #define INSTANT_PWM ENABLED to the default config so that it will be dispensed from the AP_MissionPlanner. If you're loading your code through arduino you will just need to make that addition to your APM_Config.h file locally.

     I use to mount my sonar like you have but I moved it to the tail in the hopes that that would reduce the amount of interference from all the other electronics.  I think my altitude hold has improved since doing that because of less spikes in the sonar data.  depends on your set-up though but if you see lots of spikes..you might want to try moving it to the tail.

     Re the mag - definitely look for metal screws nearby.  I use nylon screw and rubber grommets to secure my mag to some spare servo mounts.

     Good to hear you've fixed the usb connector.  I've never pulled one off but I can believe it's very possible!

Well... I mounted my mag with metal screws! LOL


I'll try removing it and see if it works.  I got confused seeing videos showing how to calibrate it with ArducopterNG, but I think I figured out that AC2 doesn't work like that, and calibrates in flight?  I turned it on and did a dance with my heli (this time with the USB unplugged...)


In CLI, I did setup/compass, I see the offsets are all zero.  I hope my mag isn't busted.


Do you mean to say that .50 is dispensed in APMP now, or you added #define INSTANT_PWM ENABLED to the code in .49?

Ok, duh, the mag is fine.  Now to find some plastic screws that fit! :D


I doesn't completely agree with the compass on my smartphone, but I'm in the basement, and I assume it'll get better.

Found some aluminum screws which seem to be ok.


Pulled out a real compass.  It doesn't agree with either the helicopter or my phone. :rolleyes:


     Good news on the compass.

     As you suspected, the compass initialisation is quite different from ArducopterNG.  In ACM we use the magical automatic nulling of mag offsets which will figure it out within a couple of minutes of flight and when you put the throttle (i.e. collective pitch) to minimum will save it back to the eeprom.

   APMP is dispensing 2.0.50 from about an hour ago.  I did a flight this morning testing loiter which was fairly successful so I figured it's safe to upgrade the code.

    When you ask if  "#define INSTANT_PWM ENABLED" was included in 0.49..the answer depends upon how you loaded the code.  If you loaded it through the APMP then I think that link was included, but if you're loading it yourself through arduino then it's only included if you add it yourself to the APM_Config.h file.



Do you need to "arm" the motors to make it save the offsets?  I did a few flights today and it didn't seem to save the offsets.

It looks like from this bit of code that it actually needs to have been running for 6 minutes and you must have your collective pitch completely down (i.e. swash plate at lowest possible position) and be in stabilise mode.



static void slow_loop()
 // This is the slow (3 1/3 Hz) loop pieces
 switch (slow_loopCounter){
  case 0:

   if(superslow_loopCounter > 1200){
     if(g.rc_3.control_in == 0 && control_mode == STABILIZE && g.compass_enabled){
      superslow_loopCounter = 0;


So, I just wanted to post a couple pictures of my install.  I'm pretty happy with how it worked out.  The APM fits nicely on the radio tray of my HK600GT.  I'm using a machined aluminum tray which is available from HobbyKing.  I drilled it and mounted the APM using servo rubber dampers screws and locknuts.  The receiver is attached with velcro on the other side.  I really like this because it's like a sled, the whole thing comes out as a unit with only a couple connections to undo.  The provided 5mm servo wires were not long enough so I needed to use some short extensions.  I don't really like this for obvious reasons so I'll order some 12mm extensions when I buy my Xbee next week.  I glued a small piece of foam on top of the Barometric sensor.



I would prefer just to have the APM turned around facing forward, and I found the discussion thread where that is explained, just need to flip a couple signs in an array for the IMU sensors.  The only issue with that would be access to the USB port and CLI switch might be difficult.



You'll also notice the header where I plug in the sonar sensor at the back.  Note how I painted the plastic seperator just to indicate which way around the wires plug in.  Black/red/yellow.  Just makes it a bit easier.



A couple things about the heli.  It's an HK600GT as I mentioned, running a Turnigy T600 880kv motor running on 2x4S(=8S) 5000mAh packs.  Turnigy SuperBrain 100A ESC.  Turnigy MG958 servos on the cyclic and HV-3S servo for the tail (the stupid fast one).  I would like to get faster servos on the swash plate when I upgrade to flybarless.


Here's where I mounted the components on the tail.  Previously I made a new stabilizer out of sheet plastic which I painted red for visibility.  I don't like the "Skeletor" look of the stock carbon fiber pieces.



I'd like to put something over the GPS sensor, but I need to find the right thing...



DIY Drones Monthly


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2016   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service