My goal is to instrument a connection between BTLE master and slave better than any of the dedicated BTLE sniffers out there. Adafruit BTLE Sniffer or NXP BTLE Sniffer
The purpose is to help diagnose many of the vexing incompatibilities amongst the large number of BTLE implementations, as well as understand how they react in an interference filled environment. Being able to answer questions like:
Which device failed to respond?
Was the timing or channel wrong?
Was there an interferer that caused the problem?
LimeSDR was advertised as being able to do bluetooth, but after trying the best example I can find: sdr-ble-demo, I’m left disappointed. But I’m very new to all this, and hoping for some suggestions. The main drawbacks I see are as follows, please correct me if I’m mistaken or suggest how they could be solved.
-
Hopping is not implemented. The example listens only on one channel, my understanding is that devices advertise on 3 channels, connect on the last channel that was heard, and then follow a specified sequence from the connect request from there. This implies being able to decode the Link Layer, and then hop to the correct channel in pretty close to real time. Is this feasible and how might it be implemented in something easy like Pothos?
-
Bandwidth seems insufficient for the band. To see the interference, ideally the whole band would be sampled, then extract the current interesting parts in software while doing synchronized spectrum analysis on the whole signal in parallel. Is there any SDR that can handle the whole 2.4G ISM band yet?
-
How can the quantitative and qualitative information be merged into a data stream that allows for good analytics? The other tools use wireshark as a decoder which is preferred, but I’m not sure how to link it to this spectral information in a synchronized way.
Thanks for your thoughts!