No throttle sent to ESC on channel 8

I am trying to get my throttle to work on my traditional helicopter. I followed the setup outlined by Chris Olson on the youtube videos (thank you!). I do not see any output throttle applied to my ESC on the Servo Output page of Mission Planner.


I have confirmed that the ESC is calibrated (manually).

If I reverse the servo output, so it applies a 2000 PWM to my ESC it revs up. I can control the motors if I am directly plugged into channel 3 of my receiver. All my other servos function correctly.

I receive throttle from the radio no problem, and have calibrated it.


I arm the helicopter, and cannot control throttle.

Does anyone have a suggestion on what I may be missing?



it could be the SERVO8_TRIM value being set too high causing the ESC not to arm. Try setting that to 1000 and see if it works. It shows an output of 1000 pwm on your screen there, but I always set the trim for the throttle to the same as SERVO8_MIN to ensure the ESC initializes correctly.

Also, if you can, please post a param file if it doesn’t work. Mission Planner has been known to show one thing and set another for heli’s and we recommend only using the full parameter list to make any settings. GUI-type pages like you are showing there are highly suspect for not making correct settings for heli’s.

I agree with Chris. Post a param file and then tell us what which channel on the pixhawk you have the ESC physically plugged in to.

I set the trim to 1000 to match my minimum throttle. This did nothing.

In MP my servo output on Channel 8 shows no change in output when I move my throttle/collective stick.

My ESC has a master and a slave connection. Master is plugged into channel 8, and slave is plugged into channel 7 of the pixhawk.

Thanks for the help.


Setup.param (13.7 KB)

Something happened badly with your RC calibration. This is the values for RC8

As a comparison, this is the values for RC1, which we can be pretty sure is calibrated correctly:

With a min value of 1500 for RC8 I don’t know how it can arm. It should be roughly the same values as for channels 1-3.

Your servo settings look fine and looks like a very well setup machine prior to tuning. VFF’s set to 0.15 etc., might want to zero out the rate pitch I-gain prior to tuning

I’m pretty sure the problem is the RC cal on Channel 8. For some reason you are not getting full channel range there. You are using the RSC MODE 1 passthru so it could be a problem with a mix in your radio, or forgot to turn a knob to get the full channel range during cal?

Another question: why do you have the slave lead from the ESC plugged into the SERVO7 port? Are you powering the servo rail with it?

I have adjusted the RC8 values, but it did not seem to do anything. The radio output on channel 3 goes from -100% to +100%. I also looked at what my receiver sees, from the radio -100% to +100%. Those screens I attached in my initial post show a received throttle range of 1000 to 2000pwm (second photo). But this doesn’t translate to #8’s heliRSC function (first photo) - no output throttle.

I switched the RC8 function to RCIN3 (throttle input) and it lets me adjust throttle no problem (was set to HeliRSC). I’m not sure that this is safe to use though?

I used the slave connection for power to the servo rail. But it should work fine going through the master connection as well. I’ve debated on whether I keep it or not - less wires is always nice.


Do you have a switch set up on Channel 8 in your radio to make the channel go low to high? Looking at your screenshot in the first post it is evident that Channels 1-4 are calibrated to full range. But channels 5-10 are not. You have a partial range on channel 5, but 6-10 didn’t move during RC calibration. Each channel needs a stick (1-4) or switch/knob (5-10) assigned to it and during calibration you must calibrate all 10 channels. They should all have the same 1000 - 2001 pwm values as 1-4 have. If the radio is not outputting these values on channels 5-10, there is something wrong in the radio. The red lines on the calibration screen show the min and max that the system received for calibration.

No, it will not work. In ArduPilot Channel 3 is collective pitch. Channel 8 is throttle. Mission Planner shows Channel 3 as “throttle”, but that is for multirotors. Channel 8 requires a switch assigned to it that will change the output from 1000 min to 2001 max like the first four channels. That switch is your throttle hold in ArduPilot.

I don’t think it hurts anything to have both the master and slave connections going to the servo rail, as long as the master is on the SERVO8 output. Depending on the ESC, the slave output usually has rpm output on the signal wire is the only thing.

Channel 5 is my flight mode which is using a combination of two switches. I’ve scaled the pwm values so that I can achieve each of the 6 flight mode pwm ranges outlined in MP. Channels 6-10 aren’t programmed in my radio since I don’t have a function to assign to these (what function should they have?). I can set up my radio so that the pixhawk sees a 1000 to 2000 pwm range, but I don’t understand why this is necessary.

I’m not sure if it’s useful to know or not, but I am using the Jeti Duplex DS-16 radio and the Jeti Duplex RX10 receiver.

Am I not understanding how I should be programming throttle in my radio? I have programmed my throttle to transmit from channel 3 in my radio. This is seen no problem by the pixhawk. On my radio I have two switches programmed that let’s me either use the collective stick to also adjust throttle or go between different throttle levels (i.e. 0%, 60% throttle, or 80% max).

Thanks for the help.

Yes, you have the wrong setup in your radio. Perhaps review this again

You cannot use any sort of helicopter setup in the radio that does any mixes. The outputs on 1 thru 8 must all be calibrated to full range and must be straight outputs like a H1 swash heli, or airplane. All the mixing is done in the pixhawk. With the setup you are using for electric there is no connection between channel 3 and the throttle. All throttle control is handled only on Channel 8.

The Pixhawk is not putting out anything on Channel 8 because it’s not calibrated on the RC side. You must set up your radio to get a range of 1000-2001 pwm on all of the first 8 channels, then calibrate the Pixhawk’s RC input to “see” it during RC calibration before it’s going to work.


Thanks for pointing that out! I don’t know where I got my setup from. I will test this out tomorrow and report back.


I have exactly the same problem with a dual rotor frame. I believe I set all all the H_RSC params correctly and did not get anything. But it will work if I set input directly to RCin.
Servo8 was also set correctly to function=31.
Although I can use transmitter mix to control my external governor, but without the RSC rising, it will disarm itself in 15 seconds:frowning:

I also tried to use CH8 input, but the output is not mapped correctly. It has a very short range of input to jump from 1000 to 2000 in output.

So my issue was incorrect programming on my radio. I now have throttle control. The link Chris posted is what you need to follow. I think I found this page and followed it instead - which doesn’t work:

I am now trying to make sure everything is tuned correctly and I am having issues with my collective pitch. I followed pre-flight testing for the transmitter ( Everything works as it should. Move roll stick right, swashplate leans right. Move left, it leans left. Etc.

But if I move my collective pitch stick forward but my collective pitch is down to -2.5 degrees. If I move to a minimum I am at a collective pitch of +10 degrees. I can fix this on my radio by reversing the output signal.

However, if I set the CP to a minimum on the pixhawk (via h_sv_mode = 4) I get a maximum (+10 degrees) CP on the blades. Similar for a maximum CP (h_sv_mode = 2), I get a minimum CP (-2.5 degrees).

If I start reversing servos I think I will then have the roll and pitch of the helicopter flipped.

Any suggestions what I might have done here?


If you set H_SV_MAN to minimum and it goes to maximum collective pitch then all three of your cyclic servos need to be reversed.

But before we get too overly excited, what kind of heli is this? It isn’t a Thunder Tiger or something similar with reversed collective (swashplate goes down for increasing pitch)?

The helicopter is a minicopter Triabolo 800.

My understanding is nothing is reversed from normal, but I may be wrong. If I reverse all servos, won’t my roll and pitch stick be reversed as well?

Thanks for all of the help Chris.

Nice looking heli! I could not see the details of the head, but with three blade rotor and it looks like leading edge control, the collective should not be reversed. So when you move the swashplate up, the collective pitch should increase.

Double check to make sure you got the direction right in your radio. The only channel that should be reversed (usually) in the radio is the elevator on Channel 2. All other channels should be normal direction. If your radio shows the servo outputs on the screen, check it. The collective lever should go to low output with the collective back. And high output with the collective ahead.

If the RC direction is correct (double check to make sure Channel 2 is actually reversed), you will have reverse all the cyclic servos using the SERVOx_REVERSED params for SERVO’s 1, 2 and 3.

Edit: note an issue here we’ve been dealing with for a long time…
In multicopters “pitch” is on Channel 2 and “throttle” is on Channel 3. In heli’s “pitch” is on Channel 3 and “elevator” is on Channel 2. The common docs say to reverse the “pitch”. Well, that’s on Channel 2. You may have misunderstood that and accidentally reversed Channel 3 instead.

Maybe on this one, start a new thread for your tandem, and post a param file for it. Then we’ll take a look at it there without confusing what we’re working on with Mike.

So I switched the servos to reverse. This means I have 2 of 3 servos reversed - Servo1, and Servo3.

The collective pitch works properly now. I have set it to go between -2.5 (min collective) and +10 degrees (max collective). I’ve attached a shot of my swashplate and aileron servo (front left - connected to main out 1).

But the roll, and elevator are now reversed. If I push right on my cyclic stick (right stick), the swashplate moves tilts left. See here:

If I push forward on the cyclic stick, the swashplate tilts backward. See here:

I’m basing my swashplate motion off of what is described here:

OK, wait a minute here now. Now that I’ve seen a closeup of that head it looks like it has trailing edge control? In other words, looking at the top of the head, the blades turn CW, correct? And the blade grip arms are on the rear (trailing edge) of the blade grips, not on the front. Correct?

Unless I’m seeing the pictures wrong, that is a DFC head with trailing edge control. ArduPilot does not support that (yet). But ArduHeli 3.5.6 does support it - I just haven’t PR’d it to copter yet. So…

1.) reverse all your servos again to where you had them before.
2.) download ArduHeli 3.5.6 from here:

3.) install the ArduHeli firmware by using the “install custom firmware” option in your ground station
4.) it will drop right in over the top of Copter 3.5.5, except you will find a new parameter - H_COL_CTRL_DIR. Set that to 1 and write it to the FC - it is zero by default.
5.) Voila! your trailing edge control head will now work.

Be aware that with trailing edge control, the swashplate moves DOWN for positive collective pitch, not up. So verify your H_COL_MIN and MAX settings are still good and you get the correct pitch range.

This is correct. The blades move clockwise, and the arms are on the rear (trailing edge). Here I thought I was getting comfortable with all things RC helicopter :slight_smile:.

You are looking at the pictures correctly. It is a DFC head and trailing edge control.

I will update to your 3.5.6 version tomorrow and report back. I appreciate you sharing this and all of your help.

I hope to be flying soon!