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

How send large notification?

Hello, In our project we want use a large characteristic with notification property.

I use a "ble_app_template" project from nRF5_SDK_14.2.0_17b948a\examples\ble_peripheral. In a project i added custom service with one characterics, it's length 200 byte. Property: Read;Write;Notification.

And I changed MTU size to 247.

So, as "master" I use Ubuntu PC with BlueZ stack. For connect uses "gatttool utility". After success connect in RTT i see:

<debug> nrf_sdh_ble: BLE event: 0x10.
<debug> ble_gatt: Requesting to update ATT MTU to 247 bytes on connection 0x0.
<debug> ble_gatt: Requesting to update data length to 251 on connection 0x0.
<info> app: Connected.
<debug> nrf_sdh_ble: BLE event: 0x24.
<debug> ble_gatt: Data length updated to 27 on connection 0x0.
<debug> ble_gatt: max_rx_octets: 27
<debug> ble_gatt: max_tx_octets: 27
<debug> ble_gatt: max_rx_time: 328
<debug> ble_gatt: max_tx_time: 328
<debug> nrf_sdh_ble: BLE event: 0x3A.
<debug> ble_gatt: ATT MTU updated to 23 bytes on connection 0x0 (response).
<debug> nrf_sdh_ble: BLE event: 0x12.

after in gatt tool i send command: mtu 247 for increase mtu size. In RTT added next:

<debug> nrf_sdh_ble: BLE event: 0x55.
<debug> ble_gatt: Peer on connection 0x0 requested an ATT MTU of 247 bytes.
<debug> ble_gatt: Updating ATT MTU to 247 bytes (desired: 247) on connection 0x0.

When I read a characterictics, I see all 200 bytes. But, If i enable notification, i receive only 20 bytes.

I don't understand, What have I forgotten to do yet?

P.S. Keil MDK, HW: PCA10040 v1.1.0, SW: S132

[00]ble_app_template.rar

Thanks, Best Regurds Max

Parents
    1. Then you should post another question describing your issues.

    2. Do you see the same behavior with nRF Connect and Win8?

    Because it is not necessary to call sd_ble_gatts_value_set() to send a notification. You provide the data you want in the notification when you call sd_ble_gatts_hvx()

    I can also test your project here if you want to, then you need to upload your complete project to the question.

Reply
    1. Then you should post another question describing your issues.

    2. Do you see the same behavior with nRF Connect and Win8?

    Because it is not necessary to call sd_ble_gatts_value_set() to send a notification. You provide the data you want in the notification when you call sd_ble_gatts_hvx()

    I can also test your project here if you want to, then you need to upload your complete project to the question.

Children
No Data
Related