If you are familiar with XBee, you might have experience of the module does not response to your X-CTU or Terminal program or microcontroller. Yup, for unknown reason, XBee module might be DEAD 🙂 But you can revive it by doing recovery.
We have been successfully in saving:
But don’t get me wrong, not all dead XBee can be saved, if you supply wrong polarity of power or higher voltage to it, it’s gone permanently. Never forget that XBee is 3.3V operate module, supplying 5V will surely kill it and this is beyond repair nor warranty. Same goes to wrong polarity of power.
Why your XBee does not response to X-CTU or your controller? Why it does not response to your “+++”? Most likely it is due to firmware corrupted. Why does the firmware corrupted? Frankly, I do not have answer to that. My guess, communication fails during the reading or writing of parameters. Though we seldom have this condition, I am familiar with the process because we have several warranty cases which are firmware corrupted and being send back to us. Well, let’s me share the procedure with you.
You will need some tools. Please download and install the latest X-CTU from here, using older X-CTU might work, but latest will be much better, easier and reliable.
You will also need SKXBee, we have never use Arduino XBee Shield to load firmware as the shield does not provide additional connection that needed for serial firmware upload, which is the RTS and DTR, according to the datasheet of XBee Series 1, Series 2 and WiFi. Search for “DTR” in the datasheet and you should be able to get what I mean. SKXBee will provide simple, ready and reliable connection from XBee module to computer where X-CTU will be running. Don’t forget to get a USB mini B cable for the USB connection.
Not to forget your dead XBee module, I will be using XBee-WiFi S6B for demo purpose, yet I will try to add in the setting you should choose for XBee Series 1, Series 1 Pro and Series 2 too. By the end of this tutorial, hopefully you can revive all your XBee module. BTW, this tutorial and X-CTU is not able to save BlueBee and WiFly module, they are different manufacturer.
Make sure orientation of XBee module is correct and all pins are fully insert onto SKXBee. Connect the USB Mini B to SKXBee and the other end to your computer with X-CTU installed and running.
If this is your 1st time using SKXBee, you might need to install the USB driver for on board USB to UART chip, FT232. Please get the latest driver according to your operating system (Windows, Linux or Mac OS) from this page, and follow the installation guide.
Firing up your X-CTU
Yup, X-CTU is free software from Digi International, the company that design and manufacture XBee modules. There are two version of X-CTU generally, of course the latest version is more user friendly and reliable 🙂 You should try it. We will be using this software to configure and also manage the parameters on XBee modules, not to forget we are going to recover XBee too in this tutorial.
After X-CTU is running, you will see the initial outlook:
To add the XBee module that you connect to SKXBee, click “Add Device“ icon on the right top corner of X-CTU window, the “Add radio device” window will appear for you to choose the correct COM port and COM properties settings. When you install the USB driver for SKXBee and connect to computer USB port, it will be assigned with a COM number. We need to choose correct COM number for X-CTU to communicate with. If you see several COM ports and you do not know the correct COM number, do not freak out, simply disconnect SKXBee from USB cable. Click “Refresh ports” and the COM number for SKXBee disappear in the list as it is disconnected. Connect the SKXBee to USB again and click “Refresh ports”, you should see the new COM port appears, that is the COM port for SKXBee, select it. For my case, only one COM port in the list, so that is the COM of my SKXBee.
Under the Serial/USB port list, you can change the parameters of COM port such as Baud Rate, Data Bits, Parity, etc. Leave these parameters as it is, and click “Finish”. You will further be presented with “Discovering radio modules…”. The X-CTU is communicating with XBee module on SKXBee. You will also notice “X_RX” which is XBee’s Receive pin and “X_TX” which is XBee’s Transmit pin, LEDs on SKXBee will blink for a while during the process of discovering radio. Depending on the condition of the XBee module, it may take 3 seconds to 30 seconds to complete the discovery.
If your XBee module is not dead, and X-CTU is manage to communicate with it, you will further be presented with initial X-CTU window, and new radio appears on the left section of window. It will display basic parameters of the XBee module such as Name, Function and Port. You can further click it and X-CTU will automatically read necessary configurations from the XBee module and display the configurations on the right section of window.
For my case, you will see that product family is XB2B-WF with 2004 of firmware version. You might want to remember this as it is useful if you want to revive your XBee-WiFi module :). You can further change the parameters/configurations under this section to your desire settings.
OK! It seem I have a healthy XBee-WiFi module, is not dead, I cannot show you how to recover it. Let me find a dead XBee module…… OK! Found a dead XBee-WiFi, should I be happy ??
Firmware Corrupted XBee
Again, I want to stress, a dead XBee module might be beyond this tutorial to save it. For cases such as wrong power, it is gone forever and you should really buy another one. So always check the orientation, polarity and voltage before powering up XBee. This tutorial can only help to recover those XBees that firmware is corrupted.
Let’s say your XBee’s firmware is corrupted with whatever reason, you plug the module onto SKXBee, connect the USB, fire up X-CTU and you click “Add Device” and choose COM number under “Add radio device” window and “Discovering radio module…” appears and the “Action required” pop up! Yes, this mean the X-CTU cannot communicate with your XBee module.
By now, SKXBee should be showing “X_RX” LED is active/ON or blinking. This indicates X-CTU keep sending data to XBee module but the XBee does not response.
Now, press and release the reset button on SKXBee. If the “Action required” window disappears, is good news :). X-CTU should be able to communicate with XBee module and everything goes back to normal. Try a few times if it cannot communicate where the “Action required” window stays.
It would not be dead if it is that easy 🙂 Let’s say you have try numerous time of resetting SKXBee with no luck. Yup, the XBee module seem to be dead, click “Cancel“. “Device not found” window will appear showing X-CTU cannot find any XBee module connected to the COM port which is the SKXBee.
Click the “Recovery” icon . Or you can click “Cancel” and return to initial window. Under Tools -> XBee recovery, click it.
The “Recover an radio module” window will appear. This window will appears either you click “Recovery” from “Device not found” window, or from the initial window (through Tool -> XBee recovery).
In this window, you will need to choose the correct COM port that XBee module is connected too. You should be able get the correct COM number from the early procedures of this tutorial. Product family and function set will depend on which XBee module you use, I will list those related module. Select the latest firmware version for all type of module.
Product family & Function set
If you are using XBee-WiFi, there are two product families as far as Cytron carries.
XBee-WiFi S6 which is earlier version of XBee WiFi module. We do not carry this module anymore. Anyway, if you have this module, here are the settings you should select.
Product family = XB24-WF
Function set = XBEE WI-FI
If you have the latest version of XBee WiFi which should be the S6B, here are the settings.
Product family = XB2B-WF
Function set = XBEE WI-FI
OK, you are not using WiFi module but uses popular XBee series 1 or series 2, do not worry. Here is the setting.
For those that use XBee Series 1 or XBee 802.15.4, standard version, NOT PRO.
Product family = XB24
Function set = XBEE 802.15.4
For those that use XBee Series 1 (802.15.4) PRO version, here are the settings.
Product family = XBP24
Function set = XBEE 802.15.4
If you are using XBee Series 2, or a.k.a XBee ZigBee:
Product family = XB24-ZB
Function set = ZigBee Coordinator AT (Default)
OK, done the selection of parameters, click “Recover” at bottom right of the window. X-CTU will start communicates with XBee module base on your selection and reload the firmware to the XBee. You might again get the message of “Action require” window, just reset the SKXBee and try again if fail. If the X-CTU able to initiate the XBee module, you should see the progress bar of “Recovering radio module” window:
Click “Show details” reveals more info on the process, but this is optional.
Now, leave the XBee module on SKXBee to X-CTU and pray it can recover the XBee module. While the recovering is in progress, the “X-RX” and “X_TX” LED will blink continuously; this indicates the XBee module is communicating with X-CTU. However, you will notice the “X_RX” LED is more active compare to “X_TX” LED because XBee module receives more data than sending data to X-CTU. If everything is smooth, you should be see the message of “Firmware updated successfully“, you have saved your XBee module, saved money to buy another XBee module, saved the trouble to contact our support team for warranty, saved the work to send it back to us for warranty and also help us to save the time to warranty for you 🙂 Many wins !!
Now, go back to the X-CTU and click “Add device” icon again and repeat the steps to add radio into X-CTU. If you fail again, check UART settings such as COM number, baud rate, etc. And if you still fail after checking all these settings, try another SKXBee if you have, or XBee module. Last step, please discuss in our technical forum, maybe other forumer have better solution, and we welcome feedback.