This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2540: Converting RSSI results from RSSI (0-250 scale) to dBm units (CC2540EMK-USB DEVELOPMENT BOARD)

Part Number: CC2540EMK-USB
Other Parts Discussed in Thread: CC2540,

(I've asked about this previously on the related thread, but am now certain that the original replies were incorrect, maybe because I should have specified we are using CC2540EMK-USB development board...)

We are using the CC2540EMK-USB development board to test the Bluetooth Low Energy signal strength of our products.

  • If we use CC2540EMK-USB with the TI BTool application, the results are in 0-250 scale.
  • If we use CC2540EMK-USB with the TI Packet Sniffer application, the results are in dBm units.
  • We did some comparative tests: 221 ~ -31dbm, 197 ~ -42 dBm, 187 ~ -52 dBm, but these are approximate.

We need the ability to convert any RSSI result accurately between 0-250 scale and dBm units, so we need the exact conversion algorithm which TI are using in one of these apps. I have looked everywhere (datasheets, app user guides, other threads), but not found the real conversion algorithm, only some guesses on another thread.

I'm hoping for the actual conversion algorithm to be shared / confirmed by the TI software team please.

  • Hi Robin,

    Thank you for reaching out.

    I would recommend to refer to the documentation of the function you are using.

    For example, assuming you are using the function HCI_ReadRSSICmd(), you can refer to the Bluetooth Specifications and see that the value should be interpreted as a signed integer:

    I hope this will help,

    Best regards,

  • Thanks Clément

    We are not interacting with the CC2540EMK-USB using that type of function / command.

    Note this is this is a development board, we are using it with 2 different GUI's / apps from Texas Instruments, as pictured. 

    • The TI 'BTool' app displays Rssi 0-250 results - example here is 166
    • The TI 'Packet Sniffer' app displays RSSI (dBm) results - example here is -33
    • I've found no info about how these results relate to each other in the datasheets or instructions for the CC2540EMK-USB or apps

  • Hi,

    Thank you for the details provided.

    You can refer to the User's Guide of the part (https://www.ti.com/lit/swru191), especially the chapter 23.10.3. 

    Best regards,

  • Many thanks Clément!

    That User Guide gets us a lot closer to the answer...

    "To find the actual signal power P at the RF pins with reasonable accuracy, an offset must be added to the RSSI value.

    P = RSSI – OFFSET [dBm]

    For the correct offset value to use, see the data sheet"

    ...however, the associated datasheet (https://www.ti.com/lit/ds/swrs084f/swrs084f.pdf) does not give the value of OFFSET. From experimentation, it looks like OFFSET is approximately 239 for CC2540EMK-USB, but for our application we need to prove we are using the correct OFFSET (rather than assuming the OFFSET value from experiments).

    Can anyone provide the correct OFFSET value for CC2540EMK-USB please?
    (The answer must be within the code for the TI app "Packet Sniffer", because that is displaying results in dBm)

  • ...I have some more information, but still not the answer I really need...

    I do now know that OFFSET [dBm] = 94 for CC2540EMK-USB, but this OFFSET is only applicable when using TI Packet Sniffer software. The 1st screenshot shows that double clicking the 'packets' reveals the raw data, if the CC2540EMK-USB measures RSSI '3C' (Hexadecimal result = 60 decimal) the RSSI [dBm] result is -34, similarly if it measures RSSI '37' (Hexadecimal result = 55 decimal) the RSSI [dBm] result is -39. So in both of these cases (and all other cases),
    P = RSSI - 94 [dBm] for CC2540EMK-USB when using TI Packet Sniffer software.

    I had planned to take that OFFSET [dBm] value of 94 and apply it to the mystery results from the TI BTool software, but unfortunately that won't work... The second screenshot shows that the CC2540EMK-USB gives much higher RSSI values when using the TI BTool software, there is no way we can take that 'A6' (Hexadecimal result = 166 decimal) and subtract 94 to get a dBm result. I'd wrongly presumed that CC2540EMK-USB would behave the same using either TI Packet Sniffer Software or TI BTool software, but it clearly does not. This different behavior is feasible, because the Windows device driver for CC2540EMK-USB is different for each TI software. Experimentation indicates that OFFSET [dBm] ~ 239 for CC2540EMK-USB when using TI BTool software, but this is an estimate based on remeasuring the same device afterwards in TI Packet Sniffer. 

    Ultimately all I ever wanted to know is:
    When using CC2540EMK-USB with the TI BTool app, how do we convert the RSSI results from that arbitrary 0-250 scale into meaningful dBm results?  
    (The rest of this thread has basically been a wild goose chase to try and find that answer step-by-step, but I've now hit a dead end)

  • Hi,

    We cannot provide the offset value you are asking for.

    We encourage you characterize the system for the range of temperature, voltage supply and input RF power you want.

    Best regards,

  • Hi Clement

    Thanks for your latest reply. Maybe my original question was unclear. Characterizing the system is not relevant because the entire system is Texas Instruments hardware / firmware / software (as shown in the below pictures), so we are not defining the temperature / voltage / input RF power. We are simply using the TI Development Kit to measure signal strength from other devices.

    Also, the User's Guide you provided earlier states that TI do provide this offset value (https://www.ti.com/lit/swru191 23.10.3 "For the correct offset value to use, see the data sheet (Appendix C)") but the offset value is missing from the data sheet listed in Appendix C.

    Please allow me to re-state the question with reference to the below pictures...

    When we are using the pictured System #1 (TI hardware / firmware / software), the results are in dBm. But when we are using the pictured System #2 (TI hardware / firmware / software), the results are in 0-250 unitless scale.  Using the pictured System #2, how do we convert the 0-250 results into dBm?

  • Hi, 

    I will be out of the office for the upcoming 2 weeks. 
    I am closing this thread as there is no more information I can provide. In case you need more support, please open a new thread. 
    Beat regards,