<Solved> How to know if SPI is working properly for nRF24L01

Hello!
So recently I bought two Arduino UNO R3, two nRF24L01+ and two special regulators for these transceivers.
I connected each one carefully to Arduino and after setting up nRF libraries, I tested a GettingStarted example.

One board showed the model as nRF24L01+, and seemed OK as I could change the data rate and power level.
However, the other board identified the transceiver as the non-plus version (simply nRF24L01) and I could not change the data rate and power level. Needless to say, sending the data to the other one always failed (by setting the transmitter mode on one nRF and the receiver mode on the other)

At first I thought the second nRF24L01 has some problems, but after simply putting the second nRF on the first board's regulator (which correctly identified the first transceiver as nRF24L01+), it also started working properly (i.e. model was shown as nRF24L01+, and changing the data rate and power level became possible). To go further, I connected the exact same cables to the second Arduino (while still connected to nRF regulator), and the model name was again changed to nRF24L01.

I guess the second Arduino UNO R3 has some sort of problems with SPI communication, am I right? and is there a way I can determine that? Here are the details I see in serial monitor:
First Arduino board: (note I successfully changed the power to PA_MIN)

RF24/examples/GettingStarted/
ROLE: Pong back
*** PRESS 'T' to begin transmitting to the other node
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         = 0x09
CONFIG           = 0x0f
DYNPD/FEATURE    = 0x00 0x00
Data Rate        = 2MBPS
Model            = nRF24L01+
CRC Length       = 16 bits
PA Power         = PA_MIN

And the second board: (Note the power remains on PA_HIGH)

RF24/examples/GettingStarted/
ROLE: Pong back
*** PRESS 'T' to begin transmitting to the other node
STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0x000000000e 0x0000000038
RX_ADDR_P2-5     = 0x0e 0x1c 0x0e 0xe0
TX_ADDR          = 0x000000000e
RX_PW_P0-6       = 0x1c 0x0e 0x38 0x0e 0x1c 0x0e
EN_AA            = 0x1c
EN_RXADDR        = 0x0e
RF_CH            = 0x1c
RF_SETUP         = 0x0e
CONFIG           = 0x0e
DYNPD/FEATURE    = 0x0e 0x1c
Data Rate        = 2MBPS
Model            = nRF24L01
CRC Length       = 16 bits
PA Power         = PA_HIGH

Thanks in advance.

I think I found the reason. Thanks to reply #29 on this great topic, I changed CSN pin to anything other than 10, say 7 or 5, and it fixed the issue. Despite this, pin10 on Arduino seems to be okay as it can, for example, make an LED blink. I wonder what the reason for this inconsistency may be.

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