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

Sniffer + Wireshark Throughput

Long time reader first time poster upper.

I am working on a very minimal BLE send / receive scheme for a research project, and am not using a SoftDevice. I have written my own driver to send a packet, and am monitoring the packets being sent through a BLE sniffer connected to windows 8 and wireshark. I am experiencing a phenomena I cant quite figure out. Here goes:

I am sending an advertising packet on channel 37 every 8.875 m/s.

The packet has a 1 byte counter in it that I am monitoring.

My time between wireshark packets received is .187896s

Thus, I am missing around 20-21 tx'ed packets between received packets in wireshark.
The counter in the advertising data between packets received in wireshark increments around 20-21 as well.

I have a GPIO pin toggling every time a packet is sent which I am monitoring on the scope, so I fairly sure that the hardware is sending out a packet every 8.875 ms. Thus, I am guessing this is a sniffer / wireshark issue.

Any ideas of why I would be have this throughput issue?

If its a sniffer issue, can anyone recommend a pro BLE packet sniffer? (I need to monitor raw network packets and am doing my own post processing).

Thank you in advance.

  • I dont think you are likely to receive every packet.

    AFIK, Bluetooth frequency hops, and although your transmitter is set always receive on the same frequency, the sniffer is running generic firmware which will somehow need to listen on all available channels.

    I suspect the sniffer is not on listening on the same channel ( or band of channels) for some of your transmissions.

    Unfortunately I dont think the source code to the sniffer has been published ( though I could be wrong), so its hard to know precisely how the sniffer operates

  • Im not opposed to writing my own firmware. Ive seen the sensor beacon software that tx'es a packet without a softdevice, and I was able to go from there. github.com/.../solar_sensor_beacon

    Do you know of any examples that show how to receive a packet without a softdevice?

  • Sorry. I can't help on that front.

    There may be code to receive without using the SD API, but I've not come across it (but its not something I've ever looked for)

  • Nordic nRF51 BLE sniffer software is not open source so we don't know how precisely it works. The obvious limitation is that only one nRF5x chip can listen to only one radio channel at the time so there is some hoping routine in the sniffer software which tries to capture all adv. packets on all 3 channels and that can be different then your broadcasting pattern. Btw. there are other commercial BLE sniffers which have more sophisticated radio designs (e.g. 4 chips/antennas;) and they can observe all channels at the time but they cost in range of thousands of USD;) So for 40 bucks you have pretty decent sniffer on Nordic DK and you need to accept some limitations... There are other open source variants such as Ubertooth which might help you but not on nRF5x chips. My assumption is that if you are able to write transmitting FW you will succeed in writing the listening as well;)

  • You should be able to use option h in the sniffer Windows PC console to set the sniffer on a single advertising channel, h 7 7 7 to set the advertising channel to be sniffed on. Let me know if this works for you

Related