Pixhawk and Castle Creations QuadPack 25 -- ESCs Just Blink

I’m soooooo close on my Pixhawk build – I’m encouraged.

  • Pixhawk boots up fine
  • 3DR Radio works fine
  • GPS works fine
  • DX6 Transmitter w/Spectrum Satellite works fine
  • Red push-button goes from blinking to solid when I hold it down
  • I get the green blinking read-to-arm light
  • Moving the Throttle down and to the left arms the Pixhawk
  • Once armed, I get a solid green light and the radio recognizes the Pixhawk as armed
  • The Castle Creations ESCs are properly programmed

I’m using a Castle Creations 25 Quad Pack – it has a BEC on one of the ESCs and the other three do not have BECs. I’ve plugged the four ESC connectors into ports 1-4 on my Quadcopter (in the correct orientation, obviously).

The ESCs just blink red the entire time though – the motors don’t turn. I saw this before when I was first testing-out the ESCs by plugging them directly into a Spectrum receiver. The ESCs need a super-low throttle signal in order to arm them. I could achieve this signal by taking the throttle all the way down and trimming the throttle down on top of that – it takes a really low signal.

I have an octo that uses the Castle Creations HV 40’s (same programming interface) and apparently the DJI A2 system makes the super-low throttle signal (so I know it can be tricked by a controller – I’m actively trying to move away from DJI) that will correctly initialize them. It would appear that even though my Pixhawk is armed, the 25’s I’m using aren’t ever seeing that necessary super-low signal.

What am I doing wrong?

P.S. I tried doing the ESC calibration sequence (where you power-up the controller at full throttle), but the ESCs didn’t seem to be interested in that. For some reason, I believe the Castle Creations ESCs have fixed endpoints anyway – don’t they?

Thank you in advance.

Please try this procedure


I have a set of those same Castle ESCs I’m using on a tricopter. I haven’t quite got to powering them up yet, but I’ve studied them and they are a bit different. You are correct, they do have fixed endpoints if you are using Castle’s multirotor firmware setting. So I believe the ESC calibration we normally do won’t work. Probably the simplest way to deal with it is to manually set the endpoints in your RC transmitter’s throttle so the output ranges from just below 1.3 msec up to 1.8 msec. Your low throttle has to be below 1.3 msec for arming to occur. The following is from Castle’s instructions on these things.

“Note: In Multi-Rotor mode (default) ESCs expect an input signal between 1.3ms and 1.8ms while running the motor. Inputs below 1.3ms will be seen as zero throttle, allowing the controller to arm. Inputs greater than 1.8ms will be seen as full throttle.”

If this works for you I’d be interested in hearing how it goes. I’m real curious to try them out as they are very small and light. I’ll probably be ready to try and fire mine up next week.

More results… I’m getting so close it’s crazy.

  1. I’m definitely using fixed endpoints ESCs – they don’t accept a calibration procedure (manual or the APM all-at-once approach).

  2. I created a second model on the same DX6 transmitter as my Pixhawk and bound it to the receiver that came with the original transmitter. The throttle limits defaulted to -100% to +100% and I left them at that – no trim either.

  3. Then one by one, I plugged the ESC signal lines into the throttle input of the DX6 receiver. At 0% throttle, the signal was low enough (below 1.3 msec) and sure enough, it armed. From there I could control the ESC via the throttle stick just fine.

    a) I tested the three non-BEC ESCs with the use of a secondary BEC and they worked fine
    b) I used the ESC with a BEC alone (removed the secondary BEC) and they worked fine
    c) There are no timeout issues with these ESCs – I could arm them anytime (even minutes later) with a sub-1.3 ms pulse
    d) Once plugged back into the Pixhawk after being armed, they went back to steady blinking (I guess you can’t disrupt the PWM signal or it requires a fresh re-arming).

  4. I then switched back to my Pixhawk-based receiver and verified that the throttle endpoints on my transmitter were also -100% / +100% – they were. But the ESCs still didn’t see the arm signal, even though I had a solid green light on the Pixhawk and Mission Planner saw the device as armed (I had correctly done the arming sequence).

  5. Then just to try something, I tried trimming down the throttle on the receiver side – which should have passed along a signal lower than the throttle’s original calibration (I calibrated the sticks with no trim in any direction). I was thinking that might send that special sub-1.3 ms signal I needed, but no luck. The ESCs still blink.

I’m wondering if the Pixhawk is just dead-set on not sending low throttle pulses below the 1.3ms range. We need to trick these ESCs into seeing something slightly lower than that for just a brief moment so they’ll arm. With these being Castle Creations ESCs (which I thought were fairly popular), I’d think there is a workaround out there somewhere.

You might try hooking up to Mission Planner via USB and pulling up the Failsafe setting page. There it shows the PWM both in and out for all channels. That way you can verify the signal your RC transmitter is putting out for the throttle, as well as what the Pixhawk is doing with it. You might end up having to reduce the RC3_MIN value to get it under 1300.

Great information! Thank you. It works, but I don’t completely understand why changing RC3_MIN worked. Do you mind explaining?

Here’s what I have from the Failsafe screen:

My RC control throttle goes from 1151 (all the way low) to 1867 (full on)

When it didn’t work the RC outputs for the motors are:

Disarmed: 1151
Armed at Zero Throttle: 1221
Armed at Full Throttle: 1711-1816 (varies slightly by motor)
RC3_MIN = 1151

And it did look suspicious that my minimum throttle (1151) was exactly the same as the min motor output when disarmed.

So I changed RC3_MIN to 1100 and sure enough, the motors armed.

But then, I couldn’t arm the system by pulling the throttle all the way down and to the left. But it occurred to me – I probably messed with the arm/disarm level as well. So I trimmed the RC side down to 1100 as well (just on the transmitter) and sure enough, it would arm and spin.


  1. Thank you!

  2. What exactly did I do by setting RC3_MIN down to 1100? I clearly changed the disarmed PWM signal that was being sent to the ESCs – because they now arm even before I push the Pixhawk’s arming button.

a) But if I just changed how the controller mapped a real throttle of 1151 to a motor level of 1100, why did it change the arming level too? I’d think the arming level would be based on the transmitter’s output of 1151

  1. What is the significance of the “3” in RC3? It appears there are 12 (or more) of those R-something series. What series does what function?

  2. Since I’m using fixed endpoint ESCs, don’t I want the maximum value to be a full 2000 instead of the 1711-1816 I’m seeing? Or should I save a little bit of pulse width? How would I even change that?

Hi bcdebusk,

3 is for channel 3 which is assigned to the Throttle, (1 - AILE, 2 - ELEV, 3 - THRO and 4 - RUDD)

Here you will find the parameter list:

Interesting results! I guess I’m going to be doing it also very shortly.

Now I’m far from an expert on this but here’s my (possibly) flawed understanding. Your RC3_MIN and RC3_MAX are the minimum and maximum PWM signals your Pixhawk will put out to the ESCs. The Pixhawk (or APM) will map your RC transmitter’s output to this range. I’ve thought, but am not certain, that usually the APM/Pixhawk passes the RC transmitter’s output straight through and defaults the RC3_MIN and RC3_MAX to your transmitter’s endpoints whenever you do a radio calibration.

I think having your ESCs arming without the Pixhawk telling them to do so is a potentially bad thing. I think what you want is upon first powerup of the Pixhawk, it needs to put out a PWM value of just over 1300, say 1350. This will prevent the ESCs from arming. Then, upon Pixhawk arming, the Pixhawk needs to DROP its zero throttle output to, say, 1250. At that point the ESCs will arm. At the moment I’m not sure how to make this happen.

This all sounds a bit strange, so I’m going to have to study it a bit. I expect I’ll be hooking up my APM to the tricopter next week so I hope to sort it out by then. These Castle multirotor ESCs are just a bit…different. I am still waiting to make up my mind on them.

I believe you may want to arm them upon startup. Here’s why:

That RC3_MIN value is what the motors put-out when the system is disarmed. And to arm my Castle Creations ESCs, it took a pretty low value (1100).

But once you arm the system, you’d like a little bit of idle motor spin. I don’t know the exact number, but I don’t think the blades even start turning until around 1200 or so.

So if you wanted to intentionally set RC3_MIN too high (i.e. 1151), they won’t arm until you arm the Pixhawk. And the good news is, they’ll arm at any time – there’s no need to arm them within a specific startup period. But the problem would be you’d have to set your throttle endpoint when armed to something lower – like 1100. So in Manual mode with the throttle all the way down, you’re props wouldn’t be spinning at all – even an idle amount.

But then again… I’m ~3 days into open source controllers. So don’t take anything I say as the voice of experience.

ArduCopter’s output to the motors matches the range of the channel 3 (i.e. throttle) input from the receiver.

It’s best not to directly modify the RC3_MIN or RC3_MAX ranges. Instead you should adjust the range output by the transmitter’s throttle channel and then re-do the radio calibration in the mission planner. In this case it seems like the throttle min needs to be 1100 or lower. By the way 1151 is really not a low value. Most tx/rx systems come with a default minimum throttle value of between 1000 and 1100.

FYI, this is mentioned on the wiki’s ESC Calibration page although it’s mentioned as a common issue hit when users try to use the DJI Opto ESCs.
copter.ardupilot.com/wiki/initia … alibration

Best of luck.

That makes total sense.

I believe the root problem here is that with my DX6, leaving the throttle limits at the default -100%/+100% only gives you a minimum throttle of 1151.

What I should do is set it to something more like -106%/+100% and recalibrate. That would make the disarmed state transmit a throttle level around 1000 which would also keep the arming level consistent.

Would doing a radio recalibration automatically re-write my RC3_MIN value? Since I’ve now set it manually, will it override future transmitter recalibrations?

Thanks again in advance.

I believe doing a radio calibration will reset all your RC_IN and MAX values. So the golden answer appears to be adjust the limits on your RC TX to give you the PWM values you need for the ESCs and let the APM/Pixhawk just pass them through. I’m glad you resolved this as it will really help me.

OK, an update. My turn for frustration. I hooked the APM up to Mission Planner and pulled up the radio calibration page. This showed me what PWM value was being sent by my RC transmitter to the APM. I have a Futaba 8FG so I just adjusted the end points for my throttle channel while watching the display. I was shooting for an upper end of just over 1800, and a lower end of just under 1300. This is per the instructions from Castle which clearly says the throttle needs to be below 1300 for the ESCs to arm and it drives the motors from 1300 to 1800.

Well, that plain didn’t work. After a lot of experimentation, I found the Castle info is just plain wrong. My Quadpack 25 amp Multirotor ESCs with default programming will NOT arm unless the PWM being fed to them is less than 1100. Below 1100 all is good. Further, the motors all begin to spin at 1100, not 1300.

So I adjusted my throttle end points on my RC transmitter to 1070 and 1825 then did a new radio calibration to teach the APM the new endpoints. This works just fine, with the APM arming and disarming the ESCs as it would with other ESCs. Motors start spinning at 1100.

It is possible to get into their programming and set other endpoints but not in their stock multirotor software. However it looks like you have to give up some of the multirotor features. Not sure if I’m liking these Castles. Only one has a BEC but all of them need all three wires attached to the power bus, so no running of just the signal leads as with other ESCs. Their performance and longevity remain to be seen. On the plus side they are attractively small and light, and appear to be made VERY well.

That was my exact experience as well. 1100 seems to be the magic arming point.

Oddly enough when the signal came directly from my DX6 receiver, it upper fixed-endpoint limit was right at 97-99% and the lower fixed-endpoint was dead on at -100%.

But to get the 1100 signal to appear on my ESCs from the Pixhawk, I had to adjust the radio lower throttle endpoint to about -105% and then let MissionPlanner recalibrate the radio. That gave me the low level throttle signals of 1100 I needed to arm them.

Frustrating, but at least that part works now.

Next, I need to figure-out why it just pops off the ground and starts taking off the moment I turn the throttle even slightly upward.

I am having the exact same issue. Tried all the settings recommended and the Castles still just blink red, and system arms fine. My settings are 1058-2006.
Has anyone learned anymore about these Castle Quadpack ESC’s?

Is there anything from Castle in terms of settings that they are recommending? What is the ESC calibration process etc.