BLHeli32 ESC telemetry setup - how?

Yes, MP appears to know nothing about BLH telemetry.
Yes, DF logs are the place to look for evidence of working BLH telemetry.
Yes, new OSD code for F4-based ChibiOS-based flight controllers have option of showing BLH telemetery amps, temps, RPMs.
CRC error was fixed several months ago by BLH team. IMHO, if you are still seeing that, it’s not because you have a certain debug flag on, but because you’re running a version of BLH firmware that pre-dates the fix.

Kelly

As mjbunan said above, I also get the esc_* readings from “Omnibus F4 Nano V6” with “Ori32 25A 4in1” ESC, if I connect MP via USB port. With SIK-Radio Telemetry on serial port the readings are all “0”.

Current is still too low. This is also the case with Betaflight 3.5.1. Seems to be a problem of Ori32.

Thanks for your great work!

RainFly,
You should push your updated hwdef for the nano to master, or however we get it into the official release. It would be really helpful to have uart4 working for us non programmers!

thanks.

I second question about current readout from 4in1 esc. I got same problem now as FC only gets voltage. What is the way to setup - correctly - a current reading from esc?

The ESC I have SPEDIX 4in1 40A has an overall current sensor onboard with a 3.3 v analog output that is compatible with the PixHawk current sensor input. It also has a bat level signal - which would blow the PixHawk voltage sensor. I built a voltage divider (2 res and a cap) with values similar to the Attopilot sensor between the ESC and the PixHawk. To get voltage monitoring working (scale 25V to less than 3.3V)

https://photos.google.com/photo/AF1QipNDkCnG6CpjwcCNk0uChx4iv5QGOPHlz4Q4g8vH

That link requires a google login… Probably best to post photos directly to the forum.

Someone mentioned their ori32 current reading was wrong…
That is a known issue w/ those ESC’s… they aren’t calibrated. But apparently you can calibrate the current sensor per ESC in the blheli configuration program. There’s a thread on rcgroup where people are talking about that.

i got it setup, finally, but it is confusing as hell.

BAT section still gets populated but voltage and current is left at 0 there. BAT2 gets populated correctly, but not clear if failsafe will work with it. i hate testing battery failsafes. it is the worst.

First, the wiki on blheli32 setup does not mention BAT_ settings at all. It also says to set the SERVO_BLH_POLES param, and that is not available. I will know if I have telemetry soon, but although a motor test in mission planner has the motors all turning the right way in the right location, blhelisuite now only detects ESC7 and ESC8, It should detect 1-6. I checked the mask value and it’s set to 63, which my calculator says is binary 111111. BRD_PWM_COUNT is 6. I’ll recheck telemetry right now.

1 Like

update, it was my fault. I set the SERVO_BLH_MASK for channels 1-6 instead of 9-14. The wiki could use a little more documentation, or I can add to it if I can figure out how. I’m on a pixhawk so probably no help for the OP.

Has anyone been able to get ESC telemetry to appear on MP over raido telemetry link? I can only see ESC data when I’m connected via usb. I also don’t have any current readings, but that may be because my ESCs don’t support this? ESC’s I’m using are nidici BLHeli-32 30A with Pixhawk FC.

1 Like

well, it is odd as channel should not matter. what you can check - if you setup battery to function 9 - to get it from the ESC - then it would show battery voltage no matter where you are in MP.

It’s a guess but perhaps the ESC data is only availble with MAVLink2 protocol. Could you perhaps try setting the SERIALx_PROTOCOL = 2 (where “x” is the telemetry port for the radio)?

Thanks, this answer fixed my problem.

Any update please.
Im trying to connect a T55 4 in 1 esc to cube telemetry. (The DSHOT already working).
Trying to use Serial5, which I believe is the CONS plug.
Tried the wire on TX and RX pin of cons - tried protocol 16 (ESC) and 2 as @rmackay9 suggested. Still get all zeros on MP Flight Data-Status.
Any ideas please.

This is not working for me on a Kakute F7 Mini with Tekko32. Any clues? I’m pretty sure I have done all the setup correctly. Is there anyway of debugging the data coming from the UART (supposing there is any).

what is not working? the inversion of the uart? i wanted to try this new mini board myself - can you pls give more details?

I get no ESC telemetry, everything else works. I have a PR pending for the board type https://github.com/ArduPilot/ardupilot/pull/12520
I’m not convinced that UART7 is defined correctly in the hwdef.dat

is there a schematics document for this new board anywhere?
as usual in such cases - try to disable all other inputs and assignments of timers to anything else, essentially keeping that UART an only mapped resource and see if it will suddenly start communicating. if there is a conflict - it may be tracked then.

i presume that did post at least some sort of the document for betaflight mappings?

ok, in that document, in the target for KakuteF7 they added an ifdef for this new board:

#if defined(KAKUTEF7MINI)
#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT
#define USE_FLASHFS
#define USE_FLASH_M25P16
#define FLASH_CS_PIN SPI1_NSS_PIN
#define FLASH_SPI_INSTANCE SPI1
#else
#define USE_SDCARD
#define USE_SDCARD_SPI
#define SDCARD_DETECT_INVERTED
#define SDCARD_DETECT_PIN PD8
#define SDCARD_SPI_INSTANCE SPI1
#define SDCARD_SPI_CS_PIN SPI1_NSS_PIN
#define SPI1_TX_DMA_OPT 1 // DMA 2 Stream 5 Channel 3

#define SDCARD_DMA_STREAM_TX_FULL DMA2_Stream5
#endif

UART7 is set seemingly same.
#define USE_UART7
#define UART7_TX_PIN NONE
#define UART7_RX_PIN PE7

check for all the other resources and timers, as probably there is a conflict somewhere if PE7 does not communicate.
PE8 assignment probably should be removed from the hwdef.

@andyp1per : is it you‘re not getting BLH telemetry from the ESC to your flightcontroller or is it you‘re not getting the telemetry data from your fc to your gcs?

we‘ve put some effort into restructuring and updating BLHeli and DShot documentation: http://ardupilot.org/copter/docs/common-dshot.html

you can enable verbose output prompts by setting BLH_DEBUG to 1.