nRF Sniffer Setup
The nRF Sniffer transforms your nRF52840 dongle into a professional BLE sniffing tool with Wireshark integration.
Installation
1. Install nRF Util
# Download nRF Util (from https://www.nordicsemi.com/Products/Development-tools/nRF-Util)
# For Linux:
wget https://developer.nordicsemi.com/.pc-tools/nrfutil/x64-linux/nrfutil
chmod +x nrfutil
sudo mv nrfutil /usr/local/bin/
# Install sniffer command
nrfutil install ble-sniffer
nrfutil install device
# Check version
nrfutil --version
2. Flash Firmware
# Put dongle in bootloader mode
# (Hold reset button while plugging in - LED pulses red)
# List available devices
nrfutil device list
# Run bootstrap (shows firmware paths)
nrfutil ble-sniffer bootstrap
# The output shows firmware paths, e.g.:
# ~/.nrfutil/share/nrfutil-ble-sniffer/firmware/
# Flash dongle (serial number from device list)
nrfutil device program --firmware ~/.nrfutil/share/nrfutil-ble-sniffer/firmware/sniffer_nrf52840dongle_nrf52840_X.X.X.zip --serial-number <SERIAL>
3. Install Wireshark Plugin
# Bootstrap installs the extcap plugin for Wireshark
# IMPORTANT: Run with sudo/admin rights!
sudo nrfutil ble-sniffer bootstrap
# Alternative for local installation (without sudo):
nrfutil ble-sniffer bootstrap --extcap-dir ~/.local/lib/wireshark/extcap
Wireshark Configuration
Activate Sniffer Interface
- Open Wireshark
- Capture → Refresh Interfaces (F5)
- nRF Sniffer for Bluetooth LE should appear
- Enable View → Interface Toolbars → nRF Sniffer for Bluetooth LE
Start Capture
- Double-click on nRF Sniffer for Bluetooth LE
- In toolbar: Select device or leave "All advertising"
- Click green Start button
Display Filters for BLE
Basic Filters
# All BLE packets
btle
# Advertising only
btle.advertising_header
# ATT protocol (GATT)
btatt
# L2CAP
btl2cap
ATT/GATT-specific Filters
# Write Requests
btatt.opcode == 0x12
# Write Commands (no response)
btatt.opcode == 0x52
# Read Requests
btatt.opcode == 0x0a
# Notifications
btatt.opcode == 0x1b
Device Filters
# By MAC address
btle.advertising_address == aa:bb:cc:dd:ee:ff
# By device name
btcommon.eir_ad.entry.device_name contains "LED"
Troubleshooting
"Interface not found"
# Check if dongle is recognized
lsusb | grep Nordic
# Check serial port
ls /dev/ttyACM*
# Set permissions
sudo usermod -a -G dialout $USER
# -> Re-login required!
"No packets captured"
- Is the device in range (< 10m)?
- Is the device sending advertising packets?
- Toolbar: All advertising channels enabled (37, 38, 39)?
Bootstrap Error
# Create extcap directory if missing
mkdir -p ~/.local/lib/wireshark/extcap
# Try again
nrfutil ble-sniffer bootstrap --extcap-dir ~/.local/lib/wireshark/extcap
Next Step
Continue with blatann Setup for active BLE interaction.