Blheli_32 telemetry stopped working after updating from Plane 4.0.9 to 4.2.0 beta5

I just upgraded my plane from 4.0.9 to 4.2.0 beta5 and previously working ESC telemetry on Serial5 stopped working (Pixracer FC and blheli_32 ESC).
I checked configuration and there remained SERIAL5_PROTOCOL16 and speed 115200, wiring was also unchanged, but telemetry doesn’t work with 4.2.0.
After reverting back to 4.0.9 and (to be sure) restoring original settings telemetry works again.
I several times upgraded and downgraded and the cutting edge is definitely 4.1.0. Everything below works and above doesn’t.
Here are servo_blh related parameters:

I played with them on a hint of Chris cbf123 from this older topic that these may have effect on the telemetry, but nothing helped.
I had the same, never solved problem after upgrading from 4.0.5 to 4.1.0 discussed in the topic above.
I hoped, that after significant code changes in 4.2.0 it may start working again, but it’s not :frowning:
Any more ideas?

Can you post your params?

Here are parameters from my plane - it’s Mini Talon with Pixracer FC and blheli_32 ESC.
I’l appreciate any help!

This is the problem:


You are forcing pwm on motor 3 - telemetry requires dshot

Sorry, don’t understand completely:
I tested even servo_blh_mask 0 (see the image above) and it didn’t work neither.
I use PWM to control ESC, but for telemetry I use separate wire to serial5 RX pin. This isn’t possible?
Do I have to use dshot for the ESC control? Should work blheli32_suite passtrhru then?

You have to use dshot to get telemetry

You don’t need dshot to get the sort of telemetry that BLHeli_32 provides over a separate telemetry wire to an Rx pin.

As documented at BLHeli32 and BLHeli_S ESCs — Plane documentation

Separate wire to a serial port - that’s exactly telemetry I have and which worked up to 4.0.9.
From the beginning I’m trying to attract developers attention, that something has changed internally between 4.0.9. and 4.1.0 which broke telemetry down. It remains broken up to current 4.2.0 beta5 and nobody seem to know about it. Maybe it’s only related to Pixracer (which is not so common these days)?
If telemetry would be broken on all targets, someone else would report it already…

Sorry, once more to clear all confusion:
Even for telemetry over an extra serial port as described here I need to run dshot for esc control? Or not?
Definitely it wasn’t necessary up to 4.0.9, but maybe is necessary now?

It is not generally broken, I recently tested BLHeli_32 telemetry with PWM control with 4.1.7 on my Matek H743 wing v2 and it worked fine.

that is very strange. There are only two ways I’m aware of to get Blheli32 ESCs to emit telemetry on a UART:

  • use DShot, and set the “send telemetry” bit in a 16 bit DShot packet
  • use a magic throttle value that BLHeli32 can recognise as “send telemetry” when not using DShot

ArduPilot has never supported the 2nd method, so I’m really surprised to hear of you getting ESC telemetry from a BLHeli32 ESC without DShot. Can you provide a log of that working with 4.0.9?

We’re talking here about the method that uses an additional wire (separate from the throttle signal) as documented at BLHeli32 and BLHeli_S ESCs — Plane documentation

On my BLHeli_32 ESC this reports ESC temperature, electrical RPM, flight battery voltage, and current used by the ESC. (Not all BLHeli_32 ESCs have a current sensor.)

Yes, I confirm what Chris cbf123 said - for telemetry I’m using an extra wire separate from ESC throttle control and connected to the RX pin from serial5, which is set to SERIAL5_PROTOCOL16. This reports voltage, current, temperature (very importan for me as my ESC overheats!) and RPM from my ESC.
This isn’t (at least wasn’t) related to the throttle control protocol (can be any like PWM, multishot, dshot…)
This worked perfectly up to 4.0.9 and stopped working from 4.1.0 on (at least on some targets).
See here an example what data are transferred from ESC (yes, I know my ESC overheats :frowning: ).
Bdshot over the throttle wire can transfer only RPM as far as I know.

Do you have auto telemetry set on your ESCs? This is the only way telemetry will get sent unless requested in a dshot packet.

I was pretty sure I tested this while using PWM to control the ESC, and with auto telemetry disabled in the ESC. The current BLHeli_32 manual says:

From code revision 32.1 and onwards, telemetry is supported. Telemetry is designed to be
compatible with the specifications from KISS 24A, and delivers the following data:

I think a previous version of the manual specified that telemetry could only be requested via Dshot/Proshot. That’s not in the current version though.

The Kiss ESC protocol docs say:

To need no ESC ID’s the telemetry is requested with a short PWM pulse of 30μS (±2μS).

Yes, I have auto telemetry on.
I repeat that it worked perfectly up to 4.0.9 OK and with any higher version stopped without any other change.
When I go back with the version < 4.1.0, it works again and if I go higher, it stops again so there must have been some change.
In the ESC there is some older (like 2 yrs old) blheli_32 version (can’t check it just now) but I’m afraid to upgrade ESC as I recently burned two same type ESCs just by upgrading their firmware :roll_eyes: - so rather keep it as is.
I wanted to let this problem know, but atm will rather keep 4.0.9 in the plane with a hope it can be solved one day…