Main Site Documentation

Domino + reading xbee RSSI (Remote Signal Strength Indicator)


Hello all,

Just a quick idea here. Would it be possible to read the signal strength of a xbee module with fez?

As far as I could see, the RSSI pin outputs a pwm signal. Would it be possible (and how?) to read this signal?

Thank you ;D


Use PinCapture. We are adding a tutorial for it if you like to help


I would love to help, however I do not know what to do?
It would be great if I would get this to work. It’s one of the thing I really want to build 8)


I mean after you use it then you know how it works. Either way, I will be optimizing what you put there or doing the page myself.


Robert, there’s a lot of info about xbee here:



Sure you can read the RSSI. Do you use AT commands or API to communicate with your xbee ?


I have written about those AT and API commands, however I do not use them yet.
No reason to use them without knowing how to read the RSSI :stuck_out_tongue:

Can you help me with that, Gralin?

Thanks for the link Eric, heading there right away!


But you can use those commands to read the RSSI. Xbee stores the value for the last recevied packet and you are able to obtaine it using AT or API. this is exactly the same value that is send to pwm output of the module.

Sure i can help you with that. You just need to decide if you are going to use API or AT. I suggest you set up your xbee with API mode and then use net mf toolkit from codeplex.The API is quite simple so you can code your own driver as well.


If the API is simple, I would say we go with that. :stuck_out_tongue:
I have to dig into API a little then. First I would need to set them. Time to read the manual/google :smiley:

It would be great to build a own driver.
Let me know if you have some tips about / how to set API.


sure thing. I’ll write you about setting up API when i get back home.


Ok so first thing you need to do is connect your xbee to a PC so that you can open a SerialPort and talk to it. E.g. you can power the Xbee from FEZ and connect xbee RX, TX to a MAX232 connected to PC. It’s up to you which way suites you the most.

Then you need to download a program called X-CTU from Digi

This application will let you connect to your xbee and configure it. Remember that before connecting you need to point the right serial port and check if you are connecting using API mode or not. All xbee have different firmware versions depending on which mode you want to use (API or AT). Modules are shipped with AT firmware. If you send ‘++’ to it then you can use AT commands, otherwise it will broadcast everything it receives (this way you can send data from one xbee to another without doing anything).

Tell me which modules are you using?


I am using the Xbee pro 60mw wire antenna modules.

X-ctu is already installed on my laptop :slight_smile:

Let me know how to proceed. 8)


PRO only indicates that you have the more-power version of Xbee. You need to specify if your module is:

  • point-to-multipoint (802.15.4 or 868 MHz or 900 MHz)
  • zigbee
  • digi mesh (2.4 GHz or 900 MHz)

If you have X-CTU than just run it and try to open connection with your xbee. Then hit Test. If you get OK than you are half way :wink: After that go to the modem configuration tab and hit Download new versions. This will take a while but you will end up with the newest firmwares. Then you can read your xbee firmware and update it with the newest version (the combo on the right) or chose the mode API/AT (middle combo).


Ok i didn’t see the link in your post. So you have a point-to-multipoint module. Remember that this is not Zigbee, but rather a pure 802.15.4 module (if someone asks you).


I have enabled the API in the settings. (see attachment)

I did not manage to update the firmware. It sais my computer’s baud rate is different then the xbee baud rate. But they are both set to 115200… ???

Is the setting correct?


Well you need to know that x-ctu is not very user friendly so you will encounter many problems when using it. One most common issue is that when your module has a sleep mode it will not responde to x-ctu. Therefor you are only guaranteed to communicate with it when you reset it before trying to read/write to it.

If you don’t remember the right serial port settings or mode that your module is in there is a workaround. You need to check the ‘Always update firmware’ box and hit ‘Write’ while holding reset on your module. After a few seconds a pop up will occur saying that x-ctu was unable to communicate. After that release the reset and click ok. This way x-ctu communicated with the module on bootloader level and writes the configuration as you see on the screen. After that you are sure about the settings.

Maybe using AT commands is a better start after all… If you still have the module in AT mode, connect to it and click on Terminal tab in x-ctu. Send a ‘+++’ sequence to enable AT command mode. The module should responde with ‘OK’. Then send a command ‘ATDB’. The result should be the content of RSSI register. If you type ‘ATCN’ you will get back to transparent mode. You can try sending some data to the module and check if the RSSI register value changes.


Those AT commands don’t seem to work.
Probably because API is enabled now.

What I am wondering about: how would we send those commands via fez?

Anyway. Please help me proceed.


You will communicate with the module the exact same way you are communicating to it now -> via serial port (UART on FEZ). If you set up the module with AT mode than at the beginning you will have to send three bytes (’+++’) from FEZ.

I suggest you do what i described earlier. Run x-ctu, chose the right serial port from the list, in the last tab chose your modem type (XBP24), chose the first function set, chose the latest version, check ‘always update firmware’. Next you need to click ‘Write’ but xbee should be either powered down or in reset. After x-ctu failes to communicate with xbee a popup will occur. Power up your xbee and the popup should disapear. Right now you will have the default settings on your xbee. After that do the AT command test described earlier.

What are you using to communicate with your xbee ? You can you almost enything from home made converter to a Digi official sdk board.


Have to do that later on then ;D

Somehow the firmware update worked. However it still sais version 10e6 instead of 10e8.

I am using a parallax xbee explorer usb (if I remember right about the name).

Thank you


Do you have two of those xbee explorer usb ? If so then you should be able to connect both to a pc, open two terminals for each xbee and send text from one terminal to another. Can you do that ? (this is the tranparent mode that is active when no API is enabled).