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) 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.
1 – Getting X-CTU
X-CTU was developed by Digi and it is only available for Windows, MacOS and Linux.
2 – Installing X-CTU
Once X-CTU has been downloaded, the next step is to install the program. When the program asks for updating from Digi, we must answer ‘yes’ so as to download all the firmware versions for all the XBee modules.
3 – Configuring X-CTU
When X-CTU has been properly installed, the Waspmote Gateway can be connected to the computer. It will be recognized as a ‘USB Serial Port’. We have to know the COM number given to this device in order to specify it in the X-CTU (in our test, COM1 was the value given by Windows, as seen later in Figure 2).
Finally, we launch X-CTU and the program will start. A window like the one below will appear, showing the different functions and the different COM ports detected.
4 – Details for the X-CTU operation:
4.1 – Place the XBee you need to configure in the Gateway. Then connect the Gateway to a USB port in your PC.
4.2 – Run the X-CTU application, press the button “Discover radio modules connected”, select the appropriate communication port and configure it as shown below (if you are not sure, you can select all):
4.3 – The application will start to look for different devices connected and will deliver a message similar to this one:
It is possible that X-CTU asks you to do a reset of the XBee in this step (or in the next steps). To do that, just press the button “RST” in your Gateway for 1 or 2 seconds.
4.4 – Then go to the Configuration Working mode and click to select the device. We must check each parameter first.
4.5 – Check the first parameter, channel (CH):
4.6 – The PAN ID (ID):
4.7 – The destination address (2 parts: DH and DL):
4.8 – The KY parameter (if needed). It must be set as hexadecimal key:
4.9 – The serial interface baud rate:
4.10 – The API options:
(*) [just for ZigBee users] If you set to 1 the JV parameter (in ZigBee End Devices/Routers) and write it, after rebooting the radio module, it will verify the Coordinator (if it has been configured) is on its operating channel when joining or coming up from a power cycle. If a coordinator is not detected, the router will leave its current channel and attempt to join a new PAN. This feature can be useful when several ZigBee End Device or Router have not been configured yet; this way you can get them connected to an existing network in a semi-automatic way. If JV=0, the router will continue operating on its current channel even if a coordinator is not detected.
(**) If you need to change your XBees configuration to the values by default set by Digi (NOT the same values by default that Libelium sets), you can do it in X-CTU. Note it is risky since you could let the XBee without communication. You can just press the button ‘Tools’, then ‘XBee Recovery’, select the product family of your device and after that you will probably have to reset the XBee. You can read again to check the change.
5 – Connecting several devices
Thanks to the new X-CTU version, all devices connected in the same network can be shown and configured.
Steps to follow:
Once you have configured the Gateway and all devices in the same network, switch to Working Network mode.
2 – Press the ‘Scan the radio module network’ button and all connected devices will be shown, in its corresponding topology (P2P, tree or mesh).
Also, you can change the configuration of all devices pressing the ‘Discover radio nodes in the same network’ button.
Range Test Tool
The Range Test tool has been included within the Tools drop-down menu of the main toolbar. This tool allows you to perform a range test between a local radio module and any of the remote modules working in the same network as the local one.
The highlights of the Range Test tool include the following features:
- The tool is able to perform range tests of 802.15.4, ZigBee and DigiMesh protocols regardless of the working mode (AT or API) of the modules.
- Chart control displaying the current and historic link qualities between modules.
- Different controls indicating the number of packets sent, lost, etc.
Steps to follow:
1 – Once your devices have been configured in the same network, you can go to ‘Tools’ → ‘Radio Range Test’
2 – Next, click on the ‘Discover radio nodes in the same network’ button and your connected devices should be shown.
3 – Now, you can add the device and start to perform the range test.
Remote firmware update
The remote firmware update feature has been implemented. Now you are able to update the firmware of a remote radio module the same way you do with a device physically connected to a Gateway. In order to perform a remote firmware update, the local radio module must be configured in API mode (remember that XBees for Gateway or Meshlium are shipped in AT mode and should not be changed).
Remote firmware update functionality is limited to the following radio modules:
- XBee-PRO ZigBee
- XBee-PRO 900HP
- XBee 868LP
6 – If you have networking problems, please check these tips:
6.1 – All XBees are in the same network that the Gateway (or Meshlium). In Waspmote’s API, PAN ID parameter is set with setPAN() function. You can also set this parameter for each XBee plugging it to the Gateway, and then connecting it to a PC: the Digi’s X-CTU application helps to check and set the XBee’s configuration. In this case, you must use the ATID command.
6.2 – All XBees are in the same channel. The CHANNEL parameter is set with setChannel() function. If you want to do it in the X-CTU way, you must use the ATCH command.
6.3 – All Waspmotes are transmitting towards the MAC of the Gateway (or Meshlium).
6.4 – All XBees are configured to 115200 bps (in Waspmote). In X-CTU, you can control data baud rates executing the ATBD command.
6.5 – All XBees have the same encryption options. The ENCRYPTION MODE parameter is set with setEncryptionMode() function. In X-CTU, the related command is ATEE. And the ENCRYPTION KEY parameter is set with setLinkKey() function. In this case, the X-CTU command is ATKY.
6.6 – All Waspmotes’ XBees are set in mode AP = 2 (API mode).