nRF24L01 not communicating

Hi,

I've been attempting to get a pair of nRF24L01 modules working with Arduino Unos, but with no luck.





note the yellow and green wires are connected to grey and purple wires respectively

Both pairs of Unos and nRF24L01 modules are wired the same way. I am bringing 5v to the Unos through the VIN and 3.3v to the nRF24L01 modules. I am using a voltage converter to obtain the 3.3v (picture shows 3._4 due to camera not capturing the output, but it reads 3.34 in person).

The 2 set-ups are running off two separate computers, approximately 15 meters apart.

I have version 1.4.9 of the RF24 library installed through the library manager. I attempted the example sketches provided, but could not get them working.

Doing some digging, I keep seeing this tutorial. I uploaded the "SimpleTx.ino" and "SimpleRx.ino" sketches to the Arduinos.

The Arduino running the "SimpleTx.ino" sketch prints:
SimpleTx Starting
Data Sent Message 0 Tx failed
Data Sent Message 0 Tx failed
Data Sent Message 0 Tx failed
...

with the "Data Sent Message 0 Tx failed" appearing about every second.

The Arduino running the "SimpleRx.ino" sketch prints:
SimpleRx Starting
Data received
Data received
Data received
...

with the "Data received " rapidly appearing over and over(much less than one second apart).

Next, I uploaded the " CheckConnection.ino" sketch to both Arduinos and the results were:

CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
  Note that RF24 does NOT reset when Arduino resets - only when power is removed
  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
     communicating with the nRF24

SPI Speedz	= 10 Mhz
STATUS		= 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1	= 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5	= 0xc1 0xc0 0xc0 0xc2
TX_ADDR		= 0xe3e3e3e3e3
RX_PW_P0-6	= 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA		= 0x1f
EN_RXADDR	= 0x01
RF_CH		= 0x04
RF_SETUP	= 0x00
CONFIG		= 0x02
DYNPD/FEATURE	= 0x00 0x00
Data Rate	= 1 MBPS
Model		= nRF24L01+
CRC Length	= 8 bits
PA Power	= PA_MIN
ARC		= 0


AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
 and 250KBPS data rate

SPI Speedz	= 10 Mhz
STATUS		= 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1	= 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5	= 0xc1 0xc0 0xc0 0xc2
TX_ADDR		= 0xe3e3e3e3e3
RX_PW_P0-6	= 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA		= 0x1f
EN_RXADDR	= 0x01
RF_CH		= 0x04
RF_SETUP	= 0x00
CONFIG		= 0x02
DYNPD/FEATURE	= 0x00 0x00
Data Rate	= 1 MBPS
Model		= nRF24L01+
CRC Length	= 8 bits
PA Power	= PA_MIN
ARC		= 0
CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
Note that RF24 does NOT reset when Arduino resets - only when power is removed
If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
communicating with the nRF24

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 8 bits
PA Power = PA_MIN
ARC = 0


AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 8 bits
PA Power = PA_MIN
ARC = 0

I tried uninstalling version 1.4.9 and installed version 1.1.7.
I tried adding a 470uf capacitor to the nRF24L01 modules.
The program output is the same regardless of which library version I use and with or without the capacitor.

I've tried switching witch module is receiver and which is transmitter. I've tried different Arduinos.

Any and all suggestions would be greatly appreciated.

Thank you.

Hello b18shea

Welcome back to the world's best Arduino forum ever.

I have been following the topic of using this type of wireless module and the associated software functions for some time now.

For wireless projects, I recommend using the HC12 module.

What are the advantages:

  1. no external functions from a library are needed.
  2. the development of a communication protocol is in your hands
  3. the necessary development steps can be programmed and tested without using the wireless module
  4. the radio module can be easily configured for the project requirements
  5. both transmitter and receiver are contained in one radio module.

hth

Have a nice day and enjoy coding in C++.

As described above, the radio modules (notably the PA+LNA versions) are reliant on a stable power source. While these modules may work with a poor power supply, they often lose packets or fail to receive as many as a module with a better power source. Moreover, this can sometimes be seen in odd ways such as the radio module working better when touched. This again is likely a power stability issue because the radio module is missing a capacitor (a commonly neglected expense on behalf of the module's manufacturer).

Add capacitor(s) close to the VCC and GND pins of the radio. Typically, 10uF is enough. Depending upon your circuit's layout, differences in capacitors' electrolytic properties can be seen, such that a low ESR (Equivalent Series Resistance) rated capacitor is desirable.

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