This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

BLE_ERROR_GATTS_SYS_ATTR_MISSING

Hi. I have a problem with HID keyboard example. Function sd_ble_gatts_hvx returns 0x00003401. I know that it's means BLE_ERROR_GATTS_SYS_ATTR_MISSING. But how and where I must set attributes or enable notification. I know that I must restore attributes from storage. But how? I read many posts about this but I can not to fix this problem. Please help me. Thank you in advance.

BLE_ERROR_GATTS_SYS_ATTR_MISSING does not handle

  • I debug device manager. So If I connect from android in dm_ble_evt_handler:

    • -BLE_GAP_EVT_CONNECTED handled, but never find bounded device and never enter to block

      if (err_code == NRF_SUCCESS) { m_connection_table[index].bonded_dev_id = device_index; m_connection_table[index].state |= STATE_BONDED; handle.device_id = device_index;

                       bond_data_load(&handle);
      

      }

    • -BLE_GAP_EVT_SEC_INFO_REQUEST handled, but function device_instance_find never find device so m_connection_table[index].state never set to STATE_BONDED, so when device is disconnecting function device_context_store never to call

    . But on phone writes that device bounded. If I connect from raspberry pi3 event BLE_GAP_EVT_SEC_INFO_REQUEST does not come.

  • Could you let me know the Android device you are testing with ? Also the Android version on the device.

    Are you testing with device manager or peer manager ? If you are using SDK v12 it would be peer manager.

    It might not be a good idea to mix SDK v12 with device manager.

    If you use device manager, please check if the bond information is stored. To check how many master is stored, you can have a look at dm_whitelist_create() function where we find the masters ID to put into whitelist.

    In device manager, we store new bond info when we receive BLE_GAP_EVT_AUTH_STATUS event in dm_ble_evt_handler()

  • I use Meizu MX5 android 5.1. If I use peer manager I have the same result. Now I can not check dm_whitelist_create.

  • Please try to test bonding with nRF Connect on PC or nRF Master Control Panel on PC. Please stick with one SDK and test with for example ble_app_proximity. You may want to test with other Android phone.

    We have thousands of customers but non has reported what you are observing.

    Also make sure you erase the whole chip before testing since bond information is stored in flash it might cause a problem when you change between different firmware.

  • I don't know wath is happening. I tried ble_app_proximity and I had the same result with . On PC I have pin code error on my and ble_app_proximity project. Maybe it is dongle blame. On Android I have PIN code request. But Pin code doesn't write. If I manually set pin code i can connect. On raspberry I can connect and disonnect but attribute missing. BLE_GAP_EVT_AUTH_STATUS never comes. Never! I use custom board on RedBear BLE nano and StLink programmer. On all devices writes that Keyboard bounded but in debug mode I see than device not bounded. Help me. I must finish project. I don't know what happenings. It is my project. I use S130 and example downloaded in pack installer Keil. www.dropbox.com/.../ble_app_hids_keyboard.zip

Related