4

I use some xbee (s2) modules with zb stack for mesh networking evaluation. Therefore a multi hopping environment has to be created. The problem is, that the firmware handles the association for themselves and there is no way deeper into the stack as the api provides. To force the path of the data, without to disturb the routing mechanism, I have tried to measure, I had to put them outside their reach. To get only the next hop in association isn't that easy. I used the least power level of the output, but the distance for the test setup is to large and the rf characteristics of the environment change undetermined.

Therefore my question, has anyone experience with this issue?

Regards, Toby

Tobias Junge
  • 105
  • 7
  • 1
    add: http://www.youtube.com/watch?feature=player_embedded&v=QeSvAn-YRSE ... Regarding to that link, I think its far beyond the purpose of the xbee zb api. Even they realise it via rf constraints. Nonetheless, any ideas to that issue are welcome. – Tobias Junge Nov 10 '12 at 07:38

2 Answers2

2

I don't think it's possible through software and coordinator/routers. You could change the Node Join Time (ATNJ) to force a new router to join through a particular router (disable Node Join on all nodes except one), but that would only affect joining. Once joined to the network, the router will discover that other nodes are within range.

You could possibly do it with sleepy end devices. You can use the ATNJ trick to force an end device to join through a single router, and it will always send its messages to that router. But you won't get that many hops -- end device sends to its parent router, which sends to the target's parent router, which sends to the target end device.

You'll likely need to physically limit the range of the radios to force hopping, as demonstrated in the video you linked of Digi's K-Node test equipment with a network of over 1000 radios. They're putting the radios in RF-shielded boxes and using wired antenna connections with software-controlled attenuators to connect the modules to each other.

If you have XBee modules with the U.fl or RPSMA connector, and don't connect an antenna, it should significantly reduce the range of the module. Otherwise, with a wire whip or integrated PCB antenna, you need to put each radio in some sort of box that attenuates the signal. Perhaps someone else can offer advice on materials that will reduce the signal's range without completely blocking it.

tomlogic
  • 10,909
  • 3
  • 29
  • 57
2

ZigBee nodes try to automatically form an Ad-Hoc network. That is why they join the network with the strongest connection (best network coverage) available on that moment. These modules are designed in such a way, that you do not have to care much about establishing a reliable communication. They will solve networking problems most of the time.

What you want to do, is somehow force a different situation. You want to create a specific topology, in order to get some multi-hopping. That will not be the normal behavior of the nods. But you can still get what you want with some of the AT Commands.

The mentioned command "NJ" should work for you. This command locks joins after a certain time (in seconds). Let us think of a simple ZigBee network with three nodes: one Coordinator, one Router and one End-Device. Switch on the Coordinator with "NJ" set to, let us say, two minutes. Then quickly switch on the Router, so it can associate with the Coordinator within these two minutes. After these two minutes, the Coordinator will be locked and will not accept more joins. At that moment you can start the End-Device, which will have to associate with the Router necessarily. This way, you will see that messages between End-Device and Coordinator go through the Router, as you wanted.

You may get a bigger network applying this idea several times, without needing to play with the module's antennas. You can control the AT Parameters remotely (i.e. from a Computer connected to the Coordinator), so you can use some code to help you initialize the network.

  • I'm pretty sure that the `NJ` command only limits joining. Once a router is joined to the network, it will discover neighbor nodes and can send directly to any other node on the network. You won't get the hops you had hoped for. – tomlogic Nov 20 '12 at 20:41
  • Once the node has joined the network, the node will send the packets through this node. That is the "father node", which deals with packet routing. Therefore, in this simple network you will get one hop (End device can not join directly the coordinator, and thus messages go through the router). –  Nov 23 '12 at 11:32
  • Ah, I missed the fact that one of the devices was an end device. You are correct that an end device will join through a parent, and send all messages through that parent. As mentioned in my answer, you can get 3 hops by having the end device send to its parent, which sends to the target's parent, which delivers to the target end device. – tomlogic Nov 25 '12 at 01:38
  • I think he's not right with _End device can not join the coordinator_. A coordinator represents a router with special network mgmt features. Further I did some star topology issues with a COO and an ED. But there might be some mistakes with it, cause I wasn't able to get the throughput values of the digi xbee s2 sheet due to connection loss while sending tx requests (10.000 frames with 84 byte payload) which are triggered on tx status messages. I think responsible therefore are sleep settings, cause the buffer should be clear on synchronous transmissions. – Tobias Junge Nov 30 '12 at 03:03