Problem with Pixhawk & Blheli_s - motors not rotating

#1

Got a Brand new PX4 PIXHAWK 4 Holybro,
ESC is Turnigy MultiStar BLHeli-S Rev16 ESC v3
motors rctimer sl2212 920kv
3s tattu lipo 10000 mAh

using QGC and went with Hexa x build

On powering with battery, tone is
beep beep beep ----- beep beep beep ---- beep beep beep then immediatly ESC musical tone

ESC caliberation method does not seem to work here, i just get this same tone no matter if doing ESC calib. Motors do not move.

Lights on pixhawk:
after tone: Left side: blinking blue ACT + solid green PWR , right side: FMU, only solid green PWR

Any help will be highly appreciated as I have spent a lot of time pondering over this.
firmware 1.8.1

1 Like
#2

Hi @rajaththomson ,
Can you confirm that the motors are working if controlled by a servo tester?
When you say that they are not spinning, do you know if the Pixhawk successfully armed?

#3

Hi @bresch
I was able to figure out the problem! I had connected the ESC signal wires to the FMU pins instead of the Main pins.
However, now i am stuck with another problem. Motors spin at different throttle levels. ( two motors start at min motor level, then 1 more at a bit higher and so on till i raise the throttle to approx 70% to get all 6 motors to spin for this hexacopter. I believe this is due to non calibrated ESC. I have a few questions regarding this:

  1. does the calibration via QGC in the power tab of the software work ?
  2. my ESC is blheli_s and my FC is Px4 pixhawk 4 holybro, I am not sure if this FC has a pass-through yet for BLHELI_S
  3. is there any other way via which i can calibrate these esc ( via QGC ? ) as i have it all soldered up and would not like to undo it once more.

Currently i have modified the following:
PWM_MIN : 125
PWM_MAX : 250
PWM_DISARMED : 100
PWM_RATE: TRIED 0,400 AND 4000

#4

Hi @rajaththomson ,
Great! Yes, it seems that your ESCs are not calibrated.

  1. Yes, it does. Make sure you don’t have props on the motors and follow the indicated procedure.
  2. I don’t think there is a BLHeli passthrough in PX4 yet but for a simple ESC calibration, you don’t need the BLHeli suite.
  3. Yes, QGC, see 1.

You also might want to use Oneshot125 instead of PWM. See https://dev.px4.io/en/advanced/parameter_reference.html#PWM_RATE

Good luck!

1 Like
#5

yes @bresch the ESC states oneshot125, therefore , i was trying to set it up. I tried searching for PWM_AUX_RATE in the QGC parameter lists, it is not there. Please help me in understanding the following:

  1. I have connected signal wires of ESC to the Main ports and grounded the black. is this wiring okay?
  2. what all is needed to set for oneshot125 with px4 and QGC
#6

@rajaththomson It was PWM_RATE, not PWM_AUX_RATE, sorry.

  1. Yes, it’s correct. You don’t even need to connect the black cable usually since the ESC is connected to the same battery.
  2. Setting PWM_RATE to 0 is enough to enable oneshot125. However, if you don’t need more than 8 PWM outputs and that you want to reduce the control loop latency, I would recommend you to disable IO by setting SYS_USE_IO to 0 and connect the ESCs to FMU (connect the cable to FMU PWM OUT instead of IO PWM OUT). See here for more details: https://docs.px4.io/en/config_mc/racer_setup.html#control_latency

For more context, what type of frame are you using? Is it a custom build? Can you share some pictures?

#7

Joining this midway, but I’d been thinking about something you mentioned in your answer to rajath’s point 2. My aside question is, if you want to run the ESCs off of the FMU but keep the IO channels available for communicating with servos, sensors, landing gear, gimbal, etc, is there any way currently to do this in the firmware, or do you have to just disable the IO and take the loss of 8 PWM channels?

#8

Hi @tbrs2 ,
The solution I gave earlier is the simple way of reducing the latency, but you also loose the 8 PWM signals from IO.

An other solution, - a bit more complicated - is to move the multicopter mixer from <mixername>.main.mix to <mixername>.aux.mix such that it is loaded into FMU instead of IO. Then, you can configure your servos in the .main.mix mixer file. A thing to consider is that to enable Oneshot125, you should now use PWM_AUX_RATE that doesn’t exist on 1.8.1. but on Master only.

See how to load a custom mixer here:
https://dev.px4.io/en/concept/system_startup.html

Good luck!

1 Like
#9

I write a comment for something strange in the above post:

Usually, the value of PWM_MIN is around 1000 and that of PWM_MAX is around 2000 but those values, 125 and 250, on the post are too small.

After I searched about it, I’ve got to know that OneShot125 protocol, which is an improved version of general PWM protocol, of BLHELI 32 ESC product has shorter PWM time values than general PWM protocol.

#10

You are right, this is wrong:

It should be

PWM_MIN : 1000
PWM_MAX : 2000
PWM_DISARMED : 900

or something close to those values for standard ESCs.