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

nrf sniffer : no ble packets captured

Dear All,

Hardware :

  • nrf52840 dongle

  • firmware : 3.1.0

Software:

  • wireshark 2.6.8

  • python : 3.7.3

  • pyserial : 3.5

  • Jlink : 6.88a

  • OS : debian buster 10

  • kernel : 4.19.0-12-amd64

I have installed all the software successfully without fail :

nrf sniffer install :

./nrf_sniffer_ble.sh --extcap-interfaces

extcap {version=3.1.0}{display=nRF Sniffer for Bluetooth LE}{help=www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE}

control {number=0}{type=selector}{display=Device}{tooltip=Device list}

control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}

control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}

control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}

control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}

control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}

value {control=0}{value= }{display=All advertising devices}{default=true}

wireshark :

The green LED on the dongle starts blinking.

I am transmitting ble packet from anther nrf board.

Unfortunately, wireshark is not capturing any packet. When I stop the capture I get this message :

Any ideas would be greatly appreciated.

Fethi FEZAI

Parents
  • Hi,

    try to update wireshark to more recent version (for me, the dongle works fine with wireshark 3.2.3 on Ubuntu 20.04)

  • Hi Dmitry,

    Thank you for your prompt reply.

    I have installed a newer version of wireshark 3.2.8-0.1 from Debian testing.

    I still can’t capture BLE Packets but the message from wireshark is not the same anymore :

    Output from the Terminal

    Main Warn 0 duplicates of "nRF Sniffer for Bluetooth LE could not find interface: /dev/ttyACM0" were suppressed

    As you can see, I am a member of these groups :

    groups $USER

    ##### : #### root dialout cdrom floppy sudo audio dip video plugdev netdev bluetooth lpadmin scanner docker wireshark

  • So after many tries, I have just succeeded.

    I do not have any explanation but it works.

    I have noticed that if I call many time the nrf_sniffer_ble.sh script, the output will not be the same:

    First time

    ./nrf_sniffer_ble.sh --extcap-interfaces

    extcap {version=3.1.0}{display=nRF Sniffer for Bluetooth LE}{help=www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE}

    interface {value=/dev/ttyACM0}{display=nRF Sniffer for Bluetooth LE}

    control {number=0}{type=selector}{display=Device}{tooltip=Device list}

    control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}

    control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}

    control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}

    control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}

    control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}

    value {control=0}{value= }{display=All advertising devices}{default=true}

    Second Time:

    ./nrf_sniffer_ble.sh --extcap-interfaces

    extcap {version=3.1.0}{display=nRF Sniffer for Bluetooth LE}{help=www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE}

    control {number=0}{type=selector}{display=Device}{tooltip=Device list}

    control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}

    control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}

    control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}

    control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}

    control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}

    value {control=0}{value= }{display=All advertising devices}{default=true}

    The interface is missing.

    If I am not wrong, at first, wireshark calls the script to get the interface, and if we want to capture packets it will call another time the same script with different parameters.

    The workaround is simple, after wireshark indentifies the inferface, I disconnect the Dongle and start capturing.

Reply
  • So after many tries, I have just succeeded.

    I do not have any explanation but it works.

    I have noticed that if I call many time the nrf_sniffer_ble.sh script, the output will not be the same:

    First time

    ./nrf_sniffer_ble.sh --extcap-interfaces

    extcap {version=3.1.0}{display=nRF Sniffer for Bluetooth LE}{help=www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE}

    interface {value=/dev/ttyACM0}{display=nRF Sniffer for Bluetooth LE}

    control {number=0}{type=selector}{display=Device}{tooltip=Device list}

    control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}

    control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}

    control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}

    control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}

    control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}

    value {control=0}{value= }{display=All advertising devices}{default=true}

    Second Time:

    ./nrf_sniffer_ble.sh --extcap-interfaces

    extcap {version=3.1.0}{display=nRF Sniffer for Bluetooth LE}{help=www.nordicsemi.com/.../nRF-Sniffer-for-Bluetooth-LE}

    control {number=0}{type=selector}{display=Device}{tooltip=Device list}

    control {number=1}{type=string}{display=Passkey / OOB key}{tooltip=6 digit temporary key or 16 byte Out-of-band (OOB) key in hexadecimal starting with '0x', big endian format. If the entered key is shorter than 16 bytes, it will be zero-padded in front'}{validation=\b^(([0-9]{6})|(0x[0-9a-fA-F]{1,32}))$\b}

    control {number=2}{type=string}{display=Adv Hop}{default=37,38,39}{tooltip=Advertising channel hop sequence. Change the order in which the siffer switches advertising channels. Valid channels are 37, 38 and 39 separated by comma.}{validation=^\s*((37|38|39)\s*,\s*){0,2}(37|38|39){1}\s*$}{required=true}

    control {number=3}{type=button}{role=help}{display=Help}{tooltip=Access user guide (launches browser)}

    control {number=4}{type=button}{role=restore}{display=Defaults}{tooltip=Resets the user interface and clears the log file}

    control {number=5}{type=button}{role=logger}{display=Log}{tooltip=Log per interface}

    value {control=0}{value= }{display=All advertising devices}{default=true}

    The interface is missing.

    If I am not wrong, at first, wireshark calls the script to get the interface, and if we want to capture packets it will call another time the same script with different parameters.

    The workaround is simple, after wireshark indentifies the inferface, I disconnect the Dongle and start capturing.

Children
No Data
Related