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

Sniffer unable to capture NUS and HRM data

I had setup nRF sniffer with below software and hardware, but the Wireshark seen unable capture BLE data.

 

  • nRF Sniffer software nrf_sniffer_2.0.0-beta-1_51296aa.zip
  • nRF sniffer firmware “sniffer_pca10040_51296aa.hex” with nRF52 Development Kit (PCA10040) nRF52832.
  • Wireshark v2.4.2
  • SEGGER J-Link v6.16c
  • Windows 10 (64 bit)

 

I had built up the testing environment with Nordic Example as below list

  1. 1 x DUT “HRM” Heart Rate Application, DUT always update data to “Relay”, “Relay ” will forward data to iOS nRF ToolBox.

log :

<info> app: Heart Rate Sensor example started.
<info> app: Fast advertising.
<info> app:  pm_evt_handler 0

<info> app: Connected to a previously bonded device.
<info> app:  pm_evt_handler 15

<info> app: Connected.
<info> app: GATT ATT MTU on connection 0x0 changed to 23.
<info> app:  pm_evt_handler 8

<info> app:  pm_evt_handler 1

<info> app:  pm_evt_handler 2

<info> app: Connection secured: role: 1, conn_handle: 0x0, procedure: 0.





  1. 1 x DUT “NUS” UART/Serial Port Emulation over BLE, I have add peer management and paring with “Relay”, iOS nRF ToolBox able to transmit data ‘hello’, “Relay” will forward to DUT “NUS”.

Log: Console_log_NUS_20180831.txt

UART started.

UART started.
 pm_evt_handler 1
                   pm_evt_handler 5
                                     pm_evt_handler 8
                                                       pm_evt_handler 2
                                                                         pm_evt_handler 8
          pm_evt_handler 8
                           hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello

  1. 1 x DUT “Relay” BLE Relay Example, which add one more NUS service. It will take the data forwarding between DUT “NUS”/ “HRM” and iOS nRF ToolBox.

log : Console_log_Relay_20180831.txt

 

<info> app: Relay example started.
<info> app: Fast advertising.
<info> app: on_adv_report, find target uuid
<info> app: Central connected
<info> app: Attempt to find HRS or RSC or eNUS on conn_handle 0x0
<debug> ble_db_disc: Starting discovery of service with UUID 0x180D on connection handle 0x0.
<debug> nrf_ble_gatt: Peer on connection 0x0 requested an ATT MTU of 247 bytes.
<debug> nrf_ble_gatt: Updating ATT MTU to 23 bytes (desired: 23) on connection 0x0.
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 251 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0.
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 2120
<debug> nrf_ble_gatt: max_tx_time: 2120
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> ble_db_disc: Service UUID 0x180D not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1814 on connection handle 0x0.
<debug> ble_db_disc: Service UUID 0x0 not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1814 on connection handle 0x0.
<debug> ble_db_disc: Service UUID 0x1814 not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1 on connection handle 0x0.
<debug> ble_db_disc: Service UUID 0x1814 not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1 on connection handle 0x0.
<debug> ble_db_disc: Found service UUID 0x1.
<debug> ble_db_disc: Found service UUID 0x1.
<debug> ble_db_disc: Discovery of service with UUID 0x1 completed with success on connection handle 0x0.
<debug> ble_db_disc: Discovery of service with UUID 0x1 completed with success on connection handle 0x0.
<info> app: on_adv_report, find target uuid
<info> app: Central connected
<info> app: Attempt to find HRS or RSC or eNUS on conn_handle 0x1
<debug> ble_db_disc: Starting discovery of service with UUID 0x180D on connection handle 0x1.
<debug> nrf_ble_gatt: Peer on connection 0x1 requested an ATT MTU of 247 bytes.
<debug> nrf_ble_gatt: Updating ATT MTU to 23 bytes (desired: 23) on connection 0x1.
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> nrf_ble_gatt: Peer on connection 0x1 requested a data length of 251 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x1.
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x1.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 2120
<debug> nrf_ble_gatt: max_tx_time: 2120
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> ble_db_disc: Service UUID 0x180D not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1814 on connection handle 0x1.
<debug> ble_db_disc: Service UUID 0x1814 not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1 on connection handle 0x1.
<debug> ble_db_disc: Found service UUID 0x1.
<debug> ble_db_disc: Discovery of service with UUID 0x1 completed with success on connection handle 0x1.
<info> app: Discovery complete.
<info> app: eTest Nus discovered on conn_handle 0x1
<info> app: Connected to device with Nordic UART Service.
<info> app: Connection secured: role: 2, conn_handle: 0x1, procedure: 1.
<info> app: Peripheral connected
<debug> nrf_ble_gatt: Peer on connection 0x3 requested an ATT MTU of 185 bytes.
<debug> nrf_ble_gatt: Updating ATT MTU to 23 bytes (desired: 23) on connection 0x3.
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Received data from BLE eNUS. Writing data on UART.
<debug> app:  68 65 6C 6C 6F         |hello
<debug> app: Ready to send data over BLE NUS
<debug> app:  68 65 6C 6C 6F         |hello
<info> app: on_adv_report, find target uuid
<info> app: Disconnected.
<info> app: eNUS central disconnected (reason: 8)
<info> app: Connected to a previously bonded device.
<info> app: Central connected
<info> app: Attempt to find HRS or RSC or eNUS on conn_handle 0x0
<debug> ble_db_disc: Starting discovery of service with UUID 0x180D on connection handle 0x0.
<debug> nrf_ble_gatt: Peer on connection 0x0 requested an ATT MTU of 247 bytes.
<debug> nrf_ble_gatt: Updating ATT MTU to 23 bytes (desired: 23) on connection 0x0.
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 251 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0.
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 2120
<debug> nrf_ble_gatt: max_tx_time: 2120
<debug> app: ATT MTU exchange completed. central 0x17 peripheral 0x17
<debug> ble_db_disc: Found service UUID 0x180D.
<debug> ble_db_disc: Discovery of service with UUID 0x180D completed with success on connection handle 0x0.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1814 on connection handle 0x0.
<debug> ble_db_disc: Service UUID 0x1814 not found.
<debug> ble_db_disc: Starting discovery of service with UUID 0x1 on connection handle 0x0.
<debug> ble_db_disc: Service UUID 0x1 not found.
<debug> ble_hrs_c: Heart Rate Service discovered at peer.
<info> app: HRS discovered on conn_handle 0x0
<debug> ble_hrs_c: Configuring CCCD. CCCD Handle = 17, Connection Handle = 0
<info> app: Connection secured: role: 2, conn_handle: 0x0, procedure: 0.
<debug> ble_hrs_c: Received HVX on link 0x10, hrm_handle 0x10
<info> app: Heart Rate = 170
<debug> ble_hrs_c: Received HVX on link 0x10, hrm_handle 0x10
<info> app: Heart Rate = 180
<debug> ble_hrs_c: Received HVX on link 0x10, hrm_handle 0x10
<info> app: Heart Rate = 190
<debug> ble_hrs_c: Received HVX on link 0x10, hrm_handle 0x10
<info> app: Heart Rate = 200
<debug> ble_hrs_c: Received HVX on link 0x10, hrm_handle 0x10
<info> app: Heart Rate = 210
<

I can capture the device name "Nordic_HRM" \ "Nordic_UART" \ "Relay" with sniffer, but I can monitor any data for WireShark. Below Show my sniffer log.

Sniffer_Relay_NUS_HRM_20180831.pcapng 

 

Did I miss anything, I hope I can capture the data, because I have to looking the bug about I send the string once from nRF Toolbox to “Relay”, and forward to “NUS”, but those device had received twice. (confirm the console debug message from DUT “Relay” and “NUS”.)

Parents
  • Hi George, 

    You may need to choose a device that you want to follow in the drop down "Device" list o the sniffer tool bar. This way the sniffer can follow only that advertiser and will capture the connect request to follow the connection. 

    This is described in step 2 in Chapter 3 in the sniffer manual: 

    Follows one particular device and tries to catch all packets sent to or from this particular device.
    This mode will catch all:
    • Advertisements and Scan Responses sent from the device
    • Scan Requests and Connect Requests sent to the device
    • Packets in the Connection sent between the two devices in the Connection

Reply
  • Hi George, 

    You may need to choose a device that you want to follow in the drop down "Device" list o the sniffer tool bar. This way the sniffer can follow only that advertiser and will capture the connect request to follow the connection. 

    This is described in step 2 in Chapter 3 in the sniffer manual: 

    Follows one particular device and tries to catch all packets sent to or from this particular device.
    This mode will catch all:
    • Advertisements and Scan Responses sent from the device
    • Scan Requests and Connect Requests sent to the device
    • Packets in the Connection sent between the two devices in the Connection

Children
No Data
Related