Trouble connecting Arduino Pro Mini (Atmega328, 3.3V) to nRF24L01 over SPI, receiving all 0 values when I use radio.printDetails(); I am trying to connect my Arduino Pro Mini 3.3V to an nRF24L01 transceiver and cannot see what I am doing wrong. I've checked my wiring a million times because the problem hints there is an invalid or no connection between the Arduino and the transceiver. I have the following pin connections:


  Arduino --------------- nRF24L01
  
  --GND ------------------- GND
  
  --VCC ------------------- VCC
  
  ---D9 --------------------- CE
  
  --D10 -------------------- CSN
  
  --D13 -------------------- SCK
  
  --D11 -------------------- MOSI
  
  --D12 -------------------- MISO


I am using the following sketch

#include &lt;SPI.h&gt;
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

RF24 radio(9, 10);

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0C2LL };     //Addresses to send/receive

void setup()
{
  printf_begin();
  Serial.begin(9600);
  radio.begin();
  radio.setRetries(15, 15);
  radio.openReadingPipe(1, pipes[0]);
  radio.printDetails();
  radio.stopListening();
}

void loop()
{
  const char text[] = "Hello World";
  radio.write(&amp;text, sizeof(text));

  delay(1000);
}


I have no clue where I am going wrong. This setup works well on my Uno, however I cannot replicate it on the Arduino Pro Mini. Can anyone tell me if I am doing something super wrong that would prevent this from working? I'm all out of ideas. Appreciate any help in advanced!

Update: 

I forgot to copy and paste the output from printDetails(): 

STATUS  = 0x00 
RX_DR=0 
TX_DS=0 
MAX_RT=0 
RX_P_NO=0 
TX_FULL=0 
RX_ADDR_P0-1    = 0x0000000000 0x0000000000 
RX_ADDR_P2-5    = 0x00 0x00 0x00 0x00 
TX_ADDR = 0x0000000000 
RX_PW_P0-6  = 0x00 0x00 0x00 0x00 0x00 0x00 
EN_AA   = 0x00 
EN_RXADDR   = 0x00 
RF_CH   = 0x00 
RF_SETUP    = 0x00 
CONFIG  = 0x00 
DYNPD/FEATURE   = 0x00 0x00 
Data Rate   = 1MBPS 
Model   = nRF24L01 
CRC Length  = Disabled 
PA Power = PA_MIN
Whenever you get an all zeros output from the printDetails() function you can bet you are having a communication issue between the Arduino and the nRF24 module.

Start by checking your connections.

Check your connections again, using a multimeter to ensure continuity.

Check your connections again (no, I'm not joking).

Finally add a capacitor (anything between 1uF and 100uF will do) between the VCC and GND pins of your nRF24 module: those modules are pretty sensitive to voltage fluctuations and they are subject to current consumption spikes at startup. 

Pair that with a possibly not state of the art voltage regulator (especially on cheap Arduino clones) and you end up with a non responding nRF24 module: the capacitor will provide the extra juice whenever it's required by the radio module.

This is such a common problem that I started soldering the capacitors directly onto the modules to save breadboard space!