Use a host processor to update the device firmware for XBee 3 devices over UART after *10

This process explains how to update the device firmware for XBee 3 Cellular devices over UART with a firmware version after *10.

Update the modem firmware

  1. Make sure you have the correct version of the device firmware for your XBee device.

  2. Enter programming (bootloader) mode.

    1. Send the %P command. The %P command must be sent an argument derived from the SL parameter of the device being updated. The argument is the value of SL added to the value 0xDB8A and then masked by performing a bitwise-AND with 0x3FFF. For example:
      1. Run ATSL to get the address value, which is in hex.
        ATSL
        123456
      2. Add bitwise-AND with 0x3FFF.
        (0xDB8A + 0x123456) & 0x3FFF= 0x0FE0
      3. Send the command AT%PFE0.
        AT%PFE0
    2. You will receive a response.
      • If successful, OK is returned.
      • If an error occurs, ERROR is returned.
    3. After the command is sent, the radio module resets and automatically enters programming mode.
  3. Once the device is in programming (bootloader) mode, configure the local serial port to 115200/8/N/1.

Send a firmware image

After invoking the bootloader, a menu is sent out the UART at 115200 baud.

Note If no menu is received after the switch to 115200, send the CR (Carriage Return) command to attempt to receive the prompt again.

To upload a firmware image through the UART interface:

  1. Look for the bootloader prompt BL > to ensure the bootloader is active.
  2. Send an ASCII 1 character to initiate a firmware update.
  3. After sending a 1, the device waits for an XModem CRC upload of a .gbl image over the serial line at 115200 baud. Send the .gbl file to the device using standard XMODEM-CRC.
  4. If the firmware image is successfully loaded, the bootloader outputs a “complete” string. Invoke the newly loaded firmware by sending a 2 to the device.

    If the firmware image is not successfully loaded, the bootloader outputs an "aborted string". Note that the previous firmware is maintained, making this error recoverable. It returns to the main bootloader menu. Some causes for failure are:

    • Over 1 minute passes after the command to send the firmware image and the first block of the image has not yet been sent.
    • A power cycle or reset event occurs during the firmware load.
    • A file error or a flash error occurs during the firmware load.