Get rssi value for a device that is connected to my laptop

Viewed 99

I'm trying to find the RSSI value for a phone that is connected to my laptop by Bluetooth. I use the below command on Ubuntu:

hcitool rssi AA:BB:CC:DD:EE:FF

‌‌But I get this:

RSSI return value: 0

But I want the value in the range of -20 to -100 for example.

How can I solve this problem?

1 Answers

The HCI tool doesn't retrieve data directly from your radio, rather it uses the standardized Bluetooth HCI (host-controller interface). The definition of the read RSSI HCI command, from the spec:

7.5.4 Read RSSI command Description: This command reads the Received Signal Strength Indication (RSSI) value from a Controller. For a BR/EDR Controller, a Connection_Handle is used as the Handle command parameter and return parameter. The RSSI parameter returns the difference between the measured Received Signal Strength Indication (RSSI) and the limits of the Golden Receive Power Range for a Connection_Handle to another BR/EDR Controller. The Connection_Handle shall be a Connection_Handle for an ACL connection. Any positive RSSI value returned by the Controller indicates how many dB the RSSI is above the upper limit, any negative value indicates how many dB the RSSI is below the lower limit. The value zero indicates that the RSSI is inside the Golden Receive Power Range. Note: How accurate the dB values will be depends on the Bluetooth hardware. The only requirements for the hardware are that the BR/EDR Controller is able to tell whether the RSSI is inside, above or below the Golden Device Power Range. The RSSI measurement compares the received signal power with two threshold levels, which define the Golden Receive Power Range. The lower threshold level corresponds to a received power between -56 dBm and 6 dB above the actual sensitivity of the receiver. The upper threshold level is 20 dB above the lower threshold level to an accuracy of ±6 dB.

So basically the reason you're seeing "0" is because your device is within the "golden range" as configured in the hardware driver. You will not be able to get a more accurate reading using HCI commands

Related