How to install BLE Sniffer on nRF52 DK Board and run it

This blog is to provide the procedure how to install the nRF Sniffer and run on the Window 10. Nordic provides the free to use Bluetooth LE sniffer and it can run with Nordic Development Board.

nRF Sniffer for Bluetooth LE

The nRF Sniffer for Bluetooth® LE is a useful tool for learning about and debugging Bluetooth Low Energy applications. It provides a near real-time display of Bluetooth packets that are sent between a selected Bluetooth Low Energy device and the device it is communicating with, even when the link is encrypted.

When developing a Bluetooth Low Energy product, knowing what happens over-the-air between devices can help you identify and fix issues quickly.

On startup, the Sniffer lists all nearby Bluetooth Low Energy devices that are advertising, providing the Bluetooth address and address type, complete or shortened name, and RSSI.

Supported devices

  • nRF52 Development Kit (PCA10040)
  • nRF52840 Development Kit (PCA10056)
  • nRF51 Development Kit (PCA10028)
  • nRF51 Dongle (PCA10031)
  • nRF51822 Evaluation Kit (PCA10001)
  • nRF51422 Evaluation Kit (PCA10003) v3.0.0 or later
  • nRF51822 Development Kit dongle (PCA10000)

Supported operating systems

  • Windows 7 or later
  • 64-bit OS X/macOS 10.6 or later
  • Linux (check the Wireshark prerequisites for version compatibility)

Data Length Extension (DLE)

Data Length Update procedure and 2Mbit PHY (PCA10040 only, requires Wireshark version 2.4.6 or
newer) since version 2.0.0-beta-3 or later.

Release note of the nRF Sniffer (3.0.0 129d2b3)

This release switches the required Python runtime from 2.7 to 3.5 and above.
Make sure you have installed Python 3 in order to use this release.

New features:
– All Python code has been ported to Python 3 and is no longer compatible
with Python 2

Bug fixes:
– Fix unstable behavior on Windows (coupled with Wireshark 3.0.7 and above)
– Fix incorrect session key calculated when ENC_RSP and START_ENC_REQ was sent in same connection event.

In this blog, I will use the nRF52832 DK (PCA10040) as the sniffer and run on the Windows 10 (64 bit).

https://infocenter.nordicsemi.com/topic/ug_sniffer_ble/UG/sniffer_ble/intro.html

The user guideline of sniffer can be found at http://infocenter.nordicsemi.com/pdf/nRF_Sniffer_BLE_UG_v3.1.pdf

Installing nRF Sniffer

Before you start setting up the nRF Sniffer, make sure that you have the following prerequisites installed on your computer:

  • Wireshark v2.4.6 or later (v3.0.7 or later recommended on Windows). Wireshark is a free software tool that captures wireless traffic and reproduces it in a readable format.
  • Python v3.6 or later

Installing the Wireshark

Select the windows installer for 64 bit version of wireshark

https://www.wireshark.org/download.html

After clicking the installer,

Download the nRF Sniffer package

You can get the zip package from the Nordic Web page.

https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE/Download#infotabs

After unzip the package folder, it has multiple sub-folder as below.

Program the Sniffer Hex on the nRF52832 PCA10040 Board

Open the nRF Connect Desktop and then select the Programmer
Select the target board and add the hex file

Click the Erase & Write

After finish to program the sniffer hex,

Install the require Python module

Install the Python requirements:
a) Open a command window in the Sniffer_Software/extcap/ folder.
b) Type pip3 install -r requirements.txt to install the requirements.
c) Close the command window

Copy the Sniffer capture tool into Wireshark’s folder for external capture plugins:

Copy the contents of the Sniffer_Software/extcap/ folder into this folder

Make sure that the nRF Sniffer files can be run correctly:

Adding a Wireshark profile for nRF Sniffer

You can add a profile in Wireshark for displaying the data recorded by the nRF Sniffer for Bluetooth LE in a convenient way.


To add the nRF Sniffer profile in Wireshark, complete the following steps:

Go to Help > About Wireshark (on Windows or Linux) or Wireshark > About Wireshark (on macOS).

Copy the profile folder Sniffer_Software/Profile_nRF_Sniffer_Bluetooth_LE into the profiles subfolder of this folder.

In Wireshark, select Edit > Configuration Profiles.

Select Profile_nRF_Sniffer_Bluetooth_LE and click OK.

Running nRF Sniffer

To start sniffing, place the board or dongle that runs the nRF Sniffer for Bluetooth LE firmware between the two devices that are communicating. Then open Wireshark and start recording packets.
Connect the development board or dongle to your computer and turn it on. Then place it between the Central and Peripheral device that you want to sniff.

When you open Wireshark, the Wireshark capture screen is displayed. It includes the Wireshark interface for managing packets that are captured, the nRF Sniffer toolbar, and the hardware interfaces connected to the nRF Sniffer.

If the nRF Sniffer toolbar is not visible, select View > Interface Toolbars > nRF Sniffer for
Bluetooth LE.

In this case, I use the buttonless DFU firmware and put the device name inside the scan response.

All the details of the Sniffer options can be found inside the USER GUIDE of BLE Sniffer document.

Nordic has the Video on the BLE Sniffer (old version) that is running on the nRF51 DK board.

2 thoughts on “How to install BLE Sniffer on nRF52 DK Board and run it

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.