50ButtonsEach / fliclib-linux-hci

Flic SDK for Linux
305 stars 55 forks source link

Can Flicd make use of Coded Phy and Increased TX power? #109

Closed PhilipAtLabrador closed 2 years ago

PhilipAtLabrador commented 2 years ago

I am trying to maximize range between flic buttons and a linux system. I have flicd working with the NRF 52840dk dev board running the hci_usb example from Nordic. It appears that flicd uses the default 1M phy and default 0db transmit power.

Is it possible to have the flicd program make use of Coded Phy and maximum(+8db) tx power for longer range? Do the buttons use max transmit power, or do they implement dynamic transmit power?

Emill commented 2 years ago

Flic 1 buttons support only 1M Phy and always use 0 dBm transmit power.

Flic 2 buttons support 1M Phy as well as Coded Phy. The transmit power varies between 0 and 4 dBm depending on signal strength.

The HCI protocol (which flicd uses to communicate with the Bluetooth controller) does not include a command to set transmit power of the local Bluetooth controller, so that must be done directly in firmware or through some vendor specific way.

The flicd uses Bluetooth 4 HCI commands, which means only the 1M Phy will be used when establishing connections.

For commercial purposes, we do have a firmware for Nordic devices of a Bluetooth controller speaking HCI, that can use Coded Phy even though the host only uses Bluetooth 4 HCI commands. Please reach out to our sales team if you're interested at https://flic.io/business.

PhilipAtLabrador commented 2 years ago

Thanks for the quick response. That's very helpful. I'm working on modifying the Nordic example to use +8db and Coded Phy without the host asking for it. I'll go down this road for a while and ask about your firmware if I decide to change course.