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.

RTOS/CC2640: How to reduce OAD update timing

Part Number: CC2640

Tool/software: TI-RTOS

My OAD firmware size is 56K and it is taking 5 Minutes for update. Is it possible to reduce this timing? 

  • Hi Prabakaran,

    Can you give me more information on what exactly you are doing? Which device and version are you using? What is this application for?

    Regards,

    Jessica Heider

    Please click the "This Resolved My Issue" button on this post if it answers your question

  • This project is home smart lock and we are using CC2640. In this we have added firmware upgrade using OAD. We have developed android mobile application, From this we are sending the firmware of size 56KB to CC2640. It is taking 5 minutes for firmware download. Now our requirement is reduce this timing to 1 or 2 minutes.

    SDK: ble_cc26xx_2_01_01_4462

  • OK, so you are using the CC2640 and not the CC2640R2F? Also are you using on-chip or off-chip OAD? Also, are you using a sniffer or any tool to track connections? Finally, I just want to confirm that the OAD firmware is correctly getting loaded, even though it is taking longer than expected?

    Regards,

    Jessica Heider

    Please click the "This Resolved My Issue" button on this post if it answers your question

  • Hi Prabakaran,

    I also wanted to check if you have tried lowering the connection interval on the CC2640 and the mobile application? If not, I'd suggest you try lowering the maximum/minimum connection intervals and see if that helps improve the timing.

    Regards,

    Jessica Heider

    Please click the "This Resolved My Issue" button on this post if it answers your question

  • OK, so you are using the CC2640 and not the CC2640R2F?

    >>Yes I am using CC26400

    Also are you using on-chip or off-chip OAD?

    >>

    OFF chip OAD using SPI flash.

    Also, are you using a sniffer or any tool to track connections?

    >> No. I am sending 58Kb file, but it is taking 5 minutes to complete. From this point only I am trying to say very slow.

    Finally, I just want to confirm that the OAD firmware is correctly getting loaded, even though it is taking longer than expected?

    >> Yes. OAD firmware is loaded correctly.

    I also wanted to check if you have tried lowering the connection interval on the CC2640 and the mobile application?

    >>

    I have reduced connection interval timing in CC2640 side not in mobile application side. Is it required to change from mobile application also, I thought CC2640 will update its property to mobile device.

    When I enable OAD,

    DEFAULT_DESIRED_MIN_CONN_INTERVAL is 8

    DEFAULT_DESIRED_MAX_CONN_INTERVAL is 8

    With config only we thought that slower speed.

    I try with following,

    DEFAULT_DESIRED_MIN_CONN_INTERVAL is 1

    DEFAULT_DESIRED_MAX_CONN_INTERVAL is 1

    But speed become too worst compared to previous. It tooks 6Mins and 30 Secs to complete.

  • Prabakaran,

    What is the connection interval on the mobile device? If the mobile device has a connection interval larger than that on the CC2640 it could slow down the OAD timing. Also using a connection interval of 1 is too small. According to the BLE4.2 Core Spec, the connection interval should be in the interval of 7.5ms to 4s so the smallest value DEFAULT_DESIRED_MIN_CONN_INTERVAL can be is 6. Try setting it to 6 and 7 to see if it improves.
  • Hi Jessica,

    Our android application team is verifying the connection interval time. I have tried DEFAULT_DESIRED_MIN_CONN_INTERVAL to 6,7 and 8. There is no improvement. 

    1. Is connection interval time wont update automatically from device?

    2. Android team working on setting connection interval time, meanwhile Since from android app we are sending 16 bytes and In device by default OAD_BLOCK_SIZE is configured as 16. Is it possible to increase OAD_BLOCK_SIZE?

  • Hi Prabakaran,

    Increasing the OAD_BLOCK_SIZE was going to be the next thing I suggested if changing your connection interval didn't work. I don't know exactly what needs to be changed to do it, but you can try modifying OAD_DEFAULT_BLOCK_SIZE in oad.h to see if that works. Otherwise, I attached a few links that discuss block size so maybe they can give you more information on it.

    e2e.ti.com/.../2325713
    software-dl.ti.com/.../oad_profile.html
    e2e.ti.com/.../449797
  • Hi Prabakaran,

    After discussing this with one of my co-workers, we think the application is most likely not using the minimum connection interval. I'd highly recommend using a sniffer to track the connection events using a sniffer or with your debugger to see what connection interval is actually being used. The master device controls which connection interval gets selected so it probably isn't using the minimum interval. Most Android apps do not allow you to change the connection interval but you can try testing it on another device or verifying with a sniffer.

    Also, it is not as feasible to change the block size as I thought on the CC2640. It is possible on the CC2640R2F but not on the older version.
  • Hi Prabakaran,

    I'm closing this post and marking it resolved for now due to inactivity. Please let me know if you have any more questions.