Introduction: Configuring Xbees

About: I am the Technical Support Manager for Sparkfun Electronics. If you have needed some help with your widget at Sparkfun, you have likely talked to me at one point or the other. I'm a tinkerer by nature. For as …

Xbees are possibly the coolest little wireless units since bluetooth. These things work right out of the box, talking to one another with ease. If you haven't worked with Xbees yet, it's ok, I will be discussing them in a later instructable. For now this is meant for people that have worked with the Xbee at least a little bit. Changing settings in your Xbee is vital when working in certain environments, and with specific projects. In this Instructable we will be discussing Changing the baud rate. This is important if certain components of your project require a different baud rate than 9600. We will also go over changing channels so that you can make a completely separate communication channel.

Step 1: Welcome to XCTU

To get started we need to download a program directly from Digi, the manufacture of Xbee modules. The program is called XCTU, and can be downloaded here.

XCTU Download Site

Once you have downloaded, and installed XCTU open it up, and plug in your Xbee explorer.

For this Instructable I will be working with the up coming Sparkfun release, the Xbee dongle.

Step 2: Working With XCTU

Now that we have XCTU installed, and ready to go, let's take a moment to look around.

The main window has a row of tabs across the top. The main tabs that we want to focus on for this instructable will be PC settings, and modem configuration. Since we will discuss those in more detail later, let's take a moment to look at the other two.

Range test, and Terminal.

Range Test is a built in test to check your xbees communication range. This is useful to check range in different locations, and situations. A range will vary based on the materials that it has to transmit through. 1 mile of clear, direct line of site range will not be 1 mile of range through walls, and buildings.

The Terminal is another option for serial communication. A nice way to double check all of your serial communication within XCTU.

To be honest, I never use these tabs. If I need a terminal, I prefer HyperTerminal, a built in terminal included with all Windows Xp computers. It's under your start menu/all programs/accessories/communication/hyper terminal.

Range test seems useful, however, I have yet to use it.

Step 3: PC Settings

PC settings can be your life line. If something has gone wrong and you fear that your xbee is fried, PC settings is the place to test the true fate of your failing xbee. Also make sure you read the last step that details attempting to fix a bricked xbee.

This is also a great place to check your baud settings. If you have changed your settings, and are not sure which xbee has which setting, you can test this here.

To begin, let's just talk about a brand new Xbee. More than likely your Xbee still has the factory settings if your reading this. So you should be set to a 9600 baud. No flow control. Data bits 8. No parity. With 1 stop bit.  If you look at the right side of the XCTU window, you should see this as your standard settings. Click the Test/Query button. If your test pops up a window that says some information about your Xbee, your set. If not, somethings wrong.

If you popped up with an error, in the PC settings, double check your old settings. If that doesn't work, double check your new settings. You may also try the directions to unbrick an xbee later in the instructable. If this still doesn't come up with anything, remember exactly what you did, and contact Digi tech support. They should be able to help you out.

Step 4: Time for Some Modem Configuration

Let's start with a moment of caution. While this won't likely cause issue with your Xbee, sometimes things go wrong. If your computer doesn't complete the process and messes up during a modem configuration update, it can completely lock up your xbee. This is a rare issue, but can happen. So be careful. Close all unneeded programs. When changing settings, just focus on that. Don't mess with other stuff. It will help you to avoid mistakes, and errors.

Once you have the proper settings in PC settings, you can click over to the Modem Configuration. You will see a few different boxes of buttons. But for now lets focus on Modem Parameters, and Firmware.

To start, click Read. This should change the blank box to a list of options.

Now it's time to decide what we want to change. A common adjustment needs to be the baud rate. Say you want to use a Wii mote like I used with my Sumo Bot "Scrapper", you will need to make your baud rate faster. The wii mote works at a baud rate of 19200. So we will need to get the Xbee communicating at 19200.

If we scroll down the list of settings, we should find a Serial communication setting option. Digi has done a great job to make this simple. Click on the 9600 pull down. Pick your baud, and your set. If that is all you want to change, click the Write button that is next to the Read button we pushed earlier. 

Once it writes the changes, you can go back to the PC settings tab, and Test/Query your xbee with the changes in settings. If you get the successful information pop up, your all set!

What if you what to change your channel? Why would you want to change the channel? In the case of the Robo Workshop held at SparkFun , we needed to run more than a half dozen robots all with xbees, in the same room. This is a prime example of when you should change your channel. Not to mention that sometimes a stray xbee command could send a battle bot wild. The Robo workshop brought out a competitor from Kansas that had similar command for his weapon, as I had for my Sumobot. It could have made for an interesting issue.

To change the channel, take a look down the same list that the baud was in. Find the (FILL IN THE BLANK). Click on the ID, and type in your channel of choice. Make sure to set all of your xbees to the same channel.

Once you have made your adjustments, simply click the Write button, next to the read button. It should take a moment, but if everything goes well, it should say,

Getting modem type .... OK
Modem's firmware not updated
Setting AT parameters .. OK
Write  parameters.... Complete.

This pretty much covers the basics to changing the important settings on your xbee. It really is that simple.

Step 5: Un Bricking a Frozen Xbee.

Alright, so the sort of disclaimer on this whole Instructable is that you may freeze up you Xbee during the update process when changing settings, and modifying the xbee via XCTU. Don't worry, it is rare. But if you happen to run into this dead xbee situation here are the steps to try before ripping some hair out, and declaring your Xbee's time of death. 

These steps we contributed by Cristof. Thanks to him, we have a solid step by step run down on how to attempt a fix.

1. Take the module out of the interface board.
2. Connect the interface board to the computer.
3. Open X-CTU make sure Baud Rate is set to 9600
4. Go to "Modem Configuration"
5. Put a check in the "Always update firmware" box
6. Select proper modem from drop down menu,
7. Select proper function set and firmware version
from drop down menus.
8. Click on the "Write" button. After a few seconds of
trying to read the modem, you will get an Info box
that says Action Needed. At this point, CAREFULLY
insert the module into the interface board.
9. You may get the info box again a short while after,
just use the reset button on the interface board.
Update: Well after letting this instructable soak for a while, some comments brought a missing piece to my attention. If you are working with an Xbee Explorer board that does not have a reset button, you can not complete the process. That won't do, so we have come up with a simple fix for you. Take a wire to jump a connection between RST, and GND. When it comes to the point that you need to reset (Hint this will work any time you need to reset.) just jump the two pins together, and you have reset the device! Good Luck friends.

Update 8/23 Thanks to reader kolment2003 a great recommendation to use a bread board, to switch for the Reset to Ground. This will allow a solid connection, and a reliable reset when you need it. Thanks  kolment2003