本文说明利用nrf52832 CoreBoard变为nrf sniffer dongle,并在ubuntu下搭建nrf sniffer环境进行BLE抓包。
起因 链接到标题
使用nrf52832跑zephyr做两个IPSP节点想连时,因不懂BLE,IPSP Node无法connect成功的,因此还是回到要先了解BLE。为了方便学习BLE,就手上的nrf52832板子,DIY一个BLE sniff,并附带提供一些pca10040的功能。
硬件 链接到标题
将CoreBoard提供了nrf52832的核心板和一个usb转ttl相连,参考pca10040的原理图进行扩展,添加了4个led和4个button
连接 链接到标题
P0.05–CTS–不连接 P0.06–RX–引出 P0.07–RTS–GND P0.08–TX–引出
P0.13–BUTTON1–GND P0.14–BUTTON2–GND P0.15–BUTTON3–GND P0.16–BUTTON4–GND
P0.17–LED1–R-V3.3 P0.18–LED2–R-V3.3 P0.19–LED3–R-V3.3 P0.20–LED4–R-V3.3
P0.21–RST–BUTTON–GND–引出 P0.21–RST–引出 SWDIO–引出 SWCLK–引出 VDD–引出
对外的接口 链接到标题
一个USB,用于sniffer 一个UART 一个SWD Debug 供电
实物图 链接到标题

pca10040cut 链接到标题
因为是参照pca10040进行了改造提供了部分功能,因此叫做pca10040cut。 pca10040包含的jlink-ob, USB供电, nfc, button,led等功能。在pca10040上面的button和led是带switch功能,可以选择直连PIO或是连接由nrf52832 I2C控制的IO扩展芯片PCAL6408A上。 pca10040cut只保留直连PIO的4个button和4个led功能,加入USB转串口,对外透露SWD接口和供电接口。连接daplink后可以被当做简单的开发板使用。开发板功能不是本文的重点,不说明如何使用。
nrf sniffer 链接到标题
nordic官方支援nrf sniffer的硬件是:PCA10028/PCA10031/PCA10040。nrf sniffer采用wireshark+nrf plug的方式, nrf plug从串口收集解析数据,提供给wireshark进行分析显示。PCA10040是用nrf52832,我的pca10040cut也一样,因此可以作为sniffer tool。下面说明如何将pca10040cut当做sniffer来使用。
Dongle固件烧写 链接到标题
官方提供的Hex文件用jlink进行烧写,我用的daplink所以需要需要先转成bin然后用pyocd烧写
获取固件 链接到标题
下载nRF-Sniffer-v2解压缩后在hex/内找到hex 下载hex2bin,解压缩后使用下面命令将hex转为sniffer_pca10040_51296aa.bin
hex2bin sniffer_pca10040_51296aa.hex
烧写固件 链接到标题
用daplink连接上pca10040cut,daplink插入pc usb口,使用下面命令进行烧写
pyocd-flashtool -t nrf52 -a 0 sniffer_pca10040_51296aa.bin
Wireshak配置 链接到标题
安装插件 链接到标题
下载nRF-Sniffer-v2解压缩后在extcap/下找到插件 启动wireshark,打开帮助 > 关于Wireshark,在文件夹选项卡下查看extcap patch插件路径为
/usr/lib/x86_64-linux-gnu/wireshark/extcap
修改脚本属性,添加可执行
chmod +x nrf_sniffer.py
如图
将解压缩的extcap内全部内容copy到该文件夹下,重启wireshark,打开视图>接口工具栏>nRF Sniffer 勾选,重启后就可以看到nrf sniffer的工具栏,如下图

运行抓包 链接到标题
关闭wireshark,插入pca10040cut通过USB连到电脑,开启wireshark选择有nRF Sniffer:/dev/ttyxxx 选项开始抓包,如图

Other 链接到标题
wireshark启动是提示"Lua: Error during loading",不影响使用,但强迫症犯了,修改/usr/share/wireshark/init.lua,倒数第二行为
--dofile(DATA_DIR..”console.lua”)
参考 链接到标题
https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF-Sniffer