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

DIS Service stops reporting Serial Number characteristic

I am using the nRF5 SDK Version 15.2 and nRF52840-DK to model a custom service containing five characteristics along with the standard BMS and DIS service provided in the sdk.  I have changed the size of one characteristic to 255 and adjusted the RAM_START and RAM_SIZE as recommended in the warning message.  After doing this, the DIS service stops reporting its serial number characteristic during characteristic discovery on iOS.  When this custom characteristic is 128 bytes or smaller the DIS service behaves properly.  I have flushed the bluetooth services in iOS and verified the proper new size for the custom characteristics that I changed.  Why would the DIS service stop reporting some of its characteristics?

Parents
  • Hi,

    I'm not sure why this is happening. 

    Which iPhone and iOS version have you tested with? Could you try with different iPhones and iOS versions and see if the issue is still there?

    Maybe all the cashed data didn't get deleted, could also try turning your phone off completely and see if that helps?

  • I do not believe this issue is on the central (iOS) device, when I connect to the device using nRF Connect V2.6.2 I see the same results that two BLE 5.0 iOS devices show.

    I am serving the following profile:

    Nordic's standard BMS Service

    Nordics DIS Service with

    • Manufacturer Name
    • Model Number String
    • Serial Number String
    • Software Version String

    Custom Service with

    • Characteristic_1 - 124 bytes
    • Characteristic_2 - 26 bytes
    • Characteristic_3 - 82 bytes
    • Characteristic_4 - 256 bytes
    • Characteristic_5 - 128 bytes

    When my custom service Characteristic_4 is 128 bytes everything works properly, when I increase its size to 256 bytes the Model Number, Serial Number and Software Version characteristics from the DIS service are not displayed as available characteristics in the DIS service using nRF Connect.  I have further found that by instantiating the DIS Service before the custom service that all of the DIS service characteristics are then displayed but the custom services Characteristic_5 does not display as a characteristic in nRF Connect.

    Does the soft device have a limit in the number of or total size of characteristics that it supports?  I am using the S140 stack.  The call to nrf_sdh_ble_enable() indicates that I have allocated the correct amount of RAM for the Soft Device.

Reply
  • I do not believe this issue is on the central (iOS) device, when I connect to the device using nRF Connect V2.6.2 I see the same results that two BLE 5.0 iOS devices show.

    I am serving the following profile:

    Nordic's standard BMS Service

    Nordics DIS Service with

    • Manufacturer Name
    • Model Number String
    • Serial Number String
    • Software Version String

    Custom Service with

    • Characteristic_1 - 124 bytes
    • Characteristic_2 - 26 bytes
    • Characteristic_3 - 82 bytes
    • Characteristic_4 - 256 bytes
    • Characteristic_5 - 128 bytes

    When my custom service Characteristic_4 is 128 bytes everything works properly, when I increase its size to 256 bytes the Model Number, Serial Number and Software Version characteristics from the DIS service are not displayed as available characteristics in the DIS service using nRF Connect.  I have further found that by instantiating the DIS Service before the custom service that all of the DIS service characteristics are then displayed but the custom services Characteristic_5 does not display as a characteristic in nRF Connect.

    Does the soft device have a limit in the number of or total size of characteristics that it supports?  I am using the S140 stack.  The call to nrf_sdh_ble_enable() indicates that I have allocated the correct amount of RAM for the Soft Device.

Children
Related