Takeoff blocked: Waiting for ESC RPM

Dear Community,

I am trying to use TKOFF_RPM_MIN functionality to avoid topple during takeoff. If the motors aren’t spinning at this RPM then the vehicle should not try to takeoff.

Issue description: “Even though the motor rpm average is above the takeoff min rpm, the take off is still getting blocked”.

Hardware Setup

  1. ESC Telemetry-BLHeli_32 compatible connected on AUX-1, AUX-2, AUX-3, AUX-4
  2. Cube Orange
  3. Mission Planner

Firmware Parameter

  1. ArduCopter 4.3.6
  2. RPM1_TYPE = 5
  3. RPM1_ESC_MASK = 15 (Channel1, Channel2, Channel3, Channel4)
  4. TKOFF_RPM_MIN = 100
  5. MOT_SPIN_ARM = 0.02
  6. I am receiving ESC telemetry data (rpm, voltage, temperature), so no need to mention those parameters.

What is working.

  1. Getting esc1_rpm, esc2_rpm, esc3_rpm, esc4_rpm
  2. Getting rpm1
  3. esc1_rpm, esc2_rpm, esc3_rpm, esc4_rpm and “rpm1” on ARM is around 275

What is not working.

  1. After ARM, “Takeoff blocked: Waiting for ESC RPM” message keeps on coming.
  2. Increasing throttle does not allow UAV takeoff.

I have followed below documentation for setup and testing.
https://ardupilot.org/copter/docs/tkoff-rpm-min.html

Below document shows this feature does work on SITL.

Please let me know if I am missing any parameters.
@rmackay9
@andyp1per

I must admit I’ve not used this parameter before but it looks highly useful.
Looking through the code it might only need the ESC RPM data and doesnt appear to check RPM sensor if you have ESCs that provide RPM. I could be wrong, but let’s forge ahead regardless :slight_smile:

So try disabling the RPM sensor and see what happens.

It also depends on the ESC/Servo output mask - which most people set when they dont need to.
Usually this is all you need for BLHELI ESCs, (plus a few other parameters unrelated to this discussion)

SERVO_BLH_AUTO,1
SERVO_BLH_MASK,0

You dont need any value in the MASK unless you’ve got special BLHELI devices apart from your main motors. So if you have something in that MASK that shouldnt be there, that will cause the minimum RPM test to fail too.

Right it relies on the ESC library. Given that Helis can use the RPM library we should probably try and fix that.

Thanks for the reply.

I did try the suggested settings.

Test Case:
Disabled RPM1_TYPE and RPM2_TYPE.
image (4)
image (3)

SERVO_BLH Params

SERVO_DSHOT Params
image (6)

TKOFF Params
image (7)

Result:
Result is still same.
image (2)

Please let me know if anything left.

Thanks @andyp1per.

Do you mean? This feature is broken for Multirotor and does require fix.

I have further doubt whether this feature is only applicable to Bidirectional DShot ESCs? Or If Normal DShot ESC with ESC Telem feature should work?

It works fine with multi-rotor but only if you are using ESC telemetry

Thanks.

I have Setup ESC Telemetry and I am able to receive ESC telemetry data (rpm, temperature, voltage) but when I do set TKOFF_MIN_RPM to any value except 0 it keeps on giving Takeoff blocked: waiting for ESC RPM.
Can you have a look on above parameters and let me know if I have missed any parameters, please?

Seems like it should be working. Do you have telemetry for all your ESCs? Each motor is checked individually. Try increasing TRATE to 50, say and see if that helps.

I have “T-Motor F45A V2 3-6S BLHeli_32 4-in-1 ESC”.

Should be fine. It’s similar to the ESCs I use.

Can you post a log?

Thanks for continuous support @andyp1per. Please find the attached log below.

98 01-01-1980 05-30-00.zip (669.0 KB)

Hi @andyp1per,

I was hoping if you could have a look in the log and let me know if something is left to setup.
It would be really helpful in solving the my current toppling issue of drones. Thanks in advance.

Ah - this is a bug that was fixed in 4.4 with flight controllers that use iomcu. It won’t work on 4.3

Thanks. I will try out in 4.4 then.

Dear Developers,

I’ve conducted tests in ArduCopter 4.4.4, and the results are positive. The UAV remains grounded until the TKOFF_RPM_MIN threshold is reached. Additionally, I performed another experiment by securing one of the propellers on an arm and attempting takeoff. Despite the tied propeller motor RPM reaching large values like 10,000 or 20,000, the UAV did not lift off. In summary, the feature functions as expected. Thank you once again for your support!

2 Likes