This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ANT multi-hop broadcasting network

I'm assessing whether ANT is suitable for the network deployment I have in mind, and I would appreciate to hear any thoughts you have on this.

I have a network of say 20 nRF51422 nodes. On a regular basis, a node should inform every other node in the network. This may require multiple hops. All nodes have the same characteristics and have no idea of the device id's in the network and therefore need to resort to broadcasting the data. I want a node to broadcast a packet, and nodes receiving it to broadcast it again for a given amount of hops. In this way I want the packet to reach every node in the network.

As there is no central node that can initiate the creation of for example a routing tree, and the master and slave side of every channel should be explicitly set, this seems to be a bit tricky as far as I can see. I could for example think of every node keeping all channels in a shared slave role (also after search time-outs). If a node has a packet to send, it randomly picks a free (i.e., not in connection) slave channel and make it a shared master to communicate the packet for a couple of seconds. Receiving nodes pick another free slave channel and make it a shared master to forward to data. And so on.

I expect this could work in practice if the network is not too dense and there are not a lot of packets to be send, but I can imagine that this could quickly cause a problem resulting in neighbouring nodes selecting the same channel to use as a master and thereby are not able to communicate with each other... Any suggestions on a protocol that would be more reliable and less random that fits this situation?

  • Hi

    As you may know, the nRF51422 supports up to 8 concurrent ANT channels. This implies that once you try to set up a network with more than 8 nodes, at least when there is no central nodes, it soon gets complicated and difficult. You may be able to do something clever with shared channels, but I can't visualize how, and I can't really recommend it.

    If you are interested in a network with 8 nodes, please see this thread.

    If you have any further questions, or if you have any suggestions, please don't hesitate to reply.

  • Hi Petter,

    Thanks for the reply and confirming that it is indeed not really trivial. I'm currently interested in networks with more than 8 nodes, which can only be achieved by multi-hop communication due to the 8 channel limitation. So what you implicitly suggest is to give certain nodes the special 'central node' role allowing to set-up a practical mesh or tree. I will take a look whether there is some way to make this possible. I'm also looking forward to the possibility to use BLE with concurrent Peripheral/Central/Broadcaster/Observer roles. At first sight this may be an interesting alternative for ANT to create multi-hop networks...

    By the way, the ANT multi-hop problem reminds me a bit of the graph coloring problem in graph theory, where we want adjacent nodes to have different colors. or in our case, different channel that are used as a master. Then we should have k-coloring with k at most 8 to make things work... I might look into this a bit more...

  • Exactly. I think you will have to split the network into smaller networks with 8 nodes in each and connect them through central nodes somehow. Please let me if you have any progress or of anything else I can help you with.

Related