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.
Thanks Michael, it was a stupid problem. New install of Arduino, have to set the board type... I got it now. Would be great if the compiler errors indicated the problem, but they looked bizare. Like I keep saying, I'm a great idiotproof tester. Arduino is NOT idiotproof. :)
We had this discussion a couple of days ago higher up in the thread...if you move the mid point, i think it's totally reasonable for the upper and lower limits of that servo to move as well. Surely if the mid point of the servo is not correct, the top and bottom are also not correct. So I think the min/max of HS1 moving to 1400 and 2000 is correct behaviour.
I've checked the code (see around line 179) and when calculating the output to the individual servo, the trim is added to the collective pitch value so the servo should be allowed to travel to 2100. Maybe you could check? I'll also have a look.
Randy, maybe the discussion on this point should consider what typical heli setups using a simple radio will do. Maybe that is the confusion, as they may NOT move the endpoint up when you move trim. I think that is the case.
Then once we understand the difference, we can discuss which is the best implementation. I believe moving the endpoint makes sense, and it's just something experienced heli guys will need to get used to.
Ok guys, can you please try and compile and upload this? I've taken a crack at fixing the problem with the swash min and max movements. You will see that *absolute* servo movements are controlled by swash_min and swash_max in heli.pde. Default is 1100 and 1900, but you could change this before compiling.
!!!DO NOT FLY THIS!!!
I want Randy to check it first. I don't even know if it works. I can't test it because my APM is in pieces at the moment. If you try it, please erase/reset the boards and go through setup fresh.
Robert, et al,
I know I'm going to come across sounding like a complete jerk here but after reading this thread I really feel like you guys should take some time to familiarize yourselves with how all the other commercial FBL/stabilizers work with regards to this issue (and others). Nearly all use some sort of stick scaling - Skookum, VBar, etc. and the swash mins/max get's set by the stick calibration routines and the controller honors the min/max set by the sticks. I might be wrong but I think the Arducopter code does this already and if you follow the steps I posted earlier you'll solve this problem without any code changes.
Also, it's all about blade angles and you can't relay on PWM values to relate to that in any way because servos and mechanics are different on every helicopter. Typical 3D helicopters use +/- 10 to 13 for collective and ~8 to 10 for cyclic limits. You can go less say 8 to 10 for collective and 6 to 8 for cyclic but you need enough for the controller to be effective in all conditions. If it's too fast for you as a pilot then dial in some expo in your transmitter.
Please forgive me if I'm sounding like a know-it-all here. I do have lots and lots of experience in this area of traditional helicopters though (TH's) and I've used nearly every FBL/stablizer on the market - Skookum, Futaba, Helicommand, CopterControl, Vbar, 3G, 3GX, BeastX, FMA, to name a few. Before adding stuff to ArduCopter it would be best for us all for those changing the code to get familiar with at least some of this (CopterControl would be a good start along with Skookum - both have stabilization modes).
Ron, no problem. We appreciate having anybody knowledgable along for the ride.
You have confirmed how I thought this should work. I'm not adding anything new here, this "patch" is just to get the swash moving how it should.
cant seem to get it to compile...getting a few errors, i'm no programmer so i have no idea..
Hmmm... I compiled it at home no problem.
Are you using Arduino 022 Relaxpatch?
Did you copy the libraries in the zipped folder to the arduino libraries?
Did you set board type to 2560 in Arduino before attempting?
Maybe tonight I can put mine back together so I can test it. I just haven't decided yet which way I should mount the APM. Suspended on an O-ring hammock? Or use the gel sandwich method (gel, metal plate, gel, board)
yup did all of that, so i checked 2.0.1r and that worked fine, i compile the software quite alot when i'm messing about with my other APM1.0 Check it for me please Robert. would really like to give it a go. It might well be my fault.
I have never really liked the idea of the hammock, i think it puts way too much load on the holes in the board. Plus i have ever really liked the idea of it bouncing around on the o-rings. I have never had a problem with the gell/gyro mounting system.
Hmmm... I just tried again. I unzipped a fresh version of Arduino 0022 relaxpatch, and downloaded my zip and unzipped it. Copied the libraries into the library folder (do not overwrite the entire folder, just add the libraries into it. And compiled, no problem. Not sure what to say.
I just had another idea for the mount. Combine the best of both worlds. Suspend the board with O-rings in order to hold it in position, but then have it resting on gel on the bottom. I've wondered with the gel method, how do you actually secure it without creating a vibration path? So this would secure it, which also preventing excessive vertical movement.
I had a feeling you were going to say that, i'll delete me copy or arduino and have a go tomorrow.
Probably somethingi did.
Yeah, it's entirely possible that somewhere along the way you've done something to the libraries. I find that I pretty much have to use a new Arduino download every time I try a new version of the code.