nRF24L01+ connection, communication errors and solutions

If you want to use nRF in your projects, even if you are not getting any errors, read my post before starting…

Check wiring

First of all; if you are able to make custom PCB at home, work with PCB. When I was using jumping wires most of the times I suffered loose connection between instruments and breadboards. If you can’t be sure your wiring is correct. Use a multimeter for both pins are shorted or not and tape wires and instruments.

If you’re following a tutorial or sample, do exact wiring in it. After understanding all pins’ meaning you can do modification. Do not rush for it!


Read documentations

nRF24 has too many library for all platforms. Pick the most starred one at the Github for your programming language and read the docs. If you rush and try immediately (like I did), you may burn the IC. Easiest ex: nRF is not working with 5 volts!

Node: https://www.npmjs.com/package/nrf24

Arduino: https://github.com/nRF24/RF24


Check soft-side connection

After you think you’re good-to-go add your code checking the is connected or not. (below codes belong to libraries above)

Arduino:

radio.isChipConnected()

Returns true if connected properly.

NodeJS

// `nrf24` variable name may be different at your tutorial.
nrf24.begin(true); 

Returns true if connected.


Check information

At the libraries there is function/method for printing information. Output is like:

STATUS		 = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1	 = 0x00000027e5 0x0000000067
RX_ADDR_P2-5	 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR		 = 0x00000027e5
RX_PW_P0-6	 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA		 = 0x3f
EN_RXADDR	 = 0x02
RF_CH		 = 0x78
RF_SETUP	 = 0x07
CONFIG		 = 0x0e
DYNPD/FEATURE	 = 0x3f 0x04
Data Rate	 = 1MBPS
Model		 = nRF24L01+
CRC Length	 = 16 bits
PA Power	 = PA_MAX

I’m not going to explain what are these one-by-one, search and learn. Best way to understanding.

Below properties must be same at both - sender and receiver - side.

- CRC Length

- Channel

- Dynamic payloads

- Payload size (if you are not using dynamic payload)


Outro

This post is not finished yet. If you got problems, questions etc feel free to contact me.

· electronic, nrf24