Unable to use nrf Bluetooth LE sniffer with Wireshark on macOS

I’ve recently bought one of these Bluetooth LE sniffers:

…however, despite spending a total of about 4 hours on methodical troubleshooting, I’ve been unable to get it up and running with Wireshark on macOS. The situation has not been helped by Adafruit’s instructions being a couple of years out of date: (link removed due to restrictions on new user posts)

I’ve been through the process of installing the Wireshark plugin, however the nrf capture device does not show up in Wireshark, even though I can see the Plugin in Wireshark > About > Plugins.

What I’ve tried so far:

  • Installing the Silicon Labs drivers (as per the Adafruit guide)
  • Working through the Python2/3 troubleshooting, installing pyserial etc.
  • Running Wireshark as root
  • Running the plugin shell script on the terminal (results below)

Other info I’ve collected:

andrewebling@Andrews-Mac-mini extcap % ./nrf_sniffer_ble.sh --extcap-interfaces
extcap {version=3.0.0}{display=nRF Sniffer for Bluetooth LE}{help=https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE}
control {number=0}{type=selector}{display=Device}{tooltip=Device list}
control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}
control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}
control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}
control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}
control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}
value {control=0}{value= }{display=All advertising devices}{default=true}

On the terminal if I go looking for the raw devices:

andrewebling@Andrews-Mac-mini extcap % ls -al /dev/cu.*
crw-rw-rw-  1 root  wheel   18,   1 26 Sep 13:49 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   18,   5 10 Oct 15:30 /dev/cu.SLAB_USBtoUART
crw-rw-rw-  1 root  wheel   18,   3 10 Oct 15:30 /dev/cu.usbserial-01D113AF

If I repeat this process without the sniffer plugged in:

andrewebling@Andrews-Mac-mini extcap % ls -al /dev/cu.*
crw-rw-rw-  1 root  wheel   18,   1 26 Sep 13:49 /dev/cu.Bluetooth-Incoming-Port

In the macOS System Information app, I see this when the sniffer is plugged in:

USB 3.1 Bus
CP2104 USB to UART Bridge Controller:

Product ID: 0xea60
Vendor ID: 0x10c4 (Silicon Laboratories, Inc.)
Version: 1.00
Serial Number: 01D113AF
Speed: Up to 12 Mb/s
Manufacturer: Silicon Labs
Location ID: 0x14600000 / 14
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0

Does anyone know how to get this Bluetooth LE Sniffer working? It’s getting to the point where I wonder whether I have a faulty product.

Also - does anyone know what the switch on the PCB does? It has two positions “Data” and “CMD”. I’ve tried both, with no success.