This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can I "listen" to the data between two devices (under my control) using a third device to get rssi?

What I am trying to accomplish is to establish a connection between an iPhone (device 1) and an NRF52 (device 2), then sniff the data sent between them from a third device (also NRF52, device 3) to get an RSSI. I have the connection part working just fine and I can get RSSI between device 1 and device 2. What I need is RSSI to device 3 without using advertisements or connections (thanks to the limitations of iOS). I can freely exchange any data I need to between device 2 and device 3 (using some wired or wireless connection). Can I somehow sniff the connection and get an RSSI measurement of the signal from device 1 on device 3?

  • OK. Well I was under the impression due to the existence of the sniffer app that this was more easily accomplished using some API. I guess that answers the question. I guess I will pursue a different type of solution. Thanks

  • Oh sorry, I'm too much locked into my embedded system paradigm, there actually is easier way: if your device nr. 3 is some big system like Win or Linux PC then you probably can use nRF Sniffer or similar thing which might give you some low-level data and you could process them. I'd never imagine this would be viable set-up in the field but for some limited time in the lab it could work.

  • @Daniel. As Endnode says you will have to capture the connection request and also channel map updates if you want to sniff the connection in the "traditional way. However, since you have a "backchannel" between Device2 and Device3, you might be able to read the radio parameters on Device2 and send them to Device3 using the backchannel (provided this is wired and using a clocked protocol such as TWI or SPI). This way device 2 could instruct device3 when to start listening on a given channel. I guess the main challenge would be to get the channel over to device 3 in time for it to listen on the correct channel. But as long as the HFXO us shut down between connection events, the startup time of this is 1.5ms, However device 3 would need to run HFXO all the time to shorten the startup time to be able to be in RX mode on time. This would also require some work though.

  • OK. Thanks for the replies. It looks like this is more complicated than I want to deal with, so I will pursue a different route.

  • Unfortunately there is no API available to do what you want. It is indeed possible to do what you want, In a fairly simple manner but it has not been wrapped into an API. If you can talk about your usecase , by private message, I can look at a simple module over TimeSlot API or directly over the radio. This module would pretty much do what endnode and run_ar suggest, i.e. capture the connection request and get the channel map updates so that the receiver can see the packets in the connection and get the RSSI. It would not handle crypto so it will be a simple library (comparative to the sniffer).

Related