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…
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!
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!
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)
true if connected properly.
// `nrf24` variable name may be different at your tutorial. nrf24.begin(true);
true if connected.
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
- Dynamic payloads
- Payload size (if you are not using dynamic payload)
This post is not finished yet. If you got problems, questions etc feel free to contact me.