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

Apparently two channels are colliding?

Dear Nordic,

Device: nRF51422. Protocol: ANT+. Softdevice: S210 v5.0.0

I have 3 devices: two masters (No. 1 and 2) and one slave (No. 3). In my application, I pair the slave to the two masters, store both channels IDs, and close all channels, until a button in slave is pressed. When masters are plugged, they have always channel opened and they are sending data.

When the button in slave is pressed, I quickly open both channels, send information (broadcast data type), receive a ACK (done by me by SW), and close both channels. This works fine most of the times, even if one of the masters (either 1 or 2) doesn't exist.

The problem is that, apparently randomly, when I try several times communication without one of these masters present, and then I connect them back again, sometimes, at some point information only arrives to one of the masters, and it even switches from one to the other. So if I press once, info may arrive only to master 1, and next time when I press again, info may arrive only to master 2.

The thing is that I do not know the exact cause of this problem. I am trying a lot of things but none of them seem to give any result.

Any idea on what it could be happening? Please feel free to ask more details.

  • Hi Petter,

    I just did it, here is the identificator: Case ID 36279

    Thanks!

  • Hi Nordic,

    Petter and I found the solution to the problem. Something quite weird was happening whenever the previous function was executed, and a lot of CHANNEL_COLLISION events were happening. The solution was to change the strategy from OPEN CH0, OPEN CH1, SEND both, CLOSE CH0, CLOSE CH1 to OPEN CH0, SEND CH0, CLOSE CH0, OPEN CH1, SEND CH1, CLOSE CH1. This way we never get channel collision and everything works fine. The only drawback though is the delay in sending the message to CH1 with respect to the event in the slave, which can go to maximum around 200 - 300 ms (max timeout in CH0).

    Thanks!

Related