My BLE application needs to occasionally (1-2 times a year) send large amounts (several kbytes) of data, and I'm wondering about how to make this happen as fast as possible.
I'm thinking that for sending data from the peripheral, I could have a characteristic with notifications enabled that is 20 bytes large (the user data available in the Max Transmission Unit) and updated when a BLE_EVT_TX_COMPLETE happens, so a notify-transmit-update cycle happens until an EOF code is sent.
For receiving data in the peripheral, I could just use the write handler as normal, also from a 20-byte characteristic, and assume that it happens quickly enough to keep up with the connection events.
Is there another scheme that would play more nicely with s132 SD, in terms of speed or reliability, like using 512-byte characteristics and queued writes? Obviously, BLE isn't optimized for this, but the technology is appropriate for the application since this happens infrequently.