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

Large data transfers on nRF52 - new possibilities with BT 4.2? IoT SoftDevice? Timeslot API?

Hi,

I have already read several posts and articles about how to maximize data throughput on Bluetooth Smart (like sending multiple Notify packets with 20 bytes of data). This will not be sufficient for our next project.

We want to use the nRF52 platform to extend an existing microcontroller based device with Bluetooth Smart connecticity. The problem is that in some rare cases, we want to transfer a large amount of data over Bluetooth to this device (up to 500 MB!). I know that Bluetooth Smart is the totally wrong way to go here, but we want to keep using a homogeneous platform in all our products. Also, the device shall offer normal Bluetooth Smart based features under normal operating conditions.

This is why I am looking for a way to transfer data at a rate of approximately 100 KB/s or faster. After some research, I have some questions to the Nordic people who are familiar with the nRF52 hardware and protocol stacks (SoftDevices):

  • Here, Nordic Semiconductor mentioned a 100% increased throughput for the nRF52 platform. How is this done? Can throughput be further improved?

  • I understand the the current nRF5x SoftDevices do not support BR/EDR connections. But can the nRF52 hardware be used to implement a BR/EDR device? Can a "Bluetooth Smart Ready" device be implemented on the nRF52 hardware by using the timeslot API, for example?

  • Would it help to use the IoT SDK? What is the maximum throughput that can be accomplished with the IoT SoftDevice? Will there be a IoT SDK that offers Bluetooth Smart functionality (like S132) at the same time?

  • According to Bluetooth 4.2 Specifification, Vol3, Part A, Chapter 3, the L2CAP payload can be up to 65535 bytes (64KB - 1B). Also, the SoftDevice (S132) provides access to the L2CAP layer. Is it possible to use this interface to send special data packets within an existing Bluetooth Smart connection? Or is it necessary to establish a separate connection for transmitting user specific L2CAP packets?

  • Can the timeslot API be used to transfer large data blocks in a faster way? What is the maximum throughput that could be accomplished this way (power consumption does not matter, radio may be active all the time)? Also, is there a sample code available that shows how to implement a user specific radio protocol?

  • Can the L2CAP interface provided by the SoftDevice be used in combination with the timeslot API to implement a user specific protocol? Or is it necessary to program the radio hardware directly?

I hope you can give me some hints that will help me to decide which way to go :)

Related