You can increase the MTU size in the GAP Settings. But a negotiation should take place with the iPhone that the MTU has be increases to more than 23 bytes.
Refer to the
CyBle_GattcExchangeMtuReq and CyBle_GattsExchangeMtuRsp APIs in the BLE Datasheet.
Though you have an option for choosing upto 65488, it is not possible practically. We need to get this fixed in the creator.
- Madhu Sudhan
Gotcha! But do I have any guarantee that my mobile device (iOS and maybe Android) support these characteristic sizes up to 512 Bytes? So are characteristic sizes above 23 Bytes are specified anywhere in the Bluetooth Low Energy specification?
2 of 2 people found this helpful
Characteristic size over 23 bytes have to be negotiated. You should probably trigger the MTU exchange request from your App on Android/iOS to ensure that the data size is always set correctly. Android/iOS normally support higher MTU size.
When you have a characteristic that doesn't fit in one MTU, BLE can execute a "long read". This means the read of this value is plit up into multiple packets. It should happen automatically IIRC.
I am notifying >70 bytes of data from the PSoC BLE. I have set the MTU size to 100.
In my application I should receive the data in a linux device, So I am using GATTTOOL for that. If I am receiving >20 bytes, then it is not getting notified. Is there any command to set the MTU size in linux??
I think for the notification the length is limited. A long read is only possible for normal attribute reads. So your notification would indicate what has changed, and the the device can decide to do a full attribute read.
Sorry but I get quite confused...
I have to connect with an Android / iOs device, where "Embarcadero Development" suite seem to accept long buffer characteristic write...
But on Psoc4-Ble, if I needed to send 100 bytes, do I have to split in 5 writes?
Or may be the Android Client device, reading my profile (100 bytes MTU), could allow this longer write?
Thanks to every one answering me.