Hello all. I’m new to Ardupilot and Pixhawk. And I’m having a terrible time figuring out the servo mapping for a conventional CCPM helicopter.
Here’s what I have:
Pixhawk 1 clone labeled Pix 2.4.8. Loaded with 4.0.1 copter firmware. But also tried others.
JR XP9303H transmitter with Dragonlink V1 RF conversion. + Dragonlink V1 receiver with PPM sum out.
Minicopter Joker 2 heli, with 3 servo CCPM. Elevator servo in front at 0 degrees. And the other two in back at +90 and -90 degrees.
I have the swashplate servos on outputs 1, 2 and 3 of the Pixhawk.
The problem is, no matter what configuration or combinations of settings I try. I can’t get the servos to respond correctly.
The main problem is that I can’t remap the output of the transmitter channels. They are coming into the pixhawk in the wrong positions. The TX outputs are: Ch1 = throttle. Ch2 = roll/tilt. Ch3 = elevator. Ch4 = Rudder/yaw. Ch6 = Roll/tilt. And collective is summed on Ch 2,3 and 6. Ardupilot doesn’t seem to like this. And won’t let me remap properly. I also tried QGroundControl, and had no luck with that.
Chris,
Welcome and I’m sorry to hear about your problems with your setup. First thing to understand is that the pixhawk will do all of the mixing for the servos so you don’t want to use a heli setup in your transmitter. Just make it a plane setup in your transmitter.
Have you read through the wiki connections page here.
If your transmitter outputs are still the same then you can remap these with the following parameters
RCMAP_PITCH
RCMAP_ROLL
RCMAP_THROTTLE
RCMAP_YAW
You will do this in the Config/Tuning tab in mission planner. Then there is the full parameter list selection in the window on the left. Scroll to these parameters and set the corresponding channels. You see the field turn green once you enter the number. To send these settings to the controller you will click on the write params button on the right side of the screen.
Please read through the rest of the seup info in the wiki for Trad heli
Bill. Thanks very much for your quick response. Very helpful.
I read through the entire wiki, at least three times. But there’s a lot to digest there. So I guess I missed about changing the TX to plane mode. I did as you suggested, and I was able to re-calibrate the radio, and adjust the outputs to get proper movement of the cyclic servos using the pitch/roll stick (Mode 2 TX). However, I don’t get any movement in the collective axis when using the throttle stick. I’ll look through the wiki again, to see what adjustments are required.
At least I finally made some progress. Thanks again.
Chris,
Ok. so the collective uses the throttle stick on the transmitter and the throttle that controls your engine is done on a separate channel. Turning the engine on and off is done through motor interlock. The actual output of the throttle signal is done through the rotor speed controller (RSC). If using an electric engine then just set the RSC_MODE to 2 for setpoint. Then set the RSC_SETPOINT parameter to the percent throttle to output to the esc.
With your swashplate it sounds like it is not the typical 120 CCPM swashplate. It is an H4-90 where from the diagram on the wiki page you will use motors 1, 2 and 5. that translates to the servo function of 33, 34, and 37. So you will set the H_Swash_type to the H4-90 and set your servo functions accordingly.
this is due to not having that channel setup properly in your RC transmitter and on the pixhawk. motor interlock defaults to channel 8. So set up a switch on your transmitter that is 2 position and it will act as a throttle hold switch. with the switch low, it says motor interlock is disabled (throttle hold on) and with it high, it says motor interlock enabled (throttle hold off). When ever you are disarmed, the motor interlock must be disabled (throttle hold on). otherwise it won’t let you arm the aircraft.
Unfortunately, Plane Mode on my TX disables the throttle hold. I’ll have to figure out what other switch I can map to channel 8. Anyway. I think I’m on the right track.
I’ll tinker around with it some more tomorrow evening, and let you know how it works out.
Thanks again for you assistance. You have been very kind. Have a good rest of your evening.
I only mentioned that because tradheli has the feature built in. You just need to set a switch to channel 8. Just check the Param RC8_OPTION is set to 32 (motor interlock.
I got the CH8 switch set up and it seems to work. But I still don’t have collective control. And I messed up my cyclic. I think I have the “Servo output” Functions selected wrongly. I have been trying "RC1, 2, 3 ect. Or Passthrough. What am I supposed to be using here?
Please save the parameters using the Save Params button on the right side of the Full Parameter List screen. Then post it here. That will help me guide you on your setup.
So when you load up the firmware for the first time, you don’t need to touch the servo outputs. Their default values were for motor 1 to 4 on servos 1 to 4. Sorry if this is confusing. Been trying to make the wiki better but obviously its not there yet
That’s okay. There’s a lot of complicated info to cover. And I should have not changed the outputs. But I was running around in circles trying to get it to work. Desperation will do that to you sometimes. All that said. Without your help I would still be chasing this. And probably would have given up.
I looked through your param file. So far here are some suggested changes
SERVO5_FUNCTION
SERVO6_FUNCTION
SERVO8_FUNCTION
change these to 0. You’ll have to make one of the servo channels HeliRSC (function #31). However if you make servo8_function zero and then reboot the controller, I believe it will automatically assign that channel HeliRSC. If you are ok with that output for your esc then just plug the esc in to output 8.
I was using 5,6 and 8 to test TX switches. But don’t need 5 and 6 any more. So I disabled them, as you suggested. And servo 8 is now set to RSC (#31).
I need to change out the Deans connectors on my battery and ESC for XT60’s for the HV power module. Or vice versa. So it’s difficult to test and calibrate the ESC right now. But in the mean time, I can tune the servo travels. And try to set up the hall effect sensor for rotor speed. I wish I could also add my motor temp sensor, but I don’t see how the Pixhawk can interpolate that input. Anyway. lots of progress being mane so far.