4 Replies Latest reply on Jul 13, 2016 10:19 AM by JaeyoungY_71

    OTA support for Android and iOS (April 2016)

    julianm3

      Hi everyone,

       

      My customer is interested in using Broadcom/Anaren for their BLE solution, but requires a solution for OTA.  Before we spend a lot of time with the source code provided at WICED Sense Android Source (v1.08 w/new branding)  I wanted to check with the community:

       

      • Does Broadcom support this code if deployed in a product?  Is the OTA code just for example purposes, or is it commercial grade, ready to ship?
      • Is anyone using OTA in their product?  How much of testing/fixing did you have to do?
      • I only found the Android OTA app.  Is there a iOS version of OTA?

       

      Thanks

        • 1. Re: OTA support for Android and iOS (April 2016)
          MichaelF_56

          julianm3

           

          The WICED Sense product was developed as an easy to use, very low cost demonstration kit, but with that said, the Android and iOS apps themselves were professionally developed and tested. These apps have been used extensively by other customers as example applications/starting points for their own handset applications, many of which are more than likely to use the OTA capability.

           

          Most users of these applications have expertise in either iOS or Android development, so we do not receive many questions to that regard, so my assumption is that the two apps serve as good tools.

           

          The iOS source is here: WICED Sense iOS Source (v1.0 w/new branding)

          Then there is another iOS related doc here that a former member of the team put together: WICED Sense iOS App Source Code Guide

           

          Many of our customers use OTA, and you will find that there are many questions on the forum related to this topic, but mainly pertaining to the sample applications we provide in the SDK, not the handset apps that shipped with the WICED Sense eval board.

           

          To that point, you may also want to take a look at the following if you are interested in secure OTA: WICED Secure Over-the-Air Firmware Upgrade Application Note (SDK 2.x and TAG3 Board)

          • 2. Re: OTA support for Android and iOS (April 2016)
            julianm3

            Excellent response, thank you.  I'll forward these documents to the dev team. 

            • 3. Re: OTA support for Android and iOS (April 2016)
              cliff@rayman.com

              I see that in the 2.2.2 WICED development kit, there are some changes in the ws_upgrade_ota.* files.  Is there an updated version of the Android or iOS source code that show the other side of this process?  I couldn't find it the forums.

               

              -----snip-----

               

              $ FILE=ws_upgrade_ota.h; diff -w timercap/$FILE ota_firmware_upgrade/$FILE

              2c2

              <  * Copyright 2014, Broadcom Corporation

              ---

              >  * Copyright 2015, Broadcom Corporation

              63a64

              > #define WS_UPGRADE_STATUS_CONTINUE                          9

               

              ---

              > // When host is using Write No Response, it should wait for the

              > // Continue Notifications after NU

              > #define WS_UPGRADE_NUM_UNACKED_CHUNKS                       8

              cliff@CLIFF-ASUS-LT /c/Users/cliff/Documents/_clfdat/_TimerCap/source_code/WICED/WICED-Smart-SDK-2.2.2/WICED-Smart-SDK/Apps

              $ FILE=ws_upgrade_ota.c; diff -w timercap/$FILE ota_firmware_upgrade/$FILE

              2c2

              <  * Copyright 2014, Broadcom Corporation

              ---

              >  * Copyright 2015, Broadcom Corporation

               

              ---

              > // #define BLE_TRACE_DISABLE 1

              70,71c69,70

              < UINT16  ws_upgrade_current_offset;              // Offset in the image to store the data

              < UINT16  ws_upgrade_total_len;                   // Total length expected from the host

              ---

              > UINT32  ws_upgrade_current_offset;              // Offset in the image to store the data

              > UINT32  ws_upgrade_total_len;                   // Total length expected from the host

              76a76

              > int     ws_upgrade_num_unacked_chunks;

              87,93d86

              < // Send a status byte to the host.

              < void ws_upgrade_uart_send_status(int status)

              < {

              <       // ble_trace1("Ack:%d", status);

              <     puart_write(status);

              < }

              <

              185a179,182

              >

              >         // because we can be doing NVRAM read in a tight loop for reasonable time

              >         // make sure that watch dog is ok

              >         wdog_restart();

              274a272

              >             ws_upgrade_num_unacked_chunks   = 0;

              275a274,276

              >             if (len >= 5)

              >                 ws_upgrade_total_len        += ((data[3] << 16) + (data[4] << 24));

              >

              337a339,345

              >     // send Status Continue to enable client send more chunks

              >     if (++ws_upgrade_num_unacked_chunks == WS_UPGRADE_NUM_UNACKED_CHUNKS)

              >     {

              >       ws_upgrade_num_unacked_chunks = 0;

              >       ws_upgrade_send_status(WS_UPGRADE_STATUS_CONTINUE, FALSE);

              >     }

              >

              ----- snip -----

              • 4. Re: OTA support for Android and iOS (April 2016)
                JaeyoungY_71

                Hello Cliff,

                 

                Unfortunately we do not have new apps for Android/iOS for the updated OTA. The OTA should be compatible with the previous versions of the app. Please do let us know if you run into any issues.

                 

                Thanks,

                Jaeyoung

                1 of 1 people found this helpful