BLE mtu and iPhone compatibility
Posted: Mon Jan 08, 2018 3:46 am
I would like to ask about ble functionality. Its LE Data Packet Length Extension (Core BLUETOOTH SPECIFICATION Version 4.2 [Vol 6, Part B] 4.6.6 LE Data Packet Length Extension). ESP32 user require long data trasmission between esp32 and iPhone. He also got response from Apple:
Is it supported or is it planned to be supported?Unless your hardware is able to use BLE 4.2 Data Length Extension (only available on iPhone 7 and newer devices on iOS side), BLE transmissions are limited to 23 byte data packets over the air.
DLE is different than MTU. Even if you increase the MTU, actual data packets are still limited (unless you are extending them with 4.2 features). All this needs to be done on the peripheral. There is no way for your app to control any of these low level settings.
When your data is larger than what fits in an over the air packet, you must split it into smaller chunks and send in separate packets. I cannot answer how this would be done on your specific hardware, and you may want to consult the support channels for it to find out how you would do this with the hardware and possibly the firmware you are using.
If your hardware supports 4.2 DLE, and you can live with supporting iPhone 7 or later, using an extended data packet would be the best solution, as it will be future-proofing your solution.