How to avoid data collision in a network of NRF devices where only 2 NRF want to communicate with each other and others dont get this data ?

Hello,

We are using NRF24L01 as a transreceiver. We have a network of NRF devices operating individually and we want one NRF to communicate only with its respective NRF. However the data collision happens during this. The NRFs in the network also receives this data despite keeping the different frequency.

We cant have multiple frequencies for our every product.

So, is there any way to avoid data collision / interference so that only 2 desired NRF will communicate with each other and other NRF devices in the network wpn't get that data ??

Thanks and Regards ,

Harshal

 

  • Hi Harshal, 


    Could you please explain how the PTX supposed to be changed and shuffled to other receiver. 


    How do you pair them together, and how you "unpair" the PTX with PRX to switch to new PRX ? I mean physically how do you decide a PTX should be talking to a certain PRX ? 

  • In our application, there are several pairs of NRF devices where 1 NRF in the pair acts as PTX and the other as PRX. The PRX of all the pairs are fixed / immovable / attached to the machines itself. Whereas, the PTX, can be connected and disconnected physically to the machines so that it will come in the range of PRX and communication will start between them.

    So what we need is any PTX from any pair when connected to any machine having a PRX attached shall communicate with it. The PRX will be provided the address of the PTX which is supposed to be connected to that PRX.

    For every new PTX connecting to a particular PRX, we provide its address to the PRX which is constant. 

  • Hi Harshal, 

    Could you explain what exactly happens when TX " connected to any machine having a PRX ". I assume you meant physically connect ? What kind of connection ? Is it UART/SPI/I2C/GPIO? 

    If you have a way to send the address of the PRX to the PTX , for example via UART or via keyboard. Then the PTX can just simply start using the new address. 

  • Application :-

    The machine has an arm. The PTX NRF along with its controlling MCU (communicating via SPI) are mounted on a device that physically connects to the machine's arm.

    Such machines are in various numbers and so are the connecting devices.

    All the PRX are mounted on the machine side while all the PTX are on the connecting devices' side.

    If a connecting device is connected to the machine's arm, the PTX starts sending the data; currently we've configured all the PTX and the PRX to the same sending and receiving addresses.

    Problem :-

    So when the connected PTX wants to send the data to the PRX of the machine it is connected to, the data is received by the other machines' PRX as well since all the machines (PRX) are having the same address.

    OR

    When the PRX wants to send data to its respective PTX NRF (the one which is physically connected to the machine's am), then the other nearby PTX devices (which are connected to their respective machines' arm) also receive this data because all the PTX have the same address too.

    This is where the cross-talk is happening.    

  • Hi again Harshal, 


    Please explain what you meant by "connected" in this sentence: "If a connecting device is connected to the machine's arm," 
    Do you bring the connecting device and plug it in the machine arm ? When plugging like that is there any connection like UART/SPI/I2C ? 


    Or do you mean "connected" here is the radio connection ? 

    If it's the radio connection, there must be something you need to do to tell the PTX to connect to a particular PRX, for example by bringing them very close together or use a keyboard/display to type a serial number or something. 

Related