NRF24L01+ RX and TX addresses question

Hi,

I'm making a home project where I have 1 base (arduino with 1 nrf) and several nodes (attiny84 + nrf) along the house.

I'm using the MIRF library in this project.

Assuming that:

base:
RX address: "clie1"
TX address: "serv1"

node1:
RX address: "serv1"
TX address: "clie1"

node2:
RX address: "serv2"
TX address: "clie1"

What I'm doing is changing TX address of the base when I want to send some information to node2.
Node1 and node2 have the same code. They only have different RX addresses.

The problem is when I want to turn on node1 (sending 1 bit for example) both nodes turn on.
When I turn off the node1 both nodes turn off.

All the information I send to one node, the another node also listens and that isn't the behaviour that I expects.

Can someone help me here?

I thought that only the node with RX equal to base TX would listen but I guess I was wrong.

Thanks

(deleted)

Ohh sry... i forgot

Base (arduino uno)

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

void setup(){
  Serial.begin(9600);
 
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"clie1");
  Mirf.payload = sizeof(unsigned long);
  Mirf.config();
  Serial.println("Beginning ... "); 
}

void loop(){
  unsigned long time = millis();
  unsigned long data = 1;
  
  if(Serial.available() > 0)
  {
    char c = Serial.read();
    if(c == '1')
      Mirf.setTADDR((byte *)"serv1");
    else if(c == '2')
      Mirf.setTADDR((byte *)"serv2");
    
    Mirf.send((byte *)&data);
    while(Mirf.isSending()){
    }
    Serial.println("Finished sending");
    delay(10);
    while(!Mirf.dataReady()){
      //Serial.println("Waiting");
      if ( ( millis() - time ) > 1000 ) {
        Serial.println("Timeout on response from server!");
        return;
      }
    }
    
    Mirf.getData((byte *) &data);
    
    Serial.print("Response: ");
    Serial.println(data);
  }
}

Node 1 (arduino mini pro)

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

#define led 5

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
  
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"serv1"); 
  Mirf.payload = sizeof(unsigned long);
  Mirf.config();  
  Serial.println("Listening..."); 
}

void loop(){
   
  unsigned long data[Mirf.payload];
   
  if(!Mirf.isSending() && Mirf.dataReady()){
    Serial.println("Got packet");   
    Mirf.getData((byte *)&data); 
    if((*data) == 1)
      digitalWrite(led, !digitalRead(led));
      
    Mirf.setTADDR((byte *)"clie1");
    Mirf.send((byte *)&data);   
    Serial.println("Reply sent.");
  }
}

Node2 (attiny85 with spi85 and mirf85 library...)

#include <SPI85.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpi85Driver.h>

#define led PB3

void setup(){
  pinMode(led, OUTPUT);
  
  Mirf.cePin = PB4;
  Mirf.csnPin = 7;
  
  Mirf.spi = &MirfHardwareSpi85;
  Mirf.init();
  Mirf.setRADDR((byte *)"serv2"); 
  Mirf.payload = sizeof(unsigned long);
  Mirf.config();  
}

void loop(){
   
  unsigned long data[Mirf.payload];
   
  if(!Mirf.isSending() && Mirf.dataReady()){  
    Mirf.getData((byte *)&data); 
    if((*data) == 1)
      digitalWrite(led, !digitalRead(led));
      
    Mirf.setTADDR((byte *)"clie1");
    Mirf.send((byte *)&data);   
  }
}

The problem isn't the mirf85 and spi85 librarys, because I've already tried with an arduino mega and I have the same result.

BTW, line 12 of attiny85 program it's because I've used the "capacitor + resistor" trick do CSN to have one pin available for LED.

Hallo,

Ik heb precies hetzelfde.
Heeft u inmiddels al een oplossing?

groeten
Johan