nRF24L01+ setup not working

Hi,

Trying to connect Arduino Micro and nRF24L01+ module but the sending fails. When running the RF24 GettingStarted example I get the output as below (debug mode). All registers seem ok to me but sending fails with "...Failed" meaning the radio.write returned false. I have no receiver set up but this write should work even without it - following waiting for response may fail but first it should send something at least.

So the result:

RF24/examples/GettingStarted/

ROLE: Pong back

*** PRESS 'T' to begin transmitting to the other node

write_register(04,5f)
write_register(06,0f)
write_register(06,27)
write_register(06,07)
write_register(00,0c)
write_register(1c,00)
write_register(07,70)
write_register(05,4c)
write_register(04,ff)
write_register(12,20)
write_register(02,03)
write_register(00,0f)
write_register(07,70)
STATUS		 = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1	 = 0xe7e7e7e7e7 0xf0f0f0f0d2
RX_ADDR_P2-5	 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR		 = 0xe7e7e7e7e7
RX_PW_P0-6	 = 0x00 0x20 0x00 0x00 0x00 0x00
EN_AA		 = 0x3f
EN_RXADDR	 = 0x03
RF_CH		 = 0x4c
RF_SETUP	 = 0x07
CONFIG		 = 0x0f
DYNPD/FEATURE	 = 0x00 0x00
Data Rate	 = 1MBPS
Model		 = nRF24L01+
CRC Length	 = 16 bits
PA Power	 = PA_MAX
*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK

write_register(11,20)
write_register(12,20)
write_register(02,03)
Now sending 23418...

write_register(00,0e)
0000000000000000000000000000000000000000011111111111111111111111111111111111122222222222222222222222222222222222223333333333333333333333333333333333333444444444444444444444444444444444444455555555555555555555555555555555555556666666666666666666666666666666666666777777777777777777777777777777777777788888888888888888888888888888888888889999999999999999999999999999999999999AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDwrite_register(07,70)
...Failed

 failed to send 

 Start listening for response 

write_register(00,0f)
write_register(07,70)
Failed, response timed out.

What I have done so far:

  • I have soldered 1uF capacitor directly on the module between VCC and GND
  • Triple checked the connections between Micro and the nRF24L01. MOSI, MISO and SCK lines are not connected to digital pins but to corresponding pins next to ICSP header. I have been able to use those pins for programming attiny as well.

My connections based from nRF24L01 pin to Micro (http://arduino.cc/en/uploads/Main/ArduinoMicroFront.jpg)
1 GND -> GND
2 VCC -> 3.3V (next to D13)
3 CE -> D9
4 CS -> D10
5 SCK -> SCK (On the image bottom row rightmost pin)
6 MOSI -> MOSI (On the image top row rightmost pin)
7 MISO -> MISO (On the image bottom row second pin from the right)

Any ideas what could cause it to fail on sending?

Hello,

I haven't used those modules for a while, but it worked for me using something along 10uF and 47uF on the 3.3v source.

Good luck!

Have unsuccessfully tried 1uF, 47uF, 100uF and 220uF. Thanks for the suggestion though.

Looking at the spec sheet this is the response you would expect if you don't have a receiver. TX_DS is only set high when ACK is received.
In my sketches I check the return from the write function and it will indicate a failure if I don't get a response. This is the same flag that gives the ...Failed in the debug output.
I think your unit is working fine.