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

nRF52 sending large bulk data

I have read these the following posts:

devzone.nordicsemi.com/.../ devzone.nordicsemi.com/.../

But, most of the answers are quite old. I am wondering if the solution to send multiple notifications is still an valid answer.

Thank you.

Parents
  • Hi Jack,

    Short answer is YES.

    Long answer follows:

    • If you want to use BT LE and at the same time being interoperable with platforms such as Android, iOS, Windows etc. then you have almost no other choice then to deploy application on top of GATT layer (so it will be using GATT Server or GATT Client role).
    • Then to optimize throughput you want to use WRITE without response method from GATT Client side and VALUE NOTIFICATION (HVX) from GATT Server side.
    • And in case that your data could be in principal larger then (ATT_MTU - 3) size you will need to develop some kind of fragmentation/reassembly protocol on top of these GATT methods (note that default ATT_MTU size is 23 bytes).
    • If you want to see some practical examples and throughput numbers then please download latest S13x SoftDevice Specification v3.0 and refer to chapter 18 (there aren't all possible combinations but these values illustrate both "theoretical" and "practical" limits very well).

    Cheers Jan

  • The post you mention is solving the basic problem "how to cut longer message into 20-byte fragments, stack them to BLE Stack - aka Nordic Soft Device - to go out as Tx packets, manage overflow of internal Soft Device buffers and continue once some buffer is empty until all data go out". Now it's question if you need some "session" management on top of it (e.g. which side can talk when, how you find out that whole "long message" has arrived and you can process it etc,) In principle you can define per message or per fragment but there are countless ways how to define all the details...

Reply
  • The post you mention is solving the basic problem "how to cut longer message into 20-byte fragments, stack them to BLE Stack - aka Nordic Soft Device - to go out as Tx packets, manage overflow of internal Soft Device buffers and continue once some buffer is empty until all data go out". Now it's question if you need some "session" management on top of it (e.g. which side can talk when, how you find out that whole "long message" has arrived and you can process it etc,) In principle you can define per message or per fragment but there are countless ways how to define all the details...

Children
No Data
Related