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

Discovering characteristics on a vs service with 16 vs characterisitcs, but only receiving 7 characteristic

Hi Nordic,

I am currently working on ble_app_interactive on nrf52 DK with the DK as central and a hearingaid as peripheral. I have had some help from you guys to configure my characteristic discovery, so that I can discovery vs characteristics uuids. That is working, but my new problem is that, when discovery on a service with a lot of characteristics, I only see 7 of them, even though there are more, I can even see that the handle range on that service, is 31-65, but what I receive is in the range 32-45. Even if I try on a different service, with also 10+ vs characteristic, I also only get 7 characteristics. Do you know why this is happening? 

I think it has something to do with the count I receive. When received characteristic information in on_characteristics_discovery_rsp, I can see that the count is only 7, even though it should be more.

Below is all the commands I have used, I have also added some extra logging for handles and so on:

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2018.11.30 12:04:18 =~=~=~=~=~=~=~=~=~=~=~=


uart_cli:~$ BLE app with command line interface example started.
uart_cli:~$ Press Tab to view all available commands.
uart_cli:~$ connect 1uart_cli:~$ uart_cli:~$ <info> app: Scanning
uart_cli:~$ Connected to address: uart_cli:~$ 40 uart_cli:~$ 4F uart_cli:~$ 0C uart_cli:~$ 33 uart_cli:~$ 57 uart_cli:~$ 2E uart_cli:~$ 
uart_cli:~$ <info> app: CENTRAL: Connected, handle: 0.
uart_cli:~$ <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption
uart_cli:~$ Current MTU: 158
uart_cli:~$ MTU changed successfully
uart_cli:~$ <info> app: Data length updated to 27 bytes.
uart_cli:~$ gatt services 40:4F:0C:33:57:2E uart_cli:~$ <info> app: GATT Services
uart_cli:~$ <info> app: Services count: 9
uart_cli:~$ Found service UUIDs: 
uart_cli:~$ UUID: 1800 type: 0x1 uart_cli:~$ Handle range: 1-9
uart_cli:~$ UUID: 1801 type: 0x1 uart_cli:~$ Generic Attribute uart_cli:~$ Handle range: 12-15
uart_cli:~$ UUID: 180A type: 0x1 uart_cli:~$ Device Information Service uart_cli:~$ Handle range: 16-26
uart_cli:~$ UUID: 180F type: 0x1 uart_cli:~$ Battery Service uart_cli:~$ Handle range: 27-30
uart_cli:~$ UUID: F4BD type: 0x2 uart_cli:~$ MFi Hearing Aid Service uart_cli:~$ Handle range: 31-65
uart_cli:~$ UUID: F2B4 type: 0x3 uart_cli:~$ MFi Authentication Service uart_cli:~$ Handle range: 66-75
uart_cli:~$ UUID: 3049 type: 0x4 uart_cli:~$ Handle range: 76-90
uart_cli:~$ UUID: 2EAF type: 0x5 uart_cli:~$ WDH HI Service uart_cli:~$ Handle range: 91-145
uart_cli:~$ UUID: AE62 type: 0x6 uart_cli:~$ Bonding Service uart_cli:~$ Handle range: 146-156
uart_cli:~$ gatt characteristics 40:4F:0C:33:57:2E F2B4uart_cli:~$ <info> app: Char range: 66-75
uart_cli:~$ <info> app: Number of characteristics: 4
uart_cli:~$ Characteristics count : 4 
uart_cli:~$ UUID: BF66 type: 0x7 uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 67  value_handle: 68
uart_cli:~$ UUID: AEBE type: 0x8 uart_cli:~$ Certificate Part B uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 69  value_handle: 70
uart_cli:~$ UUID: AEBE type: 0x9 uart_cli:~$ Certificate Part B uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 71  value_handle: 72
uart_cli:~$ UUID: 9638 type: 0xA uart_cli:~$ Compatibility Version uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 1 uart_cli:~$ notify: 1 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 73  value_handle: 74
uart_cli:~$ <info> app: Discovers Descriptors
uart_cli:~$ No descriptors/No more descriptors
uart_cli:~$ gatt characteristics 40:4F:0C:33:57:2E F2B4    F4BDuart_cli:~$ <info> app: Char range: 31-65
uart_cli:~$ UUID: DFF3 type: 0xB uart_cli:~$ Battery Level uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 1 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 32  value_handle: 33
uart_cli:~$ UUID: AC2F type: 0xC uart_cli:~$ Left/Right uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 35  value_handle: 36
uart_cli:~$ UUID: 21D3 type: 0xD uart_cli:~$ Hearing Aid ID uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 37  value_handle: 38
uart_cli:~$ UUID: EB9E type: 0xE uart_cli:~$ Other Hearing Aid ID uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 39  value_handle: 40
uart_cli:~$ UUID: 94F9 type: 0xF uart_cli:~$ Mic Volume uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 1 uart_cli:~$ notify: 1 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 41  value_handle: 42
uart_cli:~$ UUID: 6200 type: 0x10 uart_cli:~$ 2nd Stream Volume uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 1 uart_cli:~$ notify: 1 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 44  value_handle: 45
uart_cli:~$ UUID: 4275 type: 0x11 uart_cli:~$ Available Programs Bitmask uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ Logs dropped (1)
decl_handle: 47  value_handle: 48
uart_cli:~$ Logs dropped (1)
<info> app: Discovers Descriptors
uart_cli:~$ No descriptors/No more descriptors
uart_cli:~$ gatt characteristics 40:4F:0C:33:57:2E F4BD    2EAFuart_cli:~$ <info> app: Char range: 91-145
uart_cli:~$ UUID: AC83 type: 0x12 uart_cli:~$ Ear uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 92  value_handle: 93
uart_cli:~$ UUID: 17FE type: 0x13 uart_cli:~$ HI ID uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 94  value_handle: 95
uart_cli:~$ UUID: C43D type: 0x14 uart_cli:~$ Partner HI ID uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 96  value_handle: 97
uart_cli:~$ UUID: CC73 type: 0x15 uart_cli:~$ Basic Control Command uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 98  value_handle: 99
uart_cli:~$ UUID: 58A1 type: 0x16 uart_cli:~$ Available Programs uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 0 uart_cli:~$ write_wo_resp: 1 uart_cli:~$ write: 1 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 100  value_handle: 101
uart_cli:~$ UUID: 7A3E type: 0x17 uart_cli:~$ Selected Programs ID uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 0 uart_cli:~$ notify: 0 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ decl_handle: 102  value_handle: 103
uart_cli:~$ UUID: A64E type: 0x18 uart_cli:~$ Program Info uart_cli:~$ Parameters:
uart_cli:~$ broadcast: 0 uart_cli:~$ read: 1 uart_cli:~$ write_wo_resp: 0 uart_cli:~$ write: 1 uart_cli:~$ notify: 1 uart_cli:~$ indicate: 0 uart_cli:~$ auth_signed_wr: 0 uart_cli:~$ Logs dropped (1)
decl_handle: 104  value_handle: 105
uart_cli:~$ Logs dropped (1)
<info> app: Discovers Descriptors
uart_cli:~$ No descriptors/No more descriptors
uart_cli:~$ 

Parents
  • Hi Dresse, 

    If you have  a look at this message sequence chart, you can find that after the first call to sd_characteristic_discover() and you don't have "Attribute Not found" return, you would need to continue discovery the characteristics until you receive Attribute Not Found. You need to update the start handle after each call base on the handle of the last chars you discover in the last call. 

Reply
  • Hi Dresse, 

    If you have  a look at this message sequence chart, you can find that after the first call to sd_characteristic_discover() and you don't have "Attribute Not found" return, you would need to continue discovery the characteristics until you receive Attribute Not Found. You need to update the start handle after each call base on the handle of the last chars you discover in the last call. 

Children
Related