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

NRF52840 high throughput with custom service error changing mtu

Hi,

I'm using the NRF52840 Preview DK and want to create my own BT stack with high throughput between NRF52 and other BT devices.

As base I'm using the ble_app_template of nordic examples, created a BT Profile with help of Bluetooth Developer Studio from Bluetooth.com (https://www.bluetooth.com/develop-with-bluetooth/developer-resources-tools/developer-kits/bluetooth-starter-kit)

Now I have a profile including: heartrate service, batterylevel service, device information service and one custum service with two characteristics. (1. read/write, 2. notify)

I used the ble_app_att_mtu_throughput example of nordic to expand my own project. All works fine, since I don't change my NRF_SDH_BLE_GATT_MAX_MTU_SIZE of 23, and notification payload of 20 bytes.

The Problem now:
I want to incese the mtu size and enable the datalength extension (like in throughput example), while using the same methods "gatt_mtu_set(...) , data_len_ext_set(...). But every time I increse the MTU size, an other error occur. 


Set the MTU size to 50: one characteristic of my custom service disappears. Set the MTU size to 80: 3 services disappears. (Disappearing in nrfConnect App while scanning) Set the MTU size to 247: programm crashing in main loop.

I my opinion it looks like a memory problem, but I don't really know how to fix it. I already changed the flash/start/size, ram/start/size like in the throughput example (I think the maximum: FLASH_START=0x22000, FLASH_SIZE=0xfffff, RAM_START=0x200030d0, RAM_SIZE=0x3CF30).

I'm using Segger Embedded Studio on macOS for developing.

Anyone got an idea?
Thanks alot!

Related