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

Sniffing Central and Peripheral Blinky app

Hi all,

I am using as base the Experimental ble_app_blinky_central and ble_app_blinky examples.

I noticed using a sniffer that the Central is asking to the peripheral for a handle outside the GATT server table. The Last handle available for the GATT server is 0x10, the Central is asking for 0x11(it does not exist) and I am getting INVALID_HANDLE(0x01)

all works okay, but why the Cental ask for that handle?

Thanks

Update 02/21/17:

Device : nRF52

Softdevice: $132

SDK : 12.2

Sniffer Capute: I was not able to capture the connection between the Peripheral and the Central using the Nordic Sniffer (maybe my mistake)

So I used a TI sniffer and I got the following caputre...

image description

The Peripheral Blinky app and Central unmodified. When exist a connection the central always ask for a handle 0x0011 (does not exist) the last handle available for that example is 0x0010.

why the central ask for that handle after the discovery event?

Thanks

  • Could you save and upload the sniffer file? Have you done any modification to the code? What SDK version is this? What nRF chip are you using? What SoftDevice are you using?

  • Hi Arepa,

    It's normal. When the server respond to Find Information Request, there is no way the server tell this is the last attribute and the client should not discovery more. It can only tell that by waiting for the client request the attribute handle that is outside of the attribute table then no handle should be returned and it can return Invalid Handle. The client detect that and will stop the Discovering process.

    It's described at section 3.4.3.1 Vol 3 Part F Bluetooth Core Spec v4.2

    Regarding the sniffer, you may want to downgrade Jlink firmware on the dongle to version 5.10d. Have a look here.

    Segger Jlink v5.10m

  • Hi Hung,

    It makes sense, but I was a little worried because the central ask 2 times for the same handle.

    I read the Core Spec section you posted and it talks about:

    *Starting Handle parameter greater than the Ending Handle parameter an Error Response shall be sent with the «Invalid Handle» error code
    

    Is it the same that ask for a non exist handle? sorry if it is a fool question :)

    Could this affect the BLE compliant?

    I am able to use the Nordic Sniffer downgrading the Jlink firmware the issue I have is the sniffer only capture the peripheral advertising data not the connection event. I tried different times because it could be done in a different channel (not the channel I was sniffing) but I did not have luck capturing it

    Thanks

  • Hi Arepa,

    Starting Handle parameter greater than the Ending Handle parameter is exactly showed in the sniffer trace, starting handle was 0x11 and the ending handle was 0x0B.

    I don't see any issue with BLE compliant here. The central/peripheral are allowed to do anything as long as it's following the protocol and unless it's stated "shall not do" in the spec.

    The issue with your sniffer maybe similar to this and this

    Change the Segger firmware to v5.10i fixed the issue in the cases. I couldn't find the installation file for Segger Jlink v5.10i, but I attached above a ziped folder for v5.10m you can try.

  • Hi Hung,

    Thanks for the quick reply

    Now I have a more clear understanding about the how the devices are working and it is not a real issue :)

    I am going to test the nordic sniffer using the segger jlink v5.10i I hope it works :)

    Cheers

Related