title: nrf24l01 Transmission problems
body: <p>I've been reading a lot of questions and answers regarding nrf24l01 and Arduinos while I was trying to figure out my problem. I'm fairly sure no one had this issue yet but I might be wrong. Here is my problem:</p>
  
  <p>If I upload the sending code to the <strong>UNO</strong> and the receiving code to the <strong>NANO</strong> I keep getting errors. And nothing gets transmitted. However, if I do the opposite and I upload the sending code to the <strong>NANO</strong> and the receiving code to the <strong>UNO</strong>, everything is fine... I've been scratching my head for a couple days without any idea and I would like to get input from other people because I ran out of ideas... </p>
  
  <p>I tried different nrf24l01 modules (I got about 20) to see if one was fried. Still the same thing. Tried changing to different pins... still the same thing. Changed the code to get it simpler and simpler to narrow down.. still the same thing. Maybe it requires more power to scan than send a package and the 3.3v from the Nano is not enough? I highly doubt..</p>
  
  <p>I'm really curious if you guys can figure this one out. I think I provided a lot of info. If you need more feel free to ask.</p>
  
  <p>Here is my set-up:</p>
  
  <p><strong>Arduino Nano:</strong></p>
  
  <p><a href="https://i.stack.imgur.com/KEVFa.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KEVFa.png" alt="Wiring"></a></p>
  
  <p>And here is the log from the <code>printDetails()</code> function: </p>
  
  <pre><code>STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
  
  RX_ADDR_P0-1 = 0xb01dfacece 0xb01dfacece
  
  RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
  
  TX_ADDR = 0xb01dfacece
  
  RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
  
  EN_AA = 0x3f
  
  EN_RXADDR = 0x02
  
  RF_CH = 0x73
  
  RF_SETUP = 0x07
  
  CONFIG = 0x0e
  
  DYNPD/FEATURE = 0x00 0x00
  
  Data Rate = 1MBPS
  
  Model = nRF24L01+
  
  CRC Length = 16 bits
  
  PA Power = PA_MAX
  </code></pre>
  
  <hr>
  
  <p><strong>Arduino Uno:</strong></p>
  
  <p><a href="https://i.stack.imgur.com/1CrRg.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/1CrRg.png" alt="Wiring"></a></p>
  
  <pre><code>STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
  
  RX_ADDR_P0-1 = 0xb01dfacece 0xb01dfacece
  
  RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
  
  TX_ADDR = 0xb01dfacece
  
  RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
  
  EN_AA = 0x3f
  
  EN_RXADDR = 0x02
  
  RF_CH = 0x73
  
  RF_SETUP = 0x07
  
  CONFIG = 0x0e
  
  DYNPD/FEATURE = 0x00 0x00
  
  Data Rate = 1MBPS
  
  Model = nRF24L01+
  
  CRC Length = 16 bits
  
  PA Power = PA_MAX
  </code></pre>
  
  <p>Here is the Receiver code:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include &lt;SPI.h&gt;
  #include "RF24.h"
  #include "nRF24L01.h"
  #include "printf.h"
  
  RF24 myRadio (7,8);
  const uint64_t pipe = 0xB01DFACECEL;
  struct package
  {
    int id=0;
    int code = 0;
    char text[100] = "";
  };
  
  typedef struct package Package;
  Package data;
  
  void setup() {
   Serial.begin(115200);
   printf_begin();
   delay(1000);
  
   myRadio.begin();
   myRadio.setChannel(115);
   myRadio.openReadingPipe(1,pipe);
   myRadio.printDetails();
   myRadio.startListening();
  
   Serial.println("Set-Up Done");
   delay(1000);
  }
  
  void loop() {
    if(myRadio.available())
   {
    while(myRadio.available())
     {
       myRadio.read(&amp;data, sizeof(data));
       Serial.print("\nPackage");
       Serial.println(data.id);
       Serial.println(data.code);
       Serial.println(data.text);
     }
   }
   delay(500);
  }    
  </code></pre>
  
  <p>Here is the Sending code:</p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include &lt;SPI.h&gt;
  #include "RF24.h"
  #include "nRF24L01.h"
  #include "printf.h"
  
  RF24 myRadio (7,8);
  const uint64_t pipe = 0xB01DFACECEL;
  
  struct package
  {
    int id=1;
    int code = 2;
    char text[100] = "text";
  };
  
  typedef struct package Package;
  Package data;
  
  void setup() {
   Serial.begin(9600);
   printf_begin();
   delay(1000);
  
   myRadio.begin();
   myRadio.setChannel(115);
   myRadio.openWritingPipe(pipe);
   myRadio.setRetries(15,15);
   myRadio.printDetails();
   myRadio.stopListening();
  
   Serial.println("Set-Up Done");
   delay(1000);
  }
  
  void loop() {
     if(!myRadio.write(&amp;data, sizeof(data)))
     {
      Serial.println("error!!");
      myRadio.printDetails();
     }
     Serial.print("\nPackage");
     Serial.println(data.id);
     Serial.println(data.code);
     Serial.println(data.text);
     data.id += 1;
     data.code += 1;
     delay(3000);
  }
  </code></pre>