» ZigBee node type change tutorial (v12)

Important: Changing or upgrading the XBee firmware is a delicate process that may harm permanently the XBee module. Only advanced users should use this application. Libelium supplies the XBee transceivers with the desired firmware version (802.15.4, ZigBee, 868, 900, Digimesh 2.4GHz, Digimesh 900MHz) and is not responsible for the XBee modules damage when changing or upgrading firmware. For more information read the “General Conditions of Sale and Use of Libelium” document in technical service section.

XBee ZigBee modules support three types of nodes according to the firmware version: Coordinator, Router or End Device.

This guide will show the main steps to change an XBee ZigBee OEM module from Coordinator to Router, both using API. Changing from one type to another is the same process, but selecting the corresponding firmware version.

To upgrade XBee firmwares, the X-CTU application needs to be used. This software allows the user to change the firmware version and some other features. It only runs on Windows and it has been developed by Digi. Please, check the X-CTU introduction tutorial in order to learn how to use it.

1 – Communicating with the module

1.1 – Once we have checked the communication with the module, we can read the module and upgrade its firmware.

Figure 1

1.2 – We have to change from the ‘PC Settings’ tab to ‘Modem configuration’ tab. This general tab has a button ‘Read’ that will have to be pressed to get the parameters from XBee module. The results after pressing this button are shown in the figure below:

Figure 2

2 – Changing the firmware

2.1 – Once we have been able to read the parameters from the XBee module, we can upgrade its firmware. First we have to select the desired firmware version to upgrade to. In the following we can see the different firmware versions we can choose, selecting ‘Router API’.

Figure 3

2.2 – After this, we have to press the button ‘Write’ and the upgrading will start. X-CTU window before starting upgrading is shown in the following figure:

Figure 4

2.3 – After pressing the ‘Write’ button, the upgrading will start showing its state in X-CTU window. We can see the X-CTU window while upgrading.

Figure 5

2.4 – When the upgrading has finished, a successful message is shown, as we can see below:

Figure 6

2.5 – Once the upgrading has been completed successfully, we can press the ‘Read’ button again and the parameters will be read. In the following figure we can see the parameters read from XBee module with the new firmware version.

Figure 7

2.6 – As we can see, if we press the ‘Test/Query’ button in the ‘PC Settings’ general tab, the XBee module appears with the new firmware version.

Figure 8

2.7 – After this process, your XBee module will be upgraded.

3 – Reset required

3.1 – Sometimes while upgrading or changing the firmware version, a reset is needed to complete the process. We can see the message that will appear when this reset is required.

Figure 9

3.2 – To reset the XBee module, the Waspmote Gateway provides a button to reset XBees. This button has to be pressed for 2-3 seconds and then released. After doing that, this window should disappear and the process should go on.

4 – Problems while changing firmware

During some upgradings the XBee modules get into a state that they look like if they were damaged. However, there is a recovery process from this state.

If there is no way of communicating with an XBee module after having tested all speeds and configuration options, the process to follow is explained next.

4.1 – Connect Waspmote Gateway to the computer without the XBee module.

4.2 – Select the correct speed and configuration options (COM port, using API or not, etc).

4.3 – Press the desired action in X-CTU.

4.4 – After some seconds, a message like the following will appear.

Figure 10

4.5 – Press the reset button in Waspmote Gateway.

4.6 – Without releasing the reset button, connect the XBee module in Waspmote Gateway.

4.7 – After 2-3 seconds, release the reset button.

4.8 – The window should disappear and we will be able to communicate with the XBee module.