[SOLVED]Busted/Incompatible XBEE WIFI and Arduino UNO & Leonardo Wireless Shield

I too had a lot of problems when upgrading the XBee's firmware, but it wasn't the Arduino's fault, it was the X-CTU/XBee configuration what was causing problems.
Right now I don't have my Arduino with, I would try to recall the steps I've followed:

The first thing you need to do is make sure that your XBee and Leonardo both work at 9600 bauds. If you have set the baud rate to other value, probably the upgrading process would fail because when upgrading the firmware, the XBee's settings return to their default values(9600 bauds). In my case, even if I had marked the "No baud change" check-box on the "PC settings" tab.

To be sure it is better to reset the XBee to defaults before attemping to upgrade the firmware

RESTORE TO DEFAULTS (first step)
To reset the module to defaults do the following:

  • Make sure that the X-CTU and the XBee can communicate by clicking on the "Test/Query" button. A dialog should pop-up indicating that the communication is successful, if not check your Arduino and XBee baud rate of configuration settings
  • Open the X-CTU, go to the last tab, named "Modem configuration"
  • Click on "Read" button, this should read your XBee's configuration and show you the actual values. If you succeded jump to the next step, if not MANUALLY select your X-Bee model from the "drop-down" list that is located under the "Modem:" label. My XBee is a XB24-WF. Be aware that you MUST select the correct model of your XBee.
  • Once the correct module is selected Click on the "Restore" button, that should write the default values your XBee. Check that the restoration process has been completed successfully by looking at the message at the botton left corner of the X-CTU Window.
  • Close the X-CTU and disconect your Arduino/XBee from the computer, this step is not required but I advise to do that to make sure the XBee load the default values the next time it powers-up.
  • Don't forget to configure the X-CTU with the default settings in the "PC communication" tab. If you don't know the default look in the modules documentation http://ftp1.digi.com/support/documentation/90002124_B.pdf

Note: There are better posts on how to reset the XBee module to defaults, if you have any problems just google "Reset Xbee to defaults"

UPGRADE FIRMWARE (second step)
Connect your Arduino/XBee to the computer. Make sure that the X-CTU and the XBee can communicate by clicking on the "Test/Query" button. A dialog should pop-up indicating that the communication is successful, if not check your Arduino and XBee configuration settings.
ONLY if they are communicating continue reading

  • Go to the "Modem Configuration" tab and click on the "Download new versions..." button, in the pop-up window click on "Web" and wait. Be patient it may take a while. When the download is complete click on "done".
  • Click on the "read" button, this should automatically identify your module's model.
  • In the drop-down list bellow the "Version" label, select the last firmware available. For the XB24-WF is 102D.
  • Mark the "Allways update firmware" checkbox and click on the "Write" button
  • Check that the firmware update was successful at the botton left corner of th X-CTU window

RESET PIN ON THE XBEE BOARD
There is a pin in the XBee module that reset the module's configuration, the process is a little bit tricky but it is very usefull when you can not recall the XBee's configuration values. To do that just follow the steps on the module's documentation http://ftp1.digi.com/support/documentation/90002124_B.pdf BUT BE VERY CAREFUL WHERE YOU CONNECT THE PIN TO BECAUSE YOU COULD FRY THE MODULE IF YOU CONECT IT TO A VOLTAGE SOURCE HIGHER THAN 3.3v

FORCED FIRMWARE UPGRADE (Use this as the last resource)

Sometimes after an attemp to upgrade the firmware the module will stop responding completely. To solve that you need to force a firmware upgrade. To do that just reset the module using the reset pin on the XBee, then using the default comunication values of the X-CTU just do the following:

  • Go to the "Modem Configuration" tab
  • In the drop-down list bellow the "Version" label, select the last firmware available. For the XB24-WF is 102D.
  • Mark the "Allways update firmware" checkbox.
  • Click on the "Write" button
  • Check that the firmware update was successful at the botton left corner of th X-CTU window.