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

Sending multiple bluetooth notifications in quick succession (nRF Connect SDK 1.6.1)

Hey all,

I've run into an interesting situation where writing multiple notifications to successively to a multi-characteristic (custom) service causes data loss. Look like it may be similar to the case here: https://devzone.nordicsemi.com/f/nordic-q-a/77381/sending-multiple-notify-packets-per-connection-interval

The service is defined here. All characteristics have unique UUIDs (See below)

#define BT_UUID_ENV_TEMPERATURE_VAL \
    BT_UUID_128_ENCODE(0x12340002, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_ENV_HUMIDITY_VAL \
    BT_UUID_128_ENCODE(0x12340003, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_ENV_C02_VAL \
    BT_UUID_128_ENCODE(0x12340004, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)
#define BT_UUID_ENV_PRESURE_VAL \
    BT_UUID_128_ENCODE(0x12340005, 0xb5a3, 0xf393, 0xe0a9, 0xe50e24dcca9e)

Here's how they're defined (along with some other characteristics)

BT_GATT_SERVICE_DEFINE(env_service,
                       BT_GATT_PRIMARY_SERVICE(BT_UUID_ENV_SERVICE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_TEMPERATURE, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_HUMIDITY, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_C02, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_PRESSURE, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_AQ, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_PH, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_EC, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                       BT_GATT_CHARACTERISTIC(BT_UUID_ENV_WT, BT_GATT_CHRC_NOTIFY,
                                              BT_GATT_PERM_NONE, NULL, NULL, NULL),
                       BT_GATT_CCC(env_ccc_cfg_changed,
                                   BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
                                   );

I get no errors when sending and the data shows up ok in the console:

[00:00:16.136,016] <inf> app_ble_service_env: Env service notifications enabled
[00:00:17.208,557] <inf> app_ble_service_env: Env service notifications enabled
[00:00:18.281,066] <inf> app_ble_service_env: Env service notifications enabled
[00:00:19.841,094] <inf> app_ble_service_env: Env service notifications enabled
[00:00:36.554,168] <inf> fluidd_sensors: Fetching Sensor Data Now
[00:00:36.556,335] <inf> fluidd_sensors: Temp: 28.190000
[00:00:36.556,335] <inf> fluidd_sensors: raw hex: 
                                         1c 00 00 00 30 e6 02 00                          |....0...         
[00:00:36.558,532] <inf> fluidd_sensors: Humidity: 51.497000
[00:00:36.558,532] <inf> fluidd_sensors: raw hex: 
                                         33 00 00 00 68 95 07 00                          |3...h...         
[00:00:36.559,387] <inf> fluidd_sensors: C02: 993.0
[00:00:36.559,387] <inf> fluidd_sensors: raw hex: 
                                         e1 03 00 00 00 00 00 00                          |........         
[00:00:36.561,553] <inf> fluidd_sensors: Pressure: 101.5000
[00:00:36.561,645] <inf> fluidd_sensors: raw hex: 
                                         65 00 00 00 88 13 00 00                          |e.......  

When received on the phone side, the first two characteristics usually show up correctly (right data). But the last subscribed characteristic receives the wrong data. I'm assuming there are some limits here (max notifications per interval?) If there's a way to work around this that'd be fantastic.

Here's the data on the phone side using nRF Connect on iOS:

Thanks!

Parents
  • Hello,

    Yes, this seems to be the same issue as in this thread. That is currently ongoing, but a workaround has been suggested in this post.

  • Thanks!

    I increase SDC_DEFAULT_TX_PACKET_COUNT but still am having the issue. I'm using a nRF52840 not and nRF53. (not sure if that makes a difference here). 

    The value for the characteristic 12340005 still shows up in characteristic 12340004's value. 12340005 still shows up N/A like the above screenshot.

  • Hi,

    I reproduced the issue by testing as you described and am looking at this together with the SoftDevice stack team. I do not have any updates yet, though.

    For reference, using 

    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_DEBUG_ATT=y
    CONFIG_BT_DEBUG_GATT=y

    I get the following debug log (also includes a log statement I added " bt_gatt_notify_cb returned:" in which differs from your code in case it looks unfamiliar):

    =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2021.09.20 13:32:32 =~=~=~=~=~=~=~=~=~=~=~=
    *** Booting Zephyr OS build v2.6.0-rc1-ncs1  ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Jumping to the first image slot
    [00:00:00.001,831] <err> i2c_nrfx_twim: Error 0x0BAE0001 occurred for message 0
    *** Booting Zephyr OS build v2.6.0-rc1-ncs1  ***
    [00:00:00.014,404] <inf> aqw_ble_demo: Air Quality Wing Demo
    [00:00:00.021,392] <inf> sdc_hci_driver: SoftDevice Controller build revision: 
                                             ef 03 09 9c 79 96 b6 7d  cc 08 9d b2 cf 0f da 3c |....y..} .......<
                                             97 ce 0d 78                                      |...x             
    [00:00:00.052,429] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:00:00.060,546] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.067,321] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 239.2307 Build 3063314844
    [00:00:00.079,956] <inf> bt_hci_core: Identity: E6:50:1E:A7:63:AF (random)
    [00:00:00.087,524] <in[00:00:00.090,057] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:00.098,480] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.122,039] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.145,599] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.168,914] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:00.192,260] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.215,789] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.239,318] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.262,664] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.286,285] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.310,119] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.333,770] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.357,604] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.381,439] <dbg> bt_gatt.Hash: 
                                     e5 75 5c 02 89 6d 19 0f  0f 81 44 8c e4 30 f6 f4 |.u\..m.. ..D..0..
    f> bt_hci_core: HCI: version 5.2 (0x0b) revision 0x122b, manufacturer 0x0059
    [00:00:00.432,800] <inf> bt_hci_core: LMP: version 5.2 (0x0b) subver 0x122b
    [00:00:00.455,444] <dbg> bt_gatt.gatt_register: attr 0x20000640 handle 0x001d uuid 2800 perm 0x01
    [00:00:00.480,072] <dbg> bt_gatt.gatt_register: attr 0x20000654 handle 0x001e uuid 2803 perm 0x01
    [00:00:00.504,821] <dbg> bt_gatt.gatt_register: attr 0x20000668 handle 0x001f uuid da2e7828-fbce-4e01-ae9e-261174997c48 perm 0x02
    [00:00:00.532,257] <dbg> bt_gatt.gatt_register: attr 0x2000067c handle 0x0020 uuid 2902 perm 0x03
    [00:00:00.556,854] <dbg> bt_gatt.sc_indicate: start 0x001d end 0x0020
    [00:00:00.579,956] <inf> app_ble: Bluetooth initialization complete!
    [00:00:00.588,958] <dbg> bt_gatt.sc_process: start 0x001d end 0x0020
    [00:00:00.611,236] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:00.634,582] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.658,111] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.681,640] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.705,444] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:00.728,790] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.752,319] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.775,878] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:00.799,407] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.823,181] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.847,015] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.870,635] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.894,470] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:00.918,548] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x001d offset 0 length 16
    [00:00:00.942,382] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x001e offset 0 length 16
    [00:00:00.966,217] <dbg> bt_gatt.Hash: 
                                     46 30 21 8a 70 c7 02 c7  15 7d 9b 9f 84 28 ba c4 |F0!.p... .}...(..
    [00:00:01.008,789] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: -128
    [00:00:01.031,890] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: -128
    [00:00:01.054,748] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: -128
    [00:00:01.077,636] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: -128
    [00:00:06.157,348] <dbg> bt_att.bt_att_accept: conn 0x200019e8 handle 0
    [00:00:06.180,450] <dbg> bt_att.bt_att_connected: chan 0x20007a48 cid 0x0004
    [00:00:06.204,254] <dbg> bt_att.att_chan_attach: att 0x20007dd4 chan 0x20007a40 flags 0
    [00:00:06.228,759] <dbg> bt_att.bt_att_status: chan 0x20007a48 status 0x20007ab0
    [00:00:06.252,593] <dbg> bt_gatt.bt_gatt_connected: conn 0x200019e8
    [00:00:06.275,756] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x10 len 6
    [00:00:06.300,415] <dbg> bt_att.att_read_group_req: start_handle 0x0001 end_handle 0xffff type 2800
    [00:00:06.326,080] <dbg> bt_att.read_group_cb: handle 0x0001
    [00:00:06.348,083] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:06.372,192] <dbg> bt_att.read_group_cb: handle 0x0009
    [00:00:06.394,256] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:06.418,395] <dbg> bt_att.read_group_cb: handle 0x0010
    [00:00:06.440,460] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:06.464,599] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x11
    [00:00:06.489,044] <dbg> bt_att.chan_send: code 0x11
    [00:00:06.518,646] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:06.542,236] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:06.565,460] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:06.587,524] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:06.609,954] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x10 len 6
    [00:00:06.634,643] <dbg> bt_att.att_read_group_req: start_handle 0x0010 end_handle 0xffff type 2800
    [00:00:06.660,186] <dbg> bt_att.read_group_cb: handle 0x0010
    [00:00:06.682,250] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:06.706,817] <dbg> bt_att.read_group_cb: handle 0x001d
    [00:00:06.729,003] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x11
    [00:00:06.753,112] <dbg> bt_att.chan_send: code 0x11
    [00:00:06.788,635] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:06.812,225] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:06.835,449] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:06.857,482] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:06.879,943] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x10 len 6
    [00:00:06.904,602] <dbg> bt_att.att_read_group_req: start_handle 0x001d end_handle 0xffff type 2800
    [00:00:06.930,145] <dbg> bt_att.read_group_cb: handle 0x001d
    [00:00:06.952,209] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x001d offset 0 length 16
    [00:00:06.976,776] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x11
    [00:00:07.000,854] <dbg> bt_att.chan_send: code 0x11
    [00:00:07.036,132] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:07.059,722] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:07.082,977] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:07.105,072] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:07.127,502] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x10 len 6
    [00:00:07.152,191] <dbg> bt_att.att_read_group_req: start_handle 0x0021 end_handle 0xffff type 2800
    [00:00:07.177,734] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x01
    [00:00:07.202,056] <dbg> bt_att.chan_send: code 0x01
    [00:00:07.238,616] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:07.262,207] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:07.285,400] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:07.307,464] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:07.329,925] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:07.354,553] <dbg> bt_att.att_read_req: handle 0x0010
    [00:00:07.376,525] <dbg> bt_att.read_cb: handle 0x0010
    [00:00:07.398,040] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:07.422,271] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:07.446,441] <dbg> bt_att.chan_send: code 0x0b
    [00:00:07.478,607] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:07.502,197] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:07.525,390] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:07.547,454] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:07.569,915] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:07.594,543] <dbg> bt_att.att_read_req: handle 0x001d
    [00:00:07.616,516] <dbg> bt_att.read_cb: handle 0x001d
    [00:00:07.638,031] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x001d offset 0 length 16
    [00:00:07.662,292] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:07.686,431] <dbg> bt_att.chan_send: code 0x0b
    [00:00:07.718,597] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:07.742,156] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:07.765,441] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:07.787,536] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:07.809,997] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:07.834,747] <dbg> bt_att.att_read_type_req: start_handle 0x0009 end_handle 0x000f type 2803
    [00:00:07.860,260] <dbg> bt_att.read_type_cb: handle 0x000a
    [00:00:07.882,263] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:07.906,707] <dbg> bt_att.read_type_cb: handle 0x000c
    [00:00:07.928,802] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:07.952,941] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:07.977,081] <dbg> bt_att.chan_send: code 0x09
    [00:00:08.011,077] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:08.034,667] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:08.057,891] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:08.079,925] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:08.102,386] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:08.127,044] <dbg> bt_att.att_read_type_req: start_handle 0x000d end_handle 0x000f type 2803
    [00:00:08.152,496] <dbg> bt_att.read_type_cb: handle 0x000e
    [00:00:08.174,468] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 5
    [00:00:08.198,944] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:08.223,022] <dbg> bt_att.chan_send: code 0x09
    [00:00:08.258,544] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:08.282,135] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:08.305,328] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:08.327,392] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:08.349,853] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:08.374,481] <dbg> bt_att.att_read_req: handle 0x000b
    [00:00:08.396,484] <dbg> bt_att.read_cb: handle 0x000b
    [00:00:08.417,999] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:08.442,230] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:08.466,369] <dbg> bt_att.chan_send: code 0x0b
    [00:00:08.498,535] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:08.522,125] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:08.545,349] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:08.567,382] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:08.589,843] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:08.614,501] <dbg> bt_att.att_read_req: handle 0x000d
    [00:00:08.636,474] <dbg> bt_att.read_cb: handle 0x000d
    [00:00:08.657,958] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:08.682,128] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:08.706,268] <dbg> bt_att.chan_send: code 0x0b
    [00:00:08.738,525] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:08.762,084] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:08.785,308] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:08.807,373] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:08.829,833] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:08.854,461] <dbg> bt_att.att_read_req: handle 0x000f
    [00:00:08.876,464] <dbg> bt_att.read_cb: handle 0x000f
    [00:00:08.897,949] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 8
    [00:00:08.922,119] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:08.946,258] <dbg> bt_att.chan_send: code 0x0b
    [00:00:08.978,515] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:09.002,075] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:09.025,360] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:09.047,454] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:09.069,915] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:09.094,543] <dbg> bt_att.att_find_info_req: start_handle 0x000c end_handle 0x000f
    [00:00:09.119,110] <dbg> bt_att.find_info_cb: handle 0x000c
    [00:00:09.141,052] <dbg> bt_att.find_info_cb: handle 0x000d
    [00:00:09.163,024] <dbg> bt_att.find_info_cb: handle 0x000e
    [00:00:09.185,028] <dbg> bt_att.find_info_cb: handle 0x000f
    [00:00:09.207,000] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:09.231,140] <dbg> bt_att.chan_send: code 0x05
    [00:00:09.263,488] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:09.287,078] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:09.310,272] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:09.332,336] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:09.354,797] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:09.379,425] <dbg> bt_att.att_find_info_req: start_handle 0x000e end_handle 0x000f
    [00:00:09.403,991] <dbg> bt_att.find_info_cb: handle 0x000e
    [00:00:09.425,933] <dbg> bt_att.find_info_cb: handle 0x000f
    [00:00:09.447,937] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:09.472,076] <dbg> bt_att.chan_send: code 0x05
    [00:00:09.503,479] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:09.527,069] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:09.550,354] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:09.572,418] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:09.594,879] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:09.619,506] <dbg> bt_att.att_find_info_req: start_handle 0x0010 end_handle 0x000f
    [00:00:09.644,073] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x01
    [00:00:09.668,487] <dbg> bt_att.chan_send: code 0x01
    [00:00:09.698,455] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:09.722,045] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:09.745,239] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:09.767,303] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:09.789,764] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:09.814,422] <dbg> bt_att.att_read_req: handle 0x000b
    [00:00:09.836,395] <dbg> bt_att.read_cb: handle 0x000b
    [00:00:09.857,910] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 16
    [00:00:09.882,141] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:09.906,280] <dbg> bt_att.chan_send: code 0x0b
    [00:00:09.938,446] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:09.961,975] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:09.985,229] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:10.007,293] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:10.733,459] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:10.758,178] <dbg> bt_att.att_read_type_req: start_handle 0x0010 end_handle 0x001c type 2803
    [00:00:10.783,630] <dbg> bt_att.read_type_cb: handle 0x0011
    [00:00:10.805,633] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:10.829,864] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:10.854,187] <dbg> bt_att.chan_send: code 0x09
    [00:00:10.890,899] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:10.914,489] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:10.937,744] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:10.959,838] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:10.982,299] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:11.007,049] <dbg> bt_att.att_read_type_req: start_handle 0x0012 end_handle 0x001c type 2803
    [00:00:11.032,501] <dbg> bt_att.read_type_cb: handle 0x0014
    [00:00:11.054,504] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:11.079,010] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:11.103,179] <dbg> bt_att.chan_send: code 0x09
    [00:00:11.138,366] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:11.161,987] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:11.185,180] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:11.207,244] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:11.229,705] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:11.254,455] <dbg> bt_att.att_read_type_req: start_handle 0x0015 end_handle 0x001c type 2803
    [00:00:11.279,907] <dbg> bt_att.read_type_cb: handle 0x0017
    [00:00:11.301,910] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:11.326,416] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:11.350,585] <dbg> bt_att.chan_send: code 0x09
    [00:00:11.378,875] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:11.402,465] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:11.425,720] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:11.447,845] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:11.470,367] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:11.495,025] <dbg> bt_att.att_read_type_req: start_handle 0x0018 end_handle 0x001c type 2803
    [00:00:11.520,202] <dbg> bt_att.read_type_cb: handle 0x001a
    [00:00:11.541,687] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:11.565,124] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x09
    [00:00:11.588,684] <dbg> bt_att.chan_send: code 0x09
    [00:00:11.655,853] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:11.678,649] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:11.701,263] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:11.722,839] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:11.744,506] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x08 len 6
    [00:00:11.768,646] <dbg> bt_att.att_read_type_req: start_handle 0x001b end_handle 0x001c type 2803
    [00:00:11.793,579] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x01
    [00:00:11.817,230] <dbg> bt_att.chan_send: code 0x01
    [00:00:11.895,904] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:11.918,701] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:11.941,314] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:11.962,860] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:11.984,313] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:12.008,422] <dbg> bt_att.att_read_req: handle 0x0011
    [00:00:12.029,907] <dbg> bt_att.read_cb: handle 0x0011
    [00:00:12.050,964] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:12.074,401] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:12.097,869] <dbg> bt_att.chan_send: code 0x0b
    [00:00:12.165,893] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:12.188,690] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:12.211,273] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:12.232,849] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:12.254,302] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:12.278,411] <dbg> bt_att.att_read_req: handle 0x0014
    [00:00:12.299,926] <dbg> bt_att.read_cb: handle 0x0014
    [00:00:12.320,892] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:12.344,329] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:12.367,858] <dbg> bt_att.chan_send: code 0x0b
    [00:00:12.435,852] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:12.458,679] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:12.481,353] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:12.502,929] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:12.524,383] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:12.548,492] <dbg> bt_att.att_read_req: handle 0x0017
    [00:00:12.570,007] <dbg> bt_att.read_cb: handle 0x0017
    [00:00:12.591,033] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:12.614,501] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:12.638,031] <dbg> bt_att.chan_send: code 0x0b
    [00:00:12.705,841] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:12.728,668] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:12.751,251] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:12.772,827] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:12.794,281] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:12.818,389] <dbg> bt_att.att_read_req: handle 0x001a
    [00:00:12.839,874] <dbg> bt_att.read_cb: handle 0x001a
    [00:00:12.860,931] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 19
    [00:00:12.884,338] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:12.907,928] <dbg> bt_att.chan_send: code 0x0b
    [00:00:12.975,769] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:12.998,565] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:13.021,179] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:13.042,755] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:13.064,422] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:13.088,439] <dbg> bt_att.att_find_info_req: start_handle 0x0013 end_handle 0x001c
    [00:00:13.112,396] <dbg> bt_att.find_info_cb: handle 0x0013
    [00:00:13.133,880] <dbg> bt_att.find_info_cb: handle 0x0014
    [00:00:13.155,059] <dbg> bt_att.find_info_cb: handle 0x0015
    [00:00:13.176,422] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:13.200,073] <dbg> bt_att.chan_send: code 0x05
    [00:00:13.275,817] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:13.298,614] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:13.321,228] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:13.342,773] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:13.364,227] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:13.388,336] <dbg> bt_att.att_read_req: handle 0x0013
    [00:00:13.409,851] <dbg> bt_att.read_cb: handle 0x0013
    [00:00:13.430,908] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:13.454,254] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:13.477,813] <dbg> bt_att.chan_send: code 0x0b
    [00:00:13.545,745] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:13.568,542] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:13.591,156] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:13.612,731] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:13.634,368] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:13.658,416] <dbg> bt_att.att_find_info_req: start_handle 0x0016 end_handle 0x001c
    [00:00:13.682,342] <dbg> bt_att.find_info_cb: handle 0x0016
    [00:00:13.703,826] <dbg> bt_att.find_info_cb: handle 0x0017
    [00:00:13.725,006] <dbg> bt_att.find_info_cb: handle 0x0018
    [00:00:13.746,368] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:13.770,019] <dbg> bt_att.chan_send: code 0x05
    [00:00:13.845,794] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:13.868,591] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:13.891,174] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:13.912,750] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:13.934,204] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:13.958,312] <dbg> bt_att.att_read_req: handle 0x0016
    [00:00:13.979,797] <dbg> bt_att.read_cb: handle 0x0016
    [00:00:14.000,854] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:14.024,200] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:14.047,760] <dbg> bt_att.chan_send: code 0x0b
    [00:00:14.115,692] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:14.138,519] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:14.161,132] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:14.182,708] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:14.204,376] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:14.228,454] <dbg> bt_att.att_find_info_req: start_handle 0x0019 end_handle 0x001c
    [00:00:14.252,410] <dbg> bt_att.find_info_cb: handle 0x0019
    [00:00:14.273,895] <dbg> bt_att.find_info_cb: handle 0x001a
    [00:00:14.295,135] <dbg> bt_att.find_info_cb: handle 0x001b
    [00:00:14.316,436] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:14.340,057] <dbg> bt_att.chan_send: code 0x05
    [00:00:14.415,740] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:14.438,537] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:14.461,151] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:14.482,696] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:14.504,150] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:14.528,167] <dbg> bt_att.att_read_req: handle 0x0019
    [00:00:14.549,682] <dbg> bt_att.read_cb: handle 0x0019
    [00:00:14.570,709] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:14.594,024] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:14.617,553] <dbg> bt_att.chan_send: code 0x0b
    [00:00:14.685,668] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:14.708,465] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:14.731,079] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:14.752,655] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:14.774,291] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x04 len 4
    [00:00:14.798,339] <dbg> bt_att.att_find_info_req: start_handle 0x001c end_handle 0x001c
    [00:00:14.822,296] <dbg> bt_att.find_info_cb: handle 0x001c
    [00:00:14.843,780] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x05
    [00:00:14.867,401] <dbg> bt_att.chan_send: code 0x05
    [00:00:14.925,720] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:14.948,516] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:14.971,130] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:14.992,675] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:15.014,129] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x0a len 2
    [00:00:15.038,146] <dbg> bt_att.att_read_req: handle 0x001c
    [00:00:15.059,631] <dbg> bt_att.read_cb: handle 0x001c
    [00:00:15.080,657] <dbg> bt_gatt.bt_gatt_attr_read: handle 0x0000 offset 0 length 2
    [00:00:15.103,973] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x0b
    [00:00:15.127,502] <dbg> bt_att.chan_send: code 0x0b
    [00:00:15.195,648] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:15.218,444] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:15.241,088] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:15.262,664] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:16.785,583] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x12 len 4
    [00:00:16.809,448] <dbg> bt_att.att_write_req: handle 0x0013
    [00:00:16.830,871] <dbg> bt_att.write_cb: handle 0x0013 offset 0
    [00:00:16.852,783] <dbg> bt_gatt.bt_gatt_attr_write_ccc: handle 0x0000 value 1
    [00:00:16.875,976] <dbg> bt_gatt.gatt_ccc_changed: ccc 0x200004ec value 0x0001
    [00:00:16.898,834] <inf> app_ble_aqw_service: Air Quality Wing service notifications enabled
    [00:00:16.923,156] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x13
    [00:00:16.946,807] <dbg> bt_att.chan_send: code 0x13
    [00:00:17.025,512] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:17.048,309] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:17.070,983] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:17.092,559] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:17.685,516] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x12 len 4
    [00:00:17.709,411] <dbg> bt_att.att_write_req: handle 0x0016
    [00:00:17.730,895] <dbg> bt_att.write_cb: handle 0x0016 offset 0
    [00:00:17.752,838] <dbg> bt_gatt.bt_gatt_attr_write_ccc: handle 0x0000 value 1
    [00:00:17.776,031] <dbg> bt_gatt.gatt_ccc_changed: ccc 0x20000468 value 0x0001
    [00:00:17.798,889] <inf> app_ble_aqw_service: Air Quality Wing service notifications enabled
    [00:00:17.823,181] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x13
    [00:00:17.846,771] <dbg> bt_att.chan_send: code 0x13
    [00:00:17.925,476] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:17.948,272] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:17.970,947] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:17.992,492] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:18.555,480] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x12 len 4
    [00:00:18.579,345] <dbg> bt_att.att_write_req: handle 0x0019
    [00:00:18.600,769] <dbg> bt_att.write_cb: handle 0x0019 offset 0
    [00:00:18.622,711] <dbg> bt_gatt.bt_gatt_attr_write_ccc: handle 0x0000 value 1
    [00:00:18.645,874] <dbg> bt_gatt.gatt_ccc_changed: ccc 0x20000494 value 0x0001
    [00:00:18.668,731] <inf> app_ble_aqw_service: Air Quality Wing service notifications enabled
    [00:00:18.693,054] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x13
    [00:00:18.716,674] <dbg> bt_att.chan_send: code 0x13
    [00:00:18.795,410] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:18.818,206] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:18.840,881] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:18.862,426] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:19.365,417] <dbg> bt_att.bt_att_recv: Received ATT chan 0x20007a40 code 0x12 len 4
    [00:00:19.389,282] <dbg> bt_att.att_write_req: handle 0x001c
    [00:00:19.410,705] <dbg> bt_att.write_cb: handle 0x001c offset 0
    [00:00:19.432,617] <dbg> bt_gatt.bt_gatt_attr_write_ccc: handle 0x0000 value 1
    [00:00:19.455,780] <dbg> bt_gatt.gatt_ccc_changed: ccc 0x200004c0 value 0x0001
    [00:00:19.478,637] <inf> app_ble_aqw_service: Air Quality Wing service notifications enabled
    [00:00:19.502,899] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 1 code 0x13
    [00:00:19.526,550] <dbg> bt_att.chan_send: code 0x13
    [00:00:19.605,377] <dbg> bt_att.att_rsp_sent: conn 0x200019e8 chan 0x20007a40
    [00:00:19.628,143] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:19.650,726] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:19.672,302] <dbg> bt_att.chan_rsp_sent: chan 0x20007a40
    [00:00:31.100,555] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0012
    [00:00:31.123,168] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:00:31.146,728] <dbg> bt_att.chan_send: code 0x1b
    [00:00:31.167,633] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:00:31.190,551] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0015
    [00:00:31.21[00:00:31.214,660] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:31.237,091] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    3,165] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:00:31.281,280] <dbg> bt_att.chan_send: code 0x1b
    [00:00:31.301,879] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:00:31.324,676] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0016
    [00:00:31.334,655] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:31.357,116] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:00:31.391,845] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:00:31.415,313] <dbg> bt_att.chan_send: code 0x1b
    [00:00:31.436,248] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:00:31.459,167] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0018
    [00:00:31.481,781] <dbg>[00:00:31.484,649] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:31.507,080] <dbg> bt_att.bt_att_sent: chan 0x20007a40
     bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:00:31.549,865] <dbg> bt_att.chan_send: code 0x1b
    [00:00:31.570,495] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:00:31.604,644] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:00:31.627,075] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:01:01.593,322] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0012
    [00:01:01.616,241] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:01.639,862] <dbg> bt_att.chan_send: code 0x1b
    [00:01:01.660,461] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:01.683,258] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0015
    [00:01:01.706,176] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:01.722,839] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:01.745,239] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:01:01.773,986] <dbg> bt_att.chan_send: code 0x1b
    [00:01:01.794,921] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:01.817,810] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0016
    [00:01:01.840,423] [00:01:01.842,834] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:01.865,234] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:01.908,447] <dbg> bt_att.chan_send: code 0x1b
    [00:01:01.929,046] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:01.951,782] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0018
    [00:01:01.962,829] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:01.985,229] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:01:02.018,890] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:02.042,327] <dbg> bt_att.chan_send: code 0x1b
    [00:01:02.063,262] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:02.112,792] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:02.135,223] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:01:32.086,212] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0012
    [00:01:32.108,825] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:32.132,354] <dbg> bt_att.chan_send: code 0x1b
    [00:01:32.153,320] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:32.176,239] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0015
    [00:01:32.198,852]  <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:32.223,419] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [0m<dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:32.266,937] <dbg> bt_att.chan_send: code 0x1b
    [00:01:32.287,567] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:32.310,394] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0016
    [00:01:32.320,983] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:32.343,444] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:01:32.377,624] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:32.401,153] <dbg> bt_att.chan_send: code 0x1b
    [00:01:32.422,088] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:32.445,037] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0018
    [00:01:32.467,651] <dbg> bt_a[00:01:32.470,977] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:32.493,438] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    tt.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:01:32.535,827] <dbg> bt_att.chan_send: code 0x1b
    [00:01:32.556,457] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:01:32.590,972] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:01:32.613,433] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:02:02.579,345] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0012
    [00:02:02.602,264] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:02:02.625,885] <dbg> bt_att.chan_send: code 0x1b
    [00:02:02.646,514] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:02:02.669,219] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0015
    [00:02:02.679,138] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:02:02.701,568] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:02:02.736,358] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:02:02.759,887] <dbg> bt_att.chan_send: code 0x1b
    [00:02:02.780,822] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:02:02.803,741] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0016
    [00:02:02.826,354] <dbg[00:02:02.829,132] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:02:02.851,593] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    > bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:02:02.894,470] <dbg> bt_att.chan_send: code 0x1b
    [00:02:02.915,100] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:02:02.937,866] <dbg> bt_gatt.gatt_notify: conn 0x200019e8 handle 0x0018
    [00:02:02.949,127] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:02:02.971,588] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    [00:02:03.005,065] <dbg> bt_att.bt_att_chan_send: chan 0x20007a40 flags 0 code 0x1b
    [00:02:03.028,594] <dbg> bt_att.chan_send: code 0x1b
    [00:02:03.049,530] <inf> app_ble_aqw_service: bt_gatt_notify_cb returned: 0
    [00:02:03.099,121] <dbg> bt_att.att_sent: conn 0x200019e8 chan 0x20007a48
    [00:02:03.121,551] <dbg> bt_att.bt_att_sent: chan 0x20007a40
    

  • Got it! Thanks for the update Einar!

  • The problem here is that the attribute positions are wrong. With the current service definition they should be:

    enum app_ble_aqw_char_position
    {
        AQW_TEMP_ATTR_POS = 2,
        AQW_HUMIDITY_ATTR_POS = 5,
        AQW_VOC_ATTR_POS = 8,
        AQW_PM25_ATTR_POS = 11,
    };

  • Ahh ok.  So for every CCC increase 1 and then for every characteristic increase by 2? (total of 3?)

    Was there any information on this anywhere? I had to guess on the attribute positions based on other BLE examples.

    Jared

Reply Children
No Data
Related