One of the Problems with the PX4 / Pixhawk is that it uses a PPM-Sum receiver which when so configured may not work at all for the normal receiver based method of one at a time ESC programming.

And especially so for 4 in 1 ESCs.


The one at a time method I have developed uses the Wikis normal all at a time method that goes through the Pixhawk to the ESC rather than the receiver straight to the ESC.

It is essentially the same as the normal all at a time method for calibrating ESCs as described in the wiki (repeated 4 times)


Remove all ESC signal outputs except one from the PWM output side of the PX4 / Pixhawk.

If your ESC outputs only have one grounded connector as is the case for the 4 in 1 ESC leave that one connected and we will calibrate it first.

Follow the procedure in the wiki for calibrating all of the ESCs at one time (except only one ESC / motor will be getting calibrated and run when you put the throttle stick back up at the end of the procedure.

(Note, after the calibration procedure, it actually takes a bit of time after putting the stick back up before the motor will turn, on mine I actually need to move it up and down a few times to get this to work, but I believe it is a necessary part of the tuning procedure.

Then disconnect the battery again.

Put the throttle stick back up and we will do the next one, order is not important and it doesn't make any difference which PWM out line you use so long as it is one of the ones used for your number of motors.

After you have done this first ESC, if that ESC connector was the only 1 with a ground wire on it you must do the following: Turn the connector upside down upside down and slip the ground pin only on the far left ground pin only of your PX4 / Pixhawk. (OR) On a Pixhawk or PX4 with a case on it you will need to remove the ground socket pin from the ESC connector housing and put it on the ground pin of the PX4 / Pixhawk).

If you have grounds on all ESC signal connectors as is normal for individual ESCs you can ignore the procedure above.

In any case connect the next (any) ESC signal lead to one of the active PWM connectors (right 4 for a Quadcopter on a PX4) such that the signal ESC lead is connected to a PX4 / Pixhawk PWM signal out pin.

Perform the above procedures 3 more times for a quadcopter as described in the wiki substituting a different motor / ESC pin each time, making sure each motor does spin up properly at the end of each calibration procedure.

After the last one is completed, leave the battery connected and the throttle down and reconnect all ESC signal leads to the PX4/Pixhawk PWM outputs as they should be and try throttling up - (all four motors should behave roughly the same, starting and stopping at the same time as you move the throttle up and down.)

You should now be good to go. 

Before connecting your props make sure your motor spin directions are correct and your transmitter stick calibration is OK. You should then be able to hook up the battery, press the safety button, arm and throttle up watching all 4 motors start and speed up at the same time.

And if you hold the copter and tilt it with a little bit of throttle you should be able to observe the motors on the down hill side speed up and the uphill slow down while they try to re-level the copter.

Put the props back on and go fly. (or at least finish setup and maybe do an auto tune.)

The above system works fine and is a lot easier solution for one at a time ESC calibration than the traditional receiver based method, especially for PX4s and Pixhawks.

I think this might be a very good procedure to add to the DIYDrones wiki, in any case I will detail it on my website on the Four In One ESC page:

Best Regards,


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Can anyone help me? I have a PX4 and am using Q Ground Control. I'm able to interface to the quadcopter, but my throttle is not correctly calibrated. Even when the throttle joystick is all the way down, the motors are still spinning. There should be a threshold at which the motors cut off, right?

    When I calibrate throttle, roll, pitch, and yaw in Q ground control, I'm not sure it actually changes anything. Any advice?

  • What I do is open up the 4 in1 esc, it's basically 4 skywalker 25amp esc's. solder on a program header on each silab and throw blheli firmware on, then in the GUI just set my throttle range to what I want. Works neat as!
  • Hi Xin,

    I actually detail that method for all at once calibration on my quadcoptersarefun site as well.

    This is specifically a substitute for the one at a time calibration method as found in the wiki.

    There are definitely ESCs which will not calibrate properly using the all at once method and the previous one at a time method worked with the APM using a conventional receiver.

    But is really not applicable to the PX4 or Pixhawk which use a PPM-Sum type receiver.

    Some of the PPM-Sum receivers can be reprogrammed to operate as a standard receiver and could then use that straight form the receiver method, but that is even more complicated and some receivers are PPM-Sum only, the Spektrum Satellite for instance, which I am using (there is no throttle channel, there is only PPM-Sum).

    Also the calibration values may not be exactly the same for PPM-Sum mode versus normal PWM mode.

    So I simply devised a technique that went through the Pixhawk rather than straight from the receiver.

    I normally use all at once mode anyway, but if you do have to do one at a time mode this works better and easier.

    I do use the throttle hub and the Hobbywing programming card to program all the channels at once, it works really well.

    Although I haven't tried it, it would probably work to do an all at once calibration through the Pixhawk using the throttle hub, but that should be the same as doing the normal all at once calibration simply leaving all channels hooked up and not using the hub.

  • Thanks for sharing this Gary, but as you need to remove the connectors from your PX4/Pixhawk to calibrate, why not just plug all signal wires into the throttle hub that comes with the 4 in 1 ESC and calibrate with the Rx throttle channel. I'm not sure why you have to make the calibration so complicated, although it should work.

    BTW, if you need to move your throttle up and down a few times before the motor will start to turn, there must be something wrong, either your calibration or the ESC.

This reply was deleted.