XBee Series 2.5 Helper Program

This program is provided for free with no warranty expressed or implied. Redistribution without permission is prohibited.

Download - .net 3.5 required

This is a helper program to test radio functions of the XBee series 2.5 radios (documentation) with API firmware from Digi International.

Chapter 6 of the documentation outlines the API operation of these radios. This program's implementation is incomplete and may be extended in the future. If you notice bugs you can post them at the SparkFun forum thread.

X-CTU provides a terminal and packet assembly feature, but the packet feature is very poor.

This program was written to send remote AT commands to use the GPIO and ADC functions of series 2.5 modules. My understanding from the documentation is that this is not possible natively via the AT firmware (though it could be done via loopback, this would curtail features.) It also sends local packets.

The Resolve Node ID button uses the DN (page 72 of doc), to return the 64 bit and 16 bit addresses of the module with the friendly NI string (up to 20 char) entered. The ID is case sensitive. Failure should return 0, or a timeout error in the reply box.

Remote commands require the "Remote?" box to be checked. Otherwise the AT command is local.

If you desire the remote command to change the state of the remote device (byte 16 = 0x02) have the "Apply to Remote?" checked. If you do not have this checked changes will occur on issuing the "AC" command (page 60 of doc).

Address boxes can also be filled in by hand, but hex code must be separated via '-' delimiter. All 3 address boxes must be filled.

The "AT String" box is for the ASCII part of any AT command, such as the "D1" above. While the "AT Number" box is for any set of hex bytes with no spaces. The order in the packet is ASCII as bytes, followed by the hex bytes (IE 0F5D). If the command takes a ASCII parameter it should be appended without space to the AT String (IE NItheNameOfTheNode).

To send data to a remote node, again the address boxes must be filled. Add the data as ASCII (ASCII? checked) or hex without spaces (ASCII? unchecked), and click the send data button. Single cast only supported as of now.

Typical operation is to input a node ID to communicate with. Resolve it. Check the remote and apply boxes, and type AT commands to issue to the remote device. The packet data sent and received appears the corresponding boxes.

At present the program is configured to communicate on a serial port at 9600/8/1 which is the default setting for the radios. I can add boxes to change this if anyone needs it.