Create graph/map of Zigbee topology with Bitcloud/Serialnet

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Is it possible to create a list that represents the topology of the connections of the nodes within the mesh?

I am currently testing a system with 14 devices (1 coordinator, all others are routers, no end-devices). with +WNB I can get the neighbor list.

But because routers are just part of the mesh, I don't see any relationship. It's also not clear if those neighbors are _direct_ neighbors or if they could be indirect neighbors.

+Wchildren and +Wparent doesn't help either as there is no parent/child relation between routers.

When I tried to go through the mesh by using +wnb on remote nodes ("atrxxxx,0,+wnb 3" with xxxx=short NWK), I only get ERRORs back. However, the same approach with an ATI remote command does work.

Thanks

Last Edited: Fri. Oct 16, 2015 - 02:17 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Maybe you can use a wireshark sniffer for doing this.
http://stackoverflow.com/questio...

Alternatively you can probably write a simple
script that generates a graphviz file from tshark output.

If you can not sniff the entire network traffic from one location (If you can, this means that just a MAC would be sufficient), with the tool mergecap multiple log files can be combined.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

To get a mesh-graph of the network you have ask each node for its neighbors remotly. Since the WNB AT command does not support a start index it might be difficult to retreive all neighbors (for example if the node maintains a large neighbor table). However the ZigBee standard ZDP command Mgmt_Lqi_req is perfect for this job and provides a start index parameter to incremental requesting the whole table in multiple request (one response only contains 2-3 neighbor entries).

I don't know if it's possible to execute a Mgmt_Lqi_req from SerialNet but it's possible with plain BitCloud.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How about periodically broadcast the tables in a debug build firmware?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@manuelp
I was planning to do a WNB through all nodes. BUt WNB does not work as a remote command. To be more precise: It does work if I ask for coordinators (0) and endpoints (2) but if I ask for routers (1) or all (3) I always get an ERROR only.

I don't know why, maybe a but in serialnet?

And I can't see a way to use Bitcloud commands through Serialnet

@uraculix
It needs to be part of the existing system, means a software solution

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
It does work if I ask for coordinators (0) and endpoints (2) but if I ask for routers (1) or all (3) I always get an ERROR only.

I think SerialNet does this on purpose because 15 seconds after a router joins the network the related entry in local neighbor tables of the sourrounding nodes changes to a less important state so that the entry could be used for other nodes if needed (unlike end devices which once connected to a router will definetly stay in its table). That might be the reason SerialNet only returns the "important" nodes like end devices.

However the routers are still available in the neighbor tables as long as they are big enough (I don't know how big they are in SerialNet).

Small challange is that SerialNet code must be changed to also return routers (and as I said a start index parameter is a must have in a bigger network since one response likely not will contain more than 3 entries).

----

Another ugly way (not recommend for big networks) is to send a broadcast to all nodes which then should respond (with a jitter offset) to your node (the answer shall contain nwk and mac address). And for each response you get store the address in a local table. After that send a remote AT (LQI or RSSI) command for each node to each node and collect these responses as well. After finishing this you know which nodes are neighbors and which not.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sounds a bit over the top: With 10 nodes it would be 100 messages, with 20 nodes it would be already 400 messages!

Looks like I might have to drop the idea of making getting the connection structure.

But I still need to know what the lqi/rssi between the legs is. As I am facing the same problem, I might try this:
From time to time (every 120 secs. for instance) each node asks for direct neighbors via WNB and then gets the last lqi/rssi number. Assuming that the node, that's used to hop to the coordinator will be always in that list and also assuming that it will have the best lqi reading, I would then take that as my "signal strenth" reading.

It would still not give me the "weakest link" because it could be further down the track but it would give me at least some indication

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The biggest problem here is that although serial net is the easiest application to get running out of the box, it is not being worked on by the wireless dev team.
If (like me) you would like this to happen, you need to email zigbee@atmel.com and request it.
The more requests, the more likely we can get serial net upgraded

I started a thread ages ago asking for people to list bugs/feature requests for Serialnet, even had it as a stiky at the top,
https://www.avrfreaks.net/index.p...

But even though people kept posting questions/ problems as new threads, no one has emailed zigbee@atmel.com or posted to the thread above.

So, please post to the above topic your requests for Serialnet, and any bugs you find, ( please be accurate in bug comments and clear in requests.

Ensure you email a copy to zigbee@atmel.com as well.

No interest in this tells Atmel that there are no issues.

_________________________________

www.proficnc.com
_________________________________
Go Aussie Go!!!