RPi-Distro/firmware-nonfree

Raspberry Pi Zero 2 W - Bluetooth version 4.1.

microweeAlanP opened this issue · 9 comments

Hello Everyone,
I need to implement DLE (Data Length Extension) feature in my project. Basic idea is that Raspberry Pi behaves as a Central device that will send read requests to the Peripheral device. Peripheral device will respond with data that should be sent inside one packet. That is why I need DLE feature on both sides (Central and Peripheral). The problem is that Raspberry Pi Zero 2 W should have Bluetooth version 4.2 (first version where DLE was implemented), but from some reason I have Bluetooth version 4.1. (DLE in this version is not implemented).
I tested this on multiple ways. One of them was to check with hcitool and btmon. I used LE Read Local Supported Features Command to check what features does the controller on RP02W supports. This is the result that I got:

Capture

You can see that there is no LE Data Length Extension feature supported. Also I checked using hciconfig hci0 revision command where I saw that the version is 4.1.

Capture

In Raspberry Pi 4 specifications we have that it supports Bluetooth version 5.0 so I used Raspberry Pi 4 to compare the results and for RP4 I got that it supports DLE and that the version is the one from the specifications:

Capture

Capture

I tried to install multiple different versions of Raspbian and I have also tried to modify folder /lib/firmware/bcrm/ to try to load different firmware to the device but every time the result was the same. HCI version stayed the same.
I have also done update and upgrade of the system and Bluez, as well as using other OS as Kali and Ubuntu server, but nothing changed.
Does someone know how to use Bluetooth 4.2 on Raspberry Pi Zero 2 W?

As I understand it, the Data Length extension (like the other features added in the v4.2 specification) is optional. Provided the mandatory bug fixes have been applied, manufacturers (Infineon, Synaptics, etc.) can rightly claim 4.2 compatibility without implementing all the new features.

Thank you for your reply, @pelwell.
I would like to have version 4.2 . I have 3 Raspberry Pi Zero 2 W , but on all of them it is the same version, version 4.1.

We're waiting on a response from Synaptics about the 43436S firmware.

After a dialogue with Synaptics, we've confirmed that the current 43436S firmware incorrectly identifies itself - it should really say it supports Bluetooth 4.2 - but otherwise the feature set is correct. As I said earlier, BLE Data Length is an optional extension, and the 43436S does not support it.

The situation is complicated by the fact that, due to the inability of large chunks of the semiconductor industry to manufacture anything much at the moment, and the fact that we'd really like to be able to sell some Zero 2 Ws, there are two variants: one with 43436S and one with the slightly newer 43436P (that we refer to as just "43436"). Even without the cap on the module it is almost impossible to tell the two apart - they are pin-compatible, very small and very shiny - but if you get the light just right and have a camera with a macro lens you can just about read the laser-etched part number. Also, the manufacturing process doesn't record which part goes onto each unit, so really the only way to work out which part is fitted is to boot them up and check the kernel log to see which firmware is loaded.

With the 43436P being slightly newer it is able to support DLE, and the firmware does so. It also correctly reports Bluetooth 4.2. We are hoping to get a new firmware from Synaptics fairly soon, but unfortunately for you it won't change the capabilities of your Zero 2 Ws - just clarify the Bluetooth version.

Hmm thanks for sharing this, @pelwell.

Is there any plan to be able to distinguish the Zero 2 W’s with the 43436S from the Zero 2 W’s with the 43436P/43436 BLE chip in the future? Perhaps request production to add a little traceability on which chips go into which devices? We want to use the Zero 2 W in our product in which we aim to buy 10k+ Zero 2 W’s next year, and hopefully 100k+ in the following years. But we need the ability to confidently buy Zero 2 W’s that have the 43436P/43436 chip that has the DLE functionality. Is there someone we can reach out to at Raspberry Pi's Industry that might be able to help us with this procurement requirement?

The commercial/industrial department is telling me that, due to supply constraints of other components, the Zero 2 W is not suitable for new designs.

Our commercial director is happy for you to email him to discuss your requirements - business@raspberrypi.com

Hello, this issue was discussed also here https://forums.raspberrypi.com/viewtopic.php?p=2040251#p2040251 and
I do have Zero 2W bought in early days after its release and it does report 4.2 and e.g. higher MTU negotiation works fine and I do get larger packets when connected from Zero to BLE device.

Are you saying newer Z2Ws are step back regarding BLE and do not support this anymore?
Or I got it wrong and it doesn't work the other way even with my Zero? I did not try negotiating higher MTU when connecting from other device to the Z2W.

I'm not sure about the production timeline, but you are correct that some Z2Ws can do DLE and others can't.