Hello all,
we have currently a problem with writing to a custom chracteristics in nRF52832 with softdevice S132. When the characteristic is written, we get responses only for payloads less or equal to 20 bytes, otherwise there comes no response and no handler is called in firmware. As far as I understood, the Bluetooth standard 4.2 does allow to write characteristics within the MTU size without need of DLE or queued writes. In our application we use non standard MTU sizes and we are able to exchange the MTU, but it doesn't help. This issue we could also reproduce with the ble_app_uart example and gatttool from Bluez. Please see the attached screenshot with the reproduction steps using gatttool and the corresponding log of the nRF side (debug log is switched on). In this test we are expecting both packets to be received, however the second request with 22 byte payload is not processed. After some time board disconnects from the client.
We have also tested it with BLE scanner app for Android. It does work when one writes more than 20 bytes to the RX, but it splits write requests in 20 byte chunks automatically.
Development setup:
- GATT Server:
- nRF52832 (PCA10040 board)
- S132
- nRF5 SDK v. 15.3.0
- GATT Client:
- gatttool from BlueZ v. 5.48
- Bluetooth v. 4.2 hardware (Intel 8265/8275)
gatttool:
debug log form nRF: