SPI problem with Arduino Pro Mini and nRF24L01

Hello,
I have problems connecting an Arduino Pro Mini 3.3V/8Mhz to a nRF24L01 SPI module and I was thinking if it could have something to do with the MCU frequency of 8Mhz.

It fails right at the begining, when connecting wit the module with radio.begin(). It returns false and in the printing the debug details all registers are zero, so the Arduino can't communicate with the nRF24L01module.

SPI Speedz	= 10 Mhz
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	= 1 MBPS
Model		= nRF24L01+
CRC Length	= Disabled
PA Power	= PA_MIN
ARC		= 0

In the 1st row its says: "SPI Speedz = 10 Mhz" That's why I think it could be problem. Then I have try to initialize it with 8Mhz, 4Mhz or 2Mhz and doesn't work neither.
RF24 radio(9, 10, 4000000); // CE, CSN, freq in Hz

The same module and same exact program and wiring works fine with an Arduino Uno. And also with a Webos D1 Mini with a similar setup.

I have so far a simple and standard connection like this:

I have checked all the wiring, pins, added an external power, 10uF capacitor, checked many threads and also the tutorial in this forum. Most of the examples are with MCU of 16Mhz but the Pro Mini is 8MHz.

I don't know what I'm missing or what else could I try.
Thank you

I have used RF24 radios with mega328 processors running at 8MHz and 3.3V.

Maybe post clear photos of your wiring.

Post your transmitter and receiver code and I can try it on my setup.

You are missing a lot of details that would be on an annotated schematic, why not post one. Show all connections, power, ground, power supplies etc. Links to technical information on the parts would help as well. Links to amazon are useless as they normally only contain sales data. I suspect you have a power problem.

According to your diagram, CE is connected to pin 8 and CNS to pin 7. Wouldn't the initialisation line therefore be:

RF24 radio(8, 7, 4000000); // CE, CSN, freq in Hz

or whatever frequency you want to run SPI at?

Hi,
it seems that it was something related to intermitent bad connections of the jumpers or the protoboard, I'm still not sure of what was actually the problem. I had checked everything with the tester serveral times. It was driving me crazy.
I have replaced some of the dupont jumpers by direct bare cables and sorted it a bit and now it works fine.

Now it works without specifing the frequency. And in the debug output it still says " SPI Speedz = 10 Mhz". How can it be? I'm not very expert, but I understand that the MCU can't communicate with anything at a higher frequency than it's own (8 Mhz). Or is it posible? Maybe it just displays the initial defaults.

Actually it works very well. I set it at only 250Kbps and RF24_PA_MIN and it reach the other one through 3 walls in the house. Without the adapter and working at 3.3v

Regarding power comsuption, in the same conditions, about 20-30m and a couple of walls in a house, would a RFM69 consume less? as it has lower frequency I understand that it needs less power to communicate in the same conditions than the nRF24L01. Or maybe the difference is negligible?

Thank you for the help!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.