Tekko32 and Kakute H7 how to get RPM

Hello there!

I’m currently in the process of assembling a quadcopter drone, and I’m at the stage of building its control system. Our goal is to read the motor speeds to design subsequent control commands. After researching online, I learned that the Holybro Kakute H7 flight controller and Holybro Tekko32 F4 65A ESCs should be able to achieve motor speed feedback.

However, I’m facing an issue. I’ve configured the following parameters as per the official documentation:

SERVO_BLH_BDMASK = 15
SERVO_BLH_POLES = 14
Assigned the appropriate SERVOx_FUNCTION for each motor

Despite these settings, I can’t see the ESC_STATE information in the Analyze Tools section of QGroundControl. Could you please advise on what might be causing this issue or suggest additional steps to troubleshoot? Are there any other parameters I need to adjust to enable the motor speed telemetry?

HW setup:
FC: Holybro Kakute H7 v1.3
ESC: Holybro Tekko32 F4 65A
Motors: T-motor F90 1300kV

FW setup:
FC: Arducopter 4.3.0 , platform “Kakute H7 - bdshot”
ESC: AM32

Thank you for your help!

When using AM32 firmware on the ESCs it is recommended to use ArduCopter firmware 4.6.0-beta6 or newer.

1 Like

Thank you for the reminder. I didn’t know this before. I will give it a try. :grinning_face:

Bidirectional DSHOT only provides the RPM as far as I know.
To get all avaialble data you need to join all of the ESC Telem wires into one and connect it to a UART RX pin.
Then set:

SERIALx_BAUD,115
SERIALx_OPTIONS,16
SERIALx_PROTOCOL,16

These are the DSHOT-related settings you need:

MOT_PWM_TYPE,6
SERVO_BLH_AUTO,1
SERVO_DSHOT_ESC,1
SERVO_BLH_POLES,14   (like you already have)
SERVO_BLH_BDMASK,15   (like you already have, depends on which outputs you use)

This may be handy to reverse a motor direction with soldering
SERVO_BLH_RVMASK

Your whole parameter list would be handy if you dont get it working. Or set LOG_DISARMED,1 and try some motor tests, then set it back to 0. Upload the .bin log and share a link to it.

1 Like

If your ESCs support EDT then you can get the other data over bdshot. AM32 supports this, for instance. You need to set SERVO_DSHOT_ESC appopriately

1 Like

Thanks for your response. I hadn’t set SERVO_BLH_AUTO before—it was something I overlooked. It did work after I configured it. I was also unfamiliar with SERVO_BLH_RVMASK, so thanks for bringing that to my attention.

Thanks for your answer! I will try to use EDT to get more information.