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.

LAUNCHXL-CC1310 user program update by RF (OTA)

Other Parts Discussed in Thread: CC1350, CC1310, CC2538

Hi all,

Are there any sample code for OTA user program update by RF? I know its possible but I guess its not trivial...

Thanks in advance,

Pedro

  • No, we haven't at the moment. We will get something like it with software examples for CC1350 but there the OTA will be handled by the BLE stack.
  • Thanks for replying. Well, now I have two more questions... :-)
    1. is it possible in fact to OTA using the slow Sub-1GHz?
    2. why the BLE stack? Are you saying that the OTA can only be done using BLE?
  • 1) It should be possible, it will just take longer time.
    2) Because the stack has support for OTA and the example we are going to release is to download a sub 1 GHz image over BLE. You should be able to do OTA without using the BLE stack but we don't have any examples on how to do that at the moment.
  • Sorry, I don't understand point 2... do you mean using the BLE stack at sub-1GHz frequency or making the CC1310 transmit/receive at BLE frequency? As you can see I'm a complete noob on CC1310...
  • Sorry if my answer wasn't clear. I was referring to CC1350 which supports both sub 1 GHz and 2.4 GHz.
  • Hi Pedro,

    I'm Marcus at Thingsquare and I'd just like to share some experiences since, as you correctly noticed, it's far from trivial :). The keywords to this process are secure, authenticated, robust, graceful.

    We (at Thingsquare, using our system) support firmware updates over the air (FOTA) on the cc1310 provided that the hardware comes with an external flash (common and cheap component) since the flash of the cc1310 is limited. With only 128 kB of flash, the cc1310 doesn't have space to store the new binary to update to. So that's a pre-requirement that I'd wager most would happen upon. On the cc2538, the 512 kB flash is more than enough even without external flash.

    With that taken care of, there are numerous other things to make sure that you have a robust, graceful solution that works in harsh conditions without affecting the day-to-day normal operations of the rest of the system.

    Sending the new binary must not choke the network, even if the device is several hops down from the gateway that connects to the backend. The connection over the internet should be encrypted with TLS, so it wouldn't be tampered with. Our devices do end-to-end TLS when updating. Further, the server and the device should gracefully handle packet loss and reboots, ie resuming and retransmissions etc. Perhaps one of the most important security features that we see many fail at in various exploits, is that the binary should be authenticated so that the end device knows that it comes from the right source and hasn't been changed. Layers of security.

    That's to start with. Then we have platform management and versioning, and having a bootloader that handles installation of the binary and checks and so on, and I'm sure I'm forgetting about many other things that are relevant and necessary.

    So, it's not trivial. But you could make it trivial to yourself by not having to think about it if you let someone else take care of it, hint hint nudge nudge.

    Best,
    Marcus

  • ...and just to clarify, I was speaking of FOTAs over the sub-GHz interface, not BLE. Speaking of BLE, we have this cool feature: www.thingsquare.com/.../

    And, we of course support 2.4 GHz too.
  • Hi Marcus,
    Have you received my email?
  • Yes, check your inbox.
    Best,
    Marcus