公司动态
LE Audio PTS dongle破解和调试方法
说明目前市面上支持LE Audio的USB dongle很少如果要在Ubuntu Sim上调试LE Audio基本只能用蓝牙官方PTS Dongle但目前国内很难买到。本文介绍一种破解PTS Dongle的方法以及如何在ubuntu上用bluez zephyr调试LE Audio。官方Dongle蓝牙SIG认证的PTS Dongle有下图两种左边的只能过蓝牙4.2认证LE/BR/EDR都支持用的是CSR的芯片99美元右边的可以支持蓝牙5.2的认证但只支持BLE不支持BR/EDR用的是Nordic的芯片。LE Audio需要右边Laird Connectivity这款Dongle。(官方链接 https://store.bluetooth.com/)破解方法蓝牙官方的PTS Dongle是用的是Nordic 52840方案和Nordic的nRF52840 Dongle非常相似只不过加了个USB外壳理论上是可以直接把PTS的 Firmware直接刷入nRF52840 Dongle来使用购买nRF52840 Dongle。Nordic官方的nRF52840 Dongle淘宝上很多卖的100元左右缺点是不带外壳。也可以在淘宝上找其他带外壳的52840 Dongle价格也便宜。安装PTS Firmware Upgrade Software。SIG官网下载速度很慢上传到这里暂时无法在文档外展示此内容插上Dongle运行PTS Firmware Upgrade Software点击Next软件会搜索连接的dongle如下图接着点击“Next”登陆SIG账号(如果没有SIG账号需要用公司邮箱申请)此时直接用这个软件升级会失败原因是我们买的dongle和PTS dongle的bootloader不同过不了校验但这个过程会把PTS Firmware下载到本地我们可以找出来烧录进去找到PTS Firmware通常在\AppData\Local\PTSFirmwareUpgradeSoftware 路径下安装nrfutil执行下面命令刷机nrf52480 dongle的串口端口号记得修改.\nrfutil dfu usb-serial -pkg b15baf09-b224-446a-bd51-c16467c1762c.bin -p COM7如果出现如下报错需要把nrf52840 dongle软复位一下然后再立即执行上面的命令刷机成功后就可以当作PTS Dongle来做BQB认证测试了调试方法PTS Dongle除了可以做BQB认证外也可以作为controller在Ubuntu/Vela/Zephyr等系统或仿真器上调试蓝牙Host功能而且由于是蓝牙SIG官方的Firmware兼容性比其他dongle更好安装依赖项sudo apt install automake libtool libelf-dev elfutils libdw-dev libjson-c-dev libical-dev libreadline-dev libfftw3-dev下载编译bluezgit clone https://github.com/bluez/bluez.gitgit clone git://git.kernel.org/pub/scm/libs/ell/ell.gitcd bluez./bootstrap-configure --disable-android --disable-midimakesudo make install运行btattachsudo btattach -B /dev/ttyACM0 -S 3000000 -R //ttyACM0表示串口号sudo systemctl stop bluetoothhciconfig -a使用 btproxy 工具打开并监听 UNIX socketcd ~/bluezsudo tools/btproxy -u -i 0 //0表示HCI端口号- Listening on /tmp/bt-server-bredrsudosudo btmon -Tw btsnoop.cfa //抓取hci log下载zephyr代码参考https://docs.zephyrproject.org/latest/develop/getting_started/index.html# 搭建zephyr的编译环境编译qemu仿真器下的zephyr le audio应用west build -b qemu_x86 ~/zephyrproject/zephyr/tests/bluetooth/shell/ --pristine -- -DOVERLAY_CONFIGaudio.conf执行west build -t run 运行zephyr然后在shell终端执行下面命令初始化le audio发送le audio广播bt initaudio initmcc initvcs initbt adv-create conn-nscan ext-adv namebt adv-data discovbt adv-start用支持LE Audio的手机连接调试如果能买到蓝牙官方的PTS Dongle建议还是优先选择官方的Dongle