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

ATT_Read_By_Type when Bonded

Dear Nordic Semiconductor Team,

 this is the same question as in https://devzone.nordicsemi.com/f/nordic-q-a/40957/att_read_by_type-when-bonded

i accidentaly closed it.

I have a problem with my application.

Everytime i bond with my nordic peripheral device (nrf52832)., the device sends a ATT_Read_By_Type Request.

How can i turn this off. My setup is the Softdevice S132 v6.1 with the SDK v15.2.

I Pair with Man in the Middle only.

I use the peer manager in my Application.

Maybe its important to note that its all based on the ble peripheral template Application from the SDK.

For the testing purpose, i ran it seperately without any changes (except for the changes in security for bond).

It shows the same behavior.

I checked everything i could. I would be happy if you could help.

  • Hi Stefan,

    I don't seem to understand your question. How is this a problem?

    Bluetooth Core Specification Version 5.0 Vol3, Part F, chapter 3.4.4.1:

    The Read By Type Request is used to obtain the values of attributes where the
    attribute type is known but the handle is not known.

    Best Regards,

    Marjeris

  • I hav the Following Setup:

    Bluetooth Version 4.0 Device <-----> Nordic nrf52 Bluetooth Version 5.0

    Central                                       <------> Peripheral

    Gatt Client                                 <------> Gatt Server

    The Nordic Device is on the Right Hand side of the Diagram.

    Now the Problem is that the Bluetooth 4.0 Device can not be changed.

    And the Request somehow creates an error condition inside it. Which changes its iternal state.

    So i would like the Nordic Device not to perform the read by type request.

    By the way the Requested UUID is the UUID of the CENTRAL ADDRESS RESOLUTION (uuid: 0x2aa6).

    i checked the Specification and i found the following:

    Bluetooth Core Specification V5.0 Vol3 Part C Chapter 12.4

    The Peripheral shall check if the peer device supports address resolution by
    reading the Central Address Resolution characteristic before using directed
    advertisement where the initiator address is set to a Resolvable Private
    Address (RPA).

    So i have searched for the call to sd_ble_gattc_char_value_by_uuid_read() with the needed Parameter BLE_UUID_GAP_CHARACTERISTIC_CAR. The only point its referenced is in gatt_cache_manager.c inside the peer manager.

    I have checked it with the Debugger and it seemed that it is never called.

    Thus it seems that the stack does it by default.

    Just to conclude the issue:

    The Nordic Device treis to read the CENTRAL ADDRESS RESOLUTION Value, which causes issues in my peer.

    Thus i dont want this to happen.

  • Okay, i solved the issue. It was a problem with the setup of the development environment.

    It actually called the function inside the peer manager.

Related