RSSI Measurement

Hello,

After working with the path loss monitoring sample in NCS, I was wondering if there is a sample that accomplishes something similar to the following: 

  • Central on nRF52840-DK

    • Scans and connects to peripheral

    • Makes RSSI measurement of packets coming from Peripheral = RSSI@Central

    • Reports RSSI@Central and RSSI@Peripheral as a transaction pair over COM port

  • Peripheral on nRF21540-DK (nrf52840)

    • Makes RSSI measurement of packets coming from Central = RSSI@Peripheral

    • Sends RSSI@Peripheral measurement back to Central

Thanks,

James

Parents
  • Hi James,

    Path Loss Monitoring will not fit here. It only fires events on zone transitions (Low / Middle / High), not continuous values, so it cannot give you the per-packet RSSI pair you want.

    The primitive you actually want is HCI_Read_RSSI on the live bt_conn handle. Both ends of a connection can call it, so the Central reads RSSI of packets from the Peripheral and the Peripheral reads RSSI of packets from the Central. Poll it on a work queue at whatever cadence you need.

    The samples/bluetooth/rssi_power_control sample (NCS v3.2.0+) is the closest existing reference for the Central-side polling pattern. Its actual purpose is automated TX power control, so you would take the RSSI-polling skeleton and drop the power-control loop.

    For your bidirectional setup you also need the same polling on the Peripheral side and a small custom GATT notify characteristic for the back-channel. The Peripheral notifies its own RSSI to the Central; the Central reads its own RSSI on each notification and prints the pair over UART.

    Hope this helps!


    Mohammad
    Novel Bits
    https://novelbits.io

Reply
  • Hi James,

    Path Loss Monitoring will not fit here. It only fires events on zone transitions (Low / Middle / High), not continuous values, so it cannot give you the per-packet RSSI pair you want.

    The primitive you actually want is HCI_Read_RSSI on the live bt_conn handle. Both ends of a connection can call it, so the Central reads RSSI of packets from the Peripheral and the Peripheral reads RSSI of packets from the Central. Poll it on a work queue at whatever cadence you need.

    The samples/bluetooth/rssi_power_control sample (NCS v3.2.0+) is the closest existing reference for the Central-side polling pattern. Its actual purpose is automated TX power control, so you would take the RSSI-polling skeleton and drop the power-control loop.

    For your bidirectional setup you also need the same polling on the Peripheral side and a small custom GATT notify characteristic for the back-channel. The Peripheral notifies its own RSSI to the Central; the Central reads its own RSSI on each notification and prints the pair over UART.

    Hope this helps!


    Mohammad
    Novel Bits
    https://novelbits.io

Children
No Data
Related