Open rbaron opened 2 years ago
LongRange (Coded PHY) works in HA from USB-BT RTL8761B. But not all options. The BLE standard provides for the reception of generic advertisements in the Coded PHY. But this option does not work - there is no support in many OS. It also doesn't work when extended advertising send the header to the Coded PHY on the main channels. This is also a defect of software manufacturers.
https://www.home-assistant.io/integrations/bluetooth/#known-working-adapters This description is incorrect. Long Range is not the presence of an external antenna :)
BLE 5 introduced a new PHY - the Coded PHY - which extends the range of BLE at the expense of data rate and current consumption. For b-parasite, data rate is not very relevant, as we only need a few bytes every few minutes.
This article for Nordic finds that the outdoor range is roughly doubled when using Coded PHY under test conditions.
Test Setup
I implemented experimental support for Coded PHY for b-parasite in a7732f106b75e24ddcb921d37180e2151297d8ee. I flashed two b-parasites, one running Coded PHY and one running the usual Uncoded PHY. Both advertise for 1 s with a 30 ms interval and sleep for 2 s.
I then hacked support for Coded PHY in ESPHome's
esp32_ble_tracker
component in rbaron/esphome/ble_ext_tracker_component. I'm using it like this in an ESP32-C3-DevKitC-02 dev board with a PCB antenna:Power Consumption
Default, Uncoded PHY - Average 1.49 mA while transmitting:
Coded PHY - Average 7.2 mA while transmitting:
Indoor Range
In this test, I left the ESP32-C3 in my office and walked down the stairs in my building.
Initial Results
With this first quick and simple test, I unfortunately haven't observed any meaningful differences in indoor range. There are still many parameters to experiment with, of course, but we have to start somewhere. I also want to try a nRF52-based scanner and a better, non-PCB antenna.