Firmware update of XBee RF module (Based on EM357) using linux

I found documentation describing upgrading firmware on a windows machine using the program that communicates through serial connection. However in the field our devices run linux. What are the steps to upgrade it from linux? Would we be able to send firmware over a certain protocol i.e xmodem or ymodem or are there additional steps involved? If so, what are they?

This is directly from page 39 of the manual.

Wired Updates
A user can update their application using the bootloader in a wired configuration with the following
steps:
a. Plug XBee programmable module into a suitable serial port on a PC.
b. Open a hyperterminal (or similar dumb terminal
application) session with 115200 baud, no par-
ity, and 8 data bits
with one stop bit.
c. Hit Enter to display the bootloader menu.
d. Hit the “F” key to initia
te a wired firmware update.
e. A series of “C” charac
ters Will be displayed within the hyperterminal window. At this point,
select the "transfer->send file
" menu item. Select the desire
d flat binary output file.
f. Select “Xmodem” as the protocol.
g. Click “Send” on the "Send File
" dialog. The file will
be downloaded to the XBee Programmable
module. Upon a successful update, the bootloader
will jump to the newly loaded application.

Also from page 161

Invoke XBee Bootloader
See the “XBee Bootloader” section above for steps to invoke the bootloader using RS-232 signals. The
bootloader may also be invoked by issuing a command via
XCTU. Then the application makes an explicit call to
the bootloader, which does not return.
If there is no valid application,
the bootloader will always run.
Send Firmware Image
After invoking the bootloader, the Ember bootloader will
send the bootloader menu
characters out the serial
port, which may be the UART at 115200 bps or the SPI, wh
ere the attached SPI master provides the clock rate.
The application should do the foll
owing to upload a firmware image.

  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 EM357 wait
    s for an XModem CRC upload of an .e
    bl image over the serial line at
    115200 bps. The .ebl file must be sent to the EM357 in order.
    If the firmware image is su
    ccessfully loaded, the bootloader will output a “complete” string. Then the newly
    loaded firmware can be invoked by sending a ‘2’ to the module.
    If the firmware image is not successfully loaded, the boot
    loader will output an “aborted” string. Then it will
    return to the main b
    ootloader menu. Some causes for failure are:
    • Over 1 minute passes after the command to send th
    e firmware image and the fi
    rst block of the image has
    not yet been sent
    • A power cycle or reset event o
    ccurs during the firmware load
    • A file error or a flash error
    occurs during the firmware load

The xbee-comm tool might be what you’re looking for: It implements triggering the bootloader and uploading a firmware file for Series 2 hardware, which I think is the one you refer to.

Alternatively, you can run the XCTU or XCTU-NG programs under wine. See this blog post for the steps needed to get the serial connection working:http://www.downtowndougbrown.com/2013/03/getting-x-ctu-in-wine-to-detect-your-serial-ports/ (his post is about getting the legacy version to autodetect serial ports, but I’ve just tested this and it works with the next generation version too).