As I have read from ANT documentation, there is a "nice" mechanism built in to open a channel is a "safe" space knowing there is no other channel near myself. And it is aware there is another channel "approaching" me and the master will shift itself a little to stay away from other channels.
All very nice.
In recent test, I have identified a bug which is channel collision related.
This is the case:
I have a bunch of nodes, each one has one master channel broadcasting data.
But some nodes received broadcast message in their channel, the message is from other node's forward broadcasting. This is not what I expected. but makes sense because if two channels a very close to each other, then one broadcast transmission could fall into the other channel's receiving time opening.
It is easy to verify with ANTWARE II with two ANT USB sticks.
Leave everything in default, set the frequency to 200Hz and open both channel, they will see a lot of message received on each channel.
From technically point view, it should be able to filter out the message is from a master or slave at stack level.
Also I want to understand better how much work ANT is actually doing to avoid channel collision, which will be very helpful when I am dealing with error happening at the application level. Also it is important not to do unnecessary redundant work stack has taken care of and save the battery life.
Thanks
Paul
Signature
BLE and ANT Developer using Nordicsemi nRF51422, ON, Canada