This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF-{BT,802154}-SNIFFER NRFUTIL nRF52840 DONGLE HEX TO DFU ZIP --SD-REQ

Hello world :-)

I would like to use Bluetooth Low Energy Sniffer [1] and 802.15.4 Sniffer [2] on nRF52840 DONGLE using my FreeBSD workstation.  I did manage to build the`nrfutil` (no nRF Connect and other closed source utilities). DFU mode reuires ZIP package not HEX files that are provided with these project releases.

I have noticed that using `--debug-mode` allows me to skip the cryptography part which is not important here.

I have noticed that `--hw-version` should be `52` for the nRF52 family.

I am not sure what parameter should I use with `--sd-req`. Using `0` generates the DFU ZIP package and it gets flashed, but I can only work with 802.154 Sniffer (it shows as umodem device and I can talk to it over minicom serial terminal) while BLE Sniffer does not work (it shows as umodem device but I cannot talk to it over minicom serial terminal).

What is the in depth purpose of this `--sd-req` switch? Does it filter all available options for the hardware that DFU ZIP will be flashed in order to avoid flashing into incompatible hardware? Does it perform some soft of selection and/or glue of the provided HEX with selected SoftDevice and it really matters to provide valid numbers for 802.15.4 and different nubers for BLE?

My observstions:

* NRF-BT-SNIFFER Firmware 3.0.0 and 3.1.0 works with nRF52840DK + Wireshark, using DEBUG VCP not the nRF USB port.

* NRF-BT-SNIFFER Firmware 3.0.0 works with nRF52DK_nRF52832 + Wireshark.

* NRF-BT-SNIFFER Firmware 3.1.0 does NOT seem to work with nRF52DK_nRF52832, as above it sends something over DEBUG VCP as this device does not have its own USB port.. and although I can see and read from the umodem /dev/cuaU0 port the script does not recognise it and so it is not visible in Wireshark.

* NRF-BT-SNIFFER adds support for nRF52840 DONGLE in 3.1.0 Firmware version. After conversion from HEX to DFU ZIP this firmware flashes into DONGLE, it shows up as umodem, but it remains silent and no Wireshark/script finds it.

My questions:

* Are problems with NRF-BT-SNIFFER that common?

* Why there is no dedicated repository for NRF-BT-SNIFFER on GitHub while NRF-SNIFFER-802154 has its own repo?

* Why those Sniffers are not Open-Souce?

* Is this DONGLE problem related with NRFUTIL DFU ZIP conversion using invalid SD-REQ parameter or the Firmware itself?

Host OS: `FreeBSD 0xCFMX4 12.2-RELEASE FreeBSD 12.2-RELEASE r366954 GENERIC  amd64`

Any hints welcome :-)

Tomek

[1] www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE

[2] github.com/.../nRF-Sniffer-for-802.15.4

Parents
  • Hello,

     

    What is the in depth purpose of this `--sd-req` switch?

     It is used to make sure that the correct softdevice (BLE stack) is programmed when you do an OTA (Over The Air) DFU. Imagine if you have an end product, and you roll out an update to your customers, but some customers didn't update the BLE stack (perhaps they skipped the previous update). When you update the application which was intended for a newer softdevice, the application and softdevice doesn't work together anymore. Then you may have bricked the device, because the application wouldn't be able to start advertising anymore, so you can't connect to it, and you can't update it again. It is just a failsafe. Setting --sd-req to 0x00 means that the bootloader will ignore the softdevice requirement, and accept any DFU image. As long as you have some way to program it again if something goes wrong that is fine. 

    Have you tried to flash the dongle with the sniffer_nrf52840dongle_nrf52840_7cc811f.hex using nRF Connect for Desktop?

    If not can you please try to do so? The reason I ask you to test this is to find out whether this is an issue with your DFU setup or the wireshark/sniffer for iOS itself.

    I have no issues with neither the nRF52840 dongle nor the nRF52832 DK in sniffer v3.1.0. The nRF52832 doesn't have an peripheral USB, but the .hex file doesn't use USB. It uses UART. It is the Segger programmer on the DK that translates from UART to USB.

    Best regards,

    Edvin

  • Different approach - does BLE and 802.15.4 sniffer firmware contain SoftDevice linked into the provided HEX file?

    If SD is included into HEX, the `--sd-req` does not matter here and the sniffer should work outside of the box.

    If SD is not included into HEX, then documentation should be updated and additional HEX with SoftDevice provided..?

    I guess that correct SD is included into provided HEX firmware images?

    Why some boards work with different firmware versions while others do not?

Reply
  • Different approach - does BLE and 802.15.4 sniffer firmware contain SoftDevice linked into the provided HEX file?

    If SD is included into HEX, the `--sd-req` does not matter here and the sniffer should work outside of the box.

    If SD is not included into HEX, then documentation should be updated and additional HEX with SoftDevice provided..?

    I guess that correct SD is included into provided HEX firmware images?

    Why some boards work with different firmware versions while others do not?

Children
No Data
Related