Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Over-the-air (OTA) Upgrades provide the ability for a device to download new firmware over the network and upgrade itself. RapidConnect Desktop allows the coordinator of a network to store a firmware file and then send it wirelessly to an end device on its network. The direction of the OTA firmware upgrade always goes from server to client, more specifically, from coordinator to end device.

There are two aspects to OTA upgrades:

  1. Storing the Firmware file on the server-side cluster.
  2. Managing end device behaviour and client-side cluster.

Prerequisites

  1. Configure device as a Coordinator and form a network.
  2. Join the "target device" to that network
  3. Obtain OTA firmware file


Panel
borderStylesolid
titleIn This Space

Page Tree
rootFeature Guide
spacesRD


Server-Side

Go to the 'Remote Devices' window.


Select the coordinator or 'Local Device' from the Node list and expand the 'OTA Upgrade : Server (0x0019)' cluster.

Figure 1: OTA Upgrade Server Side Cluster

To store the firmware file on the coordinator, click the button labeled “Upload” (shown in Figure 1).

This action brings up a file explorer window that allows you to browse for and open the appropriate file. A firmware file for OTA transfer will be named “RapidHA-1.7.9-prod.ota” or something similar.

After the .ota file is opened, it will be identified by name in the 'OTA Files' area, along with other file information like its size and version number (shown in Figure 2). The rest of the upgrade process happens automatically, depending on the selections made in the OTA Policy section.

Figure 2: Firmware file attached

Policy

There are two options for managing the automatic upgrade Policy:

    • Allow Upgrade – when this option is checked, all end devices on the network will have their firmware upgraded if the version number of the .ota file is higher than the version number of the firmware already on the device.
    • Allow Downgrade – when this option is checked, all end devices on the network will have their firmware downgraded if the version of the .ota file is lower than the version number of the firmware already on the device.



Client-Side

The server (coordinator) hosts the file and the client (one of the various end devices) will query the server one minute after joining the network and once every five minutes thereafter. The firmware file is detected automatically and the upgrade will proceed based on the options checked in the OTA Upgrade Policy. The upgrade progress is shown in realtime, as shown in Figure 3. The device is identified by its EUI64 and Node ID.

Figure 3: Downloads in progress tab


When a firmware upgrade has completed, the status field will hold one of the values shown in Table 1 below:

Table 1: Status of OTA Upgrade

StatusEnumerationNotes
Success0x00The firmware file was successfully transferred to the end device.
Abort0x95Server or client decided to abort the upgrade process.
Invalid Image0x96Firmware image rejected, e.g., bad CRC.
Require More Image0x99Client requires more firmware image files to complete the upgrade successfully.


Attributes

The client-side of the OTA Upgrade cluster allows read/write access to file information about both the current firmware image running on the end device and the upgrade image. This information includes stack and file version numbers, as well as status and progress indicators regarding the over the air transfer of the upgrade image. The status attribute (0x0006) has a non-zero value when the firmware upgrade is in progress.

See Figure 4 for an example of how to reading the IEEE address of the OTA upgrade server. Click on any attribute to read and display its value. 

Warning

Note: Do not write to client-side attributes while a firmware upgrade is in progress. 


Figure 4: OTA Client Attributes





Style
{style}
  .wiki-content h1 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 30px; font-weight: bold; color: #7ab800#20b6e1; letter-spacing: 1px; line-height: 1; text-align: left;

   #border-bottom: 1px solid #98bddd !important; 
 
}
.wiki-content h2 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 20px; font-weight: normal; color: #a1cd4c#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
 
}
.wiki-content h3 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 15px; font-weight: bold; color: #a7a9ac#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
 
}
.wiki-content h4 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 15px; font-weight: normal; font-style:italic; color:#a7a9ac#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
 
}
#title-text{
 font-family: 'Helvetica Neue', sans-serif; font-size: 40px; font-weight: 500; letter-spacing: 1px; line-height: 1; text-align: left;
}

.panel, #content .panel {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}

.panel .panelHeader {
text-align: left;
color: #FFFFFF;
line-height: 1em;
padding: 10px 10px 5px;
margin-bottom: 0;
background-color: #7AB800#00517f;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
-webkit-border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
border-top-right-radius: 5px;
border-top-left-radius: 5px;
color:#FFFFFF
}

{style}