Servers by jDrones

BLHeli32 ESC telemetry setup - how?

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.

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.

I’m not getting either. Nothing in MP and no ESCx lines in the log. BLH_DEBUG does nothing for me.

Yes, I have done the dataflash configuration and that works fine. Just not getting any esc telemetry.

@Paul_Atkin1 I take it that you have successfully used UART7 on a regular kakute then?

imho it might help to check if your BLH ESCs are setup, found and initialized correctly before trying to debug BLH telemetry.

if BLH_DEBUG does nothing for you i’d say there’s some settings that need to be adjusted and you’re not having BLH active at all, not only telemetry missing. even with no BLH ESC hardware connected and powered, by opting for BLH_DEBUG = 1 you should get some console prompt like:

ESC: ESC: 4 motors mask=0x000F
ESC: BLHeli installed on port 0

this requires setting BLH_AUTO to 1 for multirotor motors (or using BLH_MASK to specifically point to BLH ESCs used for non-multirotor throttle functions).
once your motor mask is set correctly and returns something different than 0, with your ESCs connected and powered you can test BLH response by setting BLH_TEST to either one of your motor output ports. if successful, this will return something like:

ESC: Test PASSED
ESC: Prot 1 Good 8898 Bad 0 0 0 0 x0
ESC: BL_ReadBuf 16 -> 19
ESC: BL_SendCMDSetAddress 0xEB00
ESC: BL_SendCMDSetAddress 0xEB00
ESC: BL_ReadBuf 256 -> 259
ESC: BL_SendCMDSetAddress 0x7C00
ESC: Interface type imARM_BLB
ESC: BL_ReadBuf 8 -> 9
ESC: BL_ConnectEx 2/4 at 2
ESC: Running test on channel 2
ESC: Change to BLHeli mode

there’ll likely be no BLH telemetry requests and responses unless these requirements are met.

One thing to note is that the mavlink message you are getting telem back to MP from the FC needs to be mavlink 2 or you will not get any esc telem. Just in case you havent set that, it had me stumped for awhile on such a simple thing

yes, it worked fine. it is only difficult to see the actual presence of the telemetry data in the MP. one way to see it - the easiest way - it is to set voltage and current to be shown from the ESC telemtry. this way, if telemetry does not go - you will never see the voltage when you connect lipo to the ESC.

Pretty sure I am using mavlink 2

dunno then, try checking the firmware version on the ESCs, to bump it up to the current, but, it should work.

try connecting something else to the PE7 pin to see if it get anything at all. or set it to half duplex and feed radio telem out of it, to see if it is operational.

That’s tricky as this board has specific wiring of this pin to the ESC’s. Or do you mean do this in the hwdef.dat?

Servers by jDrones