I have posted a scenario for using XBee Radios in .NET Gadgeteer devices. You can do quite a lot with simple AT command protocol and an instance of Gadgeteer.Interfaces.Serial as in the following snippet.
Have not tried the community driver yet because I wanted to get my head around the basics of XBee configuration. I was starting from zip. One of my cohorts says XBees are noisy. I wanted to keep it simple, using only AT protocol.
It looks as if the driver on Codeplex has the handle on API protocol. I will try it when I need more than one-line communication.
Didn’t realize that the configuration was so complicated. I was thinking about using them in a future project, I’ll keep this bookmarked to help me out then.
You have to set XBee Modem, the Function Set, the PAN ID, the Destination Address High, and the Destination Address Low. It actually isn’t very complicated, but it can take a while to figure out the details and how to use the tool X-CTU.
Yes X-CTU is not very friendly but once you get used to it it’s ok. There are some third party configuration tools but I have tried them but is stick to X-CTU.
I agree with Mike that if all you expect is to have a wireless serial bridge between two devices AT mode is all you have to use. However this is a great overkill to use XBee for that purpous (especially series 2). I know that after you configure the XBee all you do is send and receive data using serial port but you can pay 5 times less for nordic modules and still get the same effect (with the difference that you will not use serial port but the driver library). If you want to get your money’s worth you should enable API mode in your XBee and use all the goodies it brings. This is however the case if you want to have a network of devices not just two communicating wirelessly.
Thanks, Gralin. Good information! I expect to follow this up with more interesing uses of the XBees but it’s good to know about the more economical alternative.
Do you mean that XBees cannot be networked in AT mode? I can try this easily enough, but maybe you have tried this.
Now my problem is that running my test application overnight led to some kind of overload, I think of the Spider mainboard. After running all night, it will not respond to the state changes on the Web service it polls for state changes. It was polling the Web service every 40 seconds with a non-blocking http request.
In my opinion XBee is not about range either. I think it’s strongest point is the ease of creating a network where nodes can: join, leave, sleep, send p2p and broadcast messages. You pay extra for those things so it’s good to calculate if this is what you are looking for in your project.
@ Mike
Yes you can communicate with more than one XBee using the AT mode. The problem is that it becomes more dificult as in AT firmware you have to switch between the transparent mode (the one where all data is send to the recipient) and AT command mode (in which you can set module parameters). So if you want to send data to some other node you have to switch to AT mode (send ‘+++’ and wait), set the destination address, leave the AT mode and send the data. As a contrast, if you are using API mode you can do all that using a single command. API mode is not only about making you life easier, it also offers things that are not possible in AT mode (I think delivery confirmation is one example).
Mike would you be interested in helping us with the library I have mentioned? It seems that you have some good tutorial writter skils and we are in desperate need of this kind of help
Thanks, Gralin, for the invitation to particpate and write up the XBee driver. I’ll try to get up to speed on it as soon as I can. There are quite a few things on the lst.
The beta is missing just a few things. I wanted to take care of it this weekend but had some technical problems (we have a linux based key cabinet at work and it hang so there was no way go get to my desk). Please expect some announcement until end of this week.
That would be awsome but those things are not cheap so i doubt anyone would allow me to mess with it The cabinet we have is based on PC platform with Geode processor. The new generation have ARM.