DShot and BLHeli ESC Telemetry support

@rmackay9 digging this up, why can’t the cube do dshot on the 8 main outputs? I’ve got an octo-quad plane and was hoping to try some apd escs…

nm… from http://ardupilot.org/copter/docs/common-dshot.html

DShot and BLHeli_32 features are currently only supported on the “FMU” outputs of your flight controller. Boards with IO coprocessors like Pixhawk and The Cube provide DShot and BLHeli_32 support only on the AUX OUT ports that are directly driven by the board’s main processor. For Pixracer and other boards without a separate IO coprocessor, all PWM outputs can be used.

On that: Mirko has done some work on supporting DShot on the iomcu https://github.com/ArduPilot/ardupilot/pull/12604/files

2 Likes

Are there any news on the investigation if a resistor placed in series with the telemetry wire is solving the spike issue for ESC telemetry? Or was the discussion moved?
Thanks

Something like this would probably do:
image
(from https://www.digikey.com/en/articles/protecting-inputs-in-digital-electronics )
Left side being telemetry input from ESC’s and right side being output to FC.
You might want to increase the zener diode voltage to 5.6v - depends what signal level is coming out of the ESCs.

Is there any update on supporting dshot on the main outs of the pixhawk cube? I have a H-octacopter quadplane and would like to get ESC telemetry for each of my 8 motors.

No change, you can only use 6 aux outputs. Or get a CUAV X7 or Nora, there you can have 8 dshot outputs with serial telemetry using ArduCopter 4.0.7

Flight Controller:Matek H743-SLIM

ESC:T-Motor P50A 3-6S BLHeli_32 4-in-1

Even after following complete steps mentioned in Ardupilot document, I am not able to get ESC telemetry, because of which I am not able to get voltage and current.

Please help

If you do not provide information about what you tried, and how you tried, we can not help you.

And stop the cross-posting. You could win an award for that.

1 Like

I set below parameters
MOT_PWM_TYPE=6 //DShot600
SERVO_BLH_AUTO=1
SERVO_BLH_MASK=0
SERVO_BLH_OTYPE=0
SERIAL5_PROTOCOL=16 //ESC Telemetry
BAT_MONITOR=9 //ESC

Sorry Dave, my intention is to get solution early, as i am struggling for last two days.
Please understand

hi all,

i have a copter setup with black cube (copter 4.0.7) and flycolor x-cross 80a ESCs. They work in dshot (i set the 150 version, since i don’t need extreme performance, while i want reliability). Telemetry is read trough telemetry serial pin, since black cube don’t support bidirectional (and i’m interested in current/temp readings also)
I can read telemetry through Mission Planner or QGC but:
in MP: ver .xxx.72

  • single esc currents are always 0. (i know the ESC have current sensing)
  • total current (using “ESC” as battery monitor) seems to be affected by the A/V ratio parameter, which i set to 30 (i cannot measure current externally right now), i bench tested it and current seems to need calibration
  • rpm values works
  • temp values works, although i saw them jumpin from 20 to 30 to 40°C, like value can’t be read with 1°C of resolution

in QGC 4.2:

  • RPM values are always 0

  • current reading same of MP, erratic but it’s there

  • there’s only one esc temp, i don’t know which esc refers to, but it seems to work, reading is realistic, with 1°C resolution

  • esc voltage works ok in both.

I don’t get the point that some values are OK in one app,but screwed in the another and viceversa.

PS: BLheliPassthorugh works ok.

Any help?

Yeap, update to ArduCopter 4.1.3 and re-test.

It looks like those ESCs dont put out a current measurement.
I’ve found the BLHELI32 temperature measurement can be a bit strange, like showing 60 or 80 degrees when it should only be about 30 degrees (like on the bench), but it may only get up to 90 during flight. Its still a good indicator though.

I think Shawn is right and they don’t. From Flycolor’s website for the product:

ESC

i asked flycolor, and yes you were right - no current sensing on that esc. Curious enough, when power on motor, it gives some readings, which roughly correlates with RPMs… garbage data maybe?
So, without current reading it makes no sense to use ESC battery monitor, since i can read voltage through powercube/regulator…pity.

edit about zero RPM: same zero values on MP when i used sik telemetry, but i found some SRx parameters at zero (telemetry rates), i put non zero values and voila, RPM readings in MP apperared when in sik radio.

I have 3 different types of 4in1’s. No current sensing, one shunt resister for total current (not provided on ESC telemetry but analog output) and a shunt resistor for each channel (current data in ESC telemetry). The later is nice but not many available 4in1’s have that.

I recently had the first paragraph of the blheli telemetry page updated with this information, as it’s a common mistake.

“If the ESC has this capability, it allows monitoring and logging of performance data that previously required additional sensors (like power modules and RPM sensors). The detailed data provided by every ESC allows real-time decisions and individual ESC or motor performance tuning and failure analysis. Note that a given ESC may or may not have a specific sensor’s data transmitted via telemetry. It is common for 4 in 1 escs to provide voltage and current sensors but not transmit the data via telemetry, but rather by direct connection to the autopilot. Check the ESC data sheet and connection information for details.”

https://ardupilot.org/copter/docs/common-dshot-blheli32-telemetry.html

1 Like