This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2642R: BLE OAD Throughput

Part Number: CC2642R

I'm trying to get an estimate on approximately how long it would take (best case) to download a 3MByte image through OAD.  In this cases, it can assumed that there is no restriction on PDU size or connection interval time.  Any ideas on this?  Just a rough estimate would be good enough.

Thanks,

Stuart

  • Hi Stuart,

    From a pure throughput POV;

    • With 1Mbps link, you could get up to 751Kb/s which would be 93.8kB/s. With 3MB data, it would complete in 32 seconds if my math is correct.
    • With 2M mode, the throughput could be up to 1337kb/s, which would result in 23s.

    Using OAD, will add protocol overhead (i.e. Application ACK on every block write etc.) and thus result in lower throughput;

    • OAD blocks are 16B large, so a 3M image has 187500 blocks.
    • The OAD protocol is written such that a single block of data is sent every other connection event(CE)
      • CE1 : OAD target requests block N
      • CE2: OAD manager/downloader sends block N
    • Thus, it would take around 375000 connection events to send a 3M image.
    • Stock OAD Manger project it will use a connection interval of 10ms.
    • Total time = 375000*(10e-3) = 3750s which is a little over 1h, and that assumes no missed connection events.

  • Clarification! For OAD with BLE5 we support up to 244 Block sizes.

    • OAD blocks are 244B large, so a 3M image has 12296 blocks.
    • The OAD protocol is written such that a single block of data is sent every other connection event(CE)
      • CE1 : OAD target requests block N
      • CE2: OAD manager/downloader sends block N
    • Thus, it would take around 24591 connection events to send a 3M image.
    • Stock OAD Manger project it will use a connection interval of 10ms.

    Total time = 24591*(10e-3) = 245s which is a little over 4 minutes, and that assumes no missed connection events.