zigbee prototyping

Hello Arduino community,

I'm busy with my graduation project where i will most probably use 2 or more zigbees (or, arduino + zigbees). I have some questions i've tried to find myself, on the sparkfun, arduino and zigbee manufacturer website but i'd like some answers from people who really worked with them.

If i understand correct, a zigbee module allready has an 8 bit uc with 6 * 10 bit ADC in/outputs and some analog inputs? That means that for 'simple' tasks, like powering an electromagnet (12V so external circuit with relay/transistor) could be done just using a zigbee module, without arduino?

Then i have another question regarding prototyping: I'd like to test 2 or more zigbee modules communicating with each other. Could i just use 1 arduino + zigbee shield, and buy 1 or more additional zigbees that i could plug into the shield to configure / setup? and then later detach them from the shield to be used standalone?

right now i have 1 arduino duemilanove and i'm trying to see if i can do without buying 3 additional arduino's AND zigbees :>

I hope these questions are clear! Much obliged to those who'll have answers!

Michael

That means that for 'simple' tasks, like powering an electromagnet (12V so external circuit with relay/transistor) could be done just using a zigbee module, without arduino?

True.

Then i have another question regarding prototyping: I'd like to test 2 or more zigbee modules communicating with each other. Could i just use 1 arduino + zigbee shield, and buy 1 or more additional zigbees that i could plug into the shield to configure / setup? and then later detach them from the shield to be used standalone?

Yes, but... Using a shield to program an XBee is a royal pain in the ass. Get one of these to do the configuring.

Hoi Paul,

Thanks for your quick reaction and answers. Then i have one more question: How much memory do these zigbees (or does the microcontroller) have and can i program them (using the explorer)? If so, is it arduino-like?

Thanks again!

How much memory do these zigbees (or does the microcontroller) have

No idea.

and can i program them

No.

You can configure them, to enable/disable the individual I/O pins as input/output/off.

Aha, thanks, i think i'm beginning to understand!

So if you cannot program it (also not via arduino using an API?) then it's probably not possible to switch between point-to-point and multipoint communication... or is it?

So if you cannot program it (also not via arduino using an API?) then it's probably not possible to switch between point-to-point and multipoint communication... or is it?

Point to point is a configuration setting (MY on one is DL on the other). Mulitpoint is also a configuguration setting, that has one XBee in broadcast mode (DL = 0). It is possible for the Arduino with XBee to dynamically reconfigure the XBee. It is not possible for the XBee to reconfigure itself.

Okay, that’s cool, last question then:

Can i use arduino + zigbee + bluetooth shield all together?
I’d like bluetooth for amarino (interface with mobile android phone)
and i’d like a zigbee to communicate to other end devices (without bluetooth shield).

So in short, a mobile phone could control a simple 2- or more zigbee node network :slight_smile:
This is why i’d like to dinamically change the ‘master’ zigbee’s config from multipoint (setup to other zigbee end devices)
to point-to-point (‘master’ zigbee becomes a node temporarily)

Can i use arduino + zigbee + bluetooth shield all together?

As long as the pins don't conflict.

This is why i'd like to dinamically change the 'master' zigbee's config from multipoint (setup to other zigbee end devices) to point-to-point ('master' zigbee becomes a node temporarily)

I don't follow this. The master is a node, whether it is one of two or one of many. Are you saying that you want the node designated as master to take on a different role? If so, that could be quite a challenge. If you are using series 1 models, you can change MY and DL of the XBee attached to the Ardduino, to change from point to point to point to multi-point. If you are using series 2 models (mesh network), changing from coordinator (master) to end device (node) requires different firmware, which the Arduino can't manage.

Okay clear enough. So i should pay attention to what bluetooth shield/module i use (probably call the manufacturer if this info is not listed). As for why i'd like to switch roles: maybe this isn't necessary. i'll try to explain what i want to achieve with this:

I want one arduino node to have bluetooth + zigbee functionality. This would be a 'master' or 'setup' node if you like. Using Amarino, i'd like to connect to the bluetooth modem of an android phone (rather any phone, but ok :>). the android phone runs an application that 'manages' the nodes (send setup information). So, this managing information should flow through bluetooth back to the master arduino node, which in its turn sends it to 'endnodes' which only have an xbee.

The thing is: the 'master' arduino only serves as setup node, because it has the bluetooth shield and can communicate with a mobile telephone. After initial setup, this 'master' node should also behave like an endnode (so the point-to-point / multipoint thing isn't really neccesary i reckon). But, for sending data to (possibly, if there's more than 1 other node) multiple 'endnodes', this 'master' node should be in point to multipoint mode right?

Another requirement would be that i could send pure data(so not just pin info) to another arduino + xbee (but this should be possible using Serial.write(); right?) Is this a crazy idea or would this be feasible? in my mind it could be, technically feasible. now it boils down to getting the right xbee's, bluetooth shield etc. etc.

Hope this makes the idea clear?

Which XBees are you using or planning to use? Series 1 - point to point or point to multi-point - or Series 2/2.5 - mesh network?

If you are using, or planning to use, Series 1, and there will be more than 2 or them, then one of them needs to be set up in broadcast mode, and you will not be able to change that.

The only XBee, then, that makes any sense to pair with the Arduino with the bluetooth device is the one in broadcast mode.

After initial setup, this 'master' node should also behave like an endnode (so the point-to-point / multipoint thing isn't really neccesary i reckon).

Then, I reckon you are wrong.

I'm still pondering over which zigbee version i should use, because it depends on what is possible for my what i want to make. But i might as well better explain what i intend to make. :) I'd like to be able to let the master node send a 'program' to the endnodes(which [u]will[/u] have arduino's btw, i was asking about standalone zigbee's for prototyping). this program comes from the app on the mobile phone, and should tell the individual nodes what they have to do. This program (on the endnode) will check one or some input pins, turn a LED on, and, after x amount of milliseconds (which is also in the program sent), should send a signal to another endnode to trigger that program (but it could also talk to the master node, which in turn sends a signal to the destination endnode) I've included a picture to make this more clear: (edit): dang, the upper left rounded rectangle should represent a mobile phone :) (edit2): 'endnotes' = endnotes. osx paintbrush has spelling control? damn. that sucks.

I'm not sure which xbee's i should use, it's kind of a complicated thing i'm trying to get straight :) hope you understand, hence all the questions.

The arrows in that diagram are not correct for point to point or point to multi-point radios.

The node that the phone points to, we'll call that A. The two nodes that A points to we'll call B and C.

A can talk to B. A can talk to C. B can talk to A. C can talk to B. C has no clue that B exists. B has no clue that C exists.

So i'd have to go for the version 2.5 zigbees, as this is a form of mesh-network?

So i'd have to go for the version 2.5 zigbees, as this is a form of mesh-network?

Is it necessary for any XBee to be able to talk to any other XBee? I don't see that.

No you don't see that, but yes, that depends on what program is selected on the mobile phone. So, in another 'program', C (lower right) should be able to talk to B (upper right), kind of a reverse order. you said i'ts not a correct diagram for point-to-point (obvious), but also not for point-to-multipoint. That leaves only a mesh topology right? or am i missing options? Thanks!

If B and C need to exchange information, is there some reason that B can't ask A to talk to C? If that is acceptable, then A can be in broadcast mode, talking to B and C at the same time, with specific messages for each, that the other ignores. B talks to A and says "Hey, A, tell C xxxx", so A says "C xxxx". C responds "Hey, A, tell B yyyy" and A says "B yyyy".

Thanks Paul, i wasn't thinking about that possibility. But there's no reason why that could not work! And the series 1 xbees will support broadcast right? If so, i think i'll just go with a couple of the 1mw wire antenna series 1.

Pff, sorry to bother you again for one more question:

The project i’m working on is a prototyping project but i’m also thinking of the way the project would work for real.
So i know that for prototyping i could use the xbee series 1. Using an (USB) explorer i can configure each xbee to be in the
same network, adress range etc…

However, the situation is so that these xbees (max about 10) should autodetect (discover) and connect to a coordinator xbee
that is in broadcast mode. I read in the xbee datasheet
that there is support for this, but this is a peer-to-peer setup, which differs from the broadcast setup, right?

Thanks!

However, the situation is so that these xbees (max about 10) should autodetect (discover) and connect to a coordinator xbee that is in broadcast mode.

And the problem is?

One of your XBees MUST be in broadcast mode, so that it can talk to all the other XBees. It's the MY address of that XBee that is the DL value of the other XBees. A will talk to B (and all the others); B will talk to A. A will talk to C (and all the others); C will talk to A. A will talk to D (and all the others); D will talk to A. And so on...

There's no problem, it was more a question of: is it possible to use the autodetect/discover feature while still using the broadcast thing (i have really little knowledge about these protocols etc.), but your answer kind of suggests it is. Then i should now look into how i know which device is which device when using this discovery system (because A is still A, and B is still B and they should do different things, they are not 'interchangeable'). But i think that's covered in the datasheet?

Thanks for the support!