Can't Upgrade XBee Firmware


I have two XBees that are working great (attached to XBee Shield), but I'm not able to upgrade the firmware (current firmware is 1083). I followed instructions here but I get the following error:

Getting modem type....OK Programming modem...Lost communication with modem Write Parameters...Failed

The software is able to read/restore settings but not upgrade. I'm wondering if this has anything to do with the USB to TTL FTDI conversion. The tutorial uses RS232. I tried upgrading to different versions but I always get the same error.

I've just bought two XBEE shields. Why are you upgrading the firmware - what new functionality will you receive?

Here's the firmware release history

I was looking for the automatic retries feature but in general I want to upgrade since apparently they've fixed a lot of bugs.


Did you ever figure out the problem with upgrading the firmware? I have exactly the same error message. I am using an XBee shield on an Arduino board. The shield is set to USB and the Arduino chip has been removed as per various websites.

If you solved the problem I would love to know how you did it?


You may have to use steps: one to write the firmware and then another to write the parameters. After the firmware is written, try unchecking "always update firmware" and just do a write of the parameters. You may also have to change the checkboxes on the main (leftmost) tab - depending on which kind of firmware you've uploaded (e.g. API mode or not).

I'm having the same problems. Because of this it seems I also cannot set any of the XBee IO pins, as the device is in the wrong setting or something like that (very confusing all).

I'll try to connect the D8 pin to GND (pin 9 with series 1 -, as suggested here:

[edit]Edit: (by the way: The series 2 module had no problems updating firmware with the same Arduino-XBee board.)[/edit] [edit]Edit2: Seems I have toasted my xbee module. Not a good idea it seems.[/edit] [edit]Edit3: Untoasted and succesfully installed updated firmware doing the above [u]AND connecting pins 1 & 16[/u] plus this trick to reset the XBees, by Tobrew at the Sparkfun forum:

This worked for me when the reset trick refused to.

It is possible when using the USB board. You just have to go about it in a different manner. 1. Take the module out of the interface board. 2. Connect the interface board to the computer. 3. Open X-CTU 4. Go to "Modem Configuration" 5. Put a check in the "Always update firmware" box 6. Select proper modem from drop down menu, 7. Select proper function set and firmware version from drop down menus. 8. Click on the "Write" button. After a few seconds of trying to read the modem, you will get an Info box that says Action Needed. At this point, CAREFULLY insert the module into the interface board. 9. You may get the info box again a short while after, just use the reset button on the interface board.

This should get you back up and running.

It can take a couple of tries but it worked for me.


In reply to my case support request at Digi they pointed out the above sequence is in fact the official way to restore a firmware update gone wrong.

Check their video on it:

Thnx eelke..My zigbees r up and running again.. :)

So... I got used to the nrf2401 modules for my wireless project, but a friend has been recommending XBee for a while. To get started, I bought from Sparkfun two of the 2mW 2.5 modules (part# XB24-BWIT-004) and two of the Sparkfun designed Arduino XBee Shield since my plan is to get two autonomous robots to communicate.

I googled around for some info and tutorials on getting them up and running, but so far no luck. First I just tried to run some sample code to see if they work out of box but got absolutely nothing. Then I tried sending some commands over the serial port to get to command mode, and still nothing. Then I tried to follow the tutorial on the link below, downloading and installing X-CTU, removing the atmega ic from the Arduino as oriented somewhere else, putting the shield switch on the UART position and tried the test/query as well as to get the firmware info with X-CTU. It always fails. I tried all baudrate options, with API enabled, etc, and nothing ever happens. It's like the modules aren' t there. The DIO5 led is on all the time, as the power led. I soldered a wire to the reset pad and used it to reset the XBee module during an attempt to read, and DOUT led turns on and DIO5 off when I touch ground with it, but nothing else.

I considered updating the firmware, but from what I read around, if I can' t query the current version I won't be able to do anything else anyway, and I'd need the XBee Explorer anyway (out of stock), because it needs the RTS, unavailable on the Arduino. From the tutorial, seems like the ftdi breakout board works, but I only have the basic anyway, which doesn' t have a pin for RTS either.

Obviously, I already checked all soldering on both shields, and the Arduino boards are working. I tried with 4 different boards, the result is always the same.

Any ideas on how to get this working?

Plugging the XBee into the shield, and the shield into an un-chipped Arduino should be sufficient to allow X-CTU to at least query the configuration of the XBee.

With no devices plugged in, the PC settings tab should show some COM ports. Maybe none.

When you plug the Arduino/XBee shield/XBee device in, and restart X-CTU, a COM port should be added to the list.

Is that happening?


THANKS for posting that firmware reset procedure. I had mucked one up, and almost thought it was bricked. This brought it back to working, updated status.


I think this is a good thread for me to register my question. I have 2 XBee shields and am trying to use XCTU to set them up. I am using an unchipped Arduino board and have the jumper on for RESET to ground.

I have had marginal success with one module, intended to be an END device, except when I check Always Update Firmware, the Write process ALMOST finishes except I get "Write Parameters Failed" and "Detected Baud Rate Difference".

When I attempt to do the same thing for the other module, I can't even get the Test to work (apparently, no communication is present.

Due to the many hints and success/failures I read, I'm wondering if there is anything I'm missing. Does anyone know of a tutorial for XBee version 2 Shields that is up-to-date?