General Purpose Flash Memory
Update the firmware over-the-air
XBee Wi-Fi RF Module User Guide
87
Update the firmware over-the-air
This section provides instruction on how to update your firmware using wired updates and over-the-
air updates.
Over-the-air firmware updates
There are two methods of updating the firmware on the device. You can update the firmware locally
with XCTU using the device's serial port interface. You can also update firmware using the device's RF
interface (over-the-air updating.)
The over-the-air firmware update method provided is a robust and versatile technique that you can
tailor to many different networks and applications. OTA updates are reliable and minimize disruption
of normal network operations.
In the following sections, we refer to the node that will be updated as the target node. We refer to the
node providing the update information as the source node. In most applications the source node is
locally attached to a computer running update software.
There are three phases of the over-the-air update process:
1.
Distribute the new application
2.
3.
Distribute the new application
The first phase of performing an over-the-air update on a device is transferring the new firmware file
to the target node. Load the new firmware image in the target node's GPM prior to installation. XBee
Wi-Fi RF Modules use an encrypted binary (.ebin) file for both serial and over-the-air firmware updates.
These firmware files are available on the
and via XCTU.
Send the contents of the .ebin file to the target device using general purpose memory WRITE
commands. Erase the entire GPM prior to beginning an upload of an .ebin file. The contents of the .ebin
file should be stored in order in the appropriate GPM memory blocks. The number of bytes that are
sent in an individual GPM WRITE frame is flexible and can be catered to the user application.
Example
If the size of the .ebin file is 217,088 bytes, then it could be sent to the module in 1024 byte blocks as
follows:
GPM_BLOCK_NUM
GPM_START_INDEX
GPM_NUM_BYTES
.ebin bytes
0
0
1024
0 to 1023
0
1024
1024
1024 to 2047
0
2048
1024
2048 to 3071
0
3072
1024
3071 to 4095
1
0
1024
4096 to 5119
1
1024
1024
5120 to 6143