I've been trying for long time communicate arduino and raspberry pi using NRF24L01 module, for now it has been impossible.

I followed the next tutorial: Tutorial NRF24L01

connections Arduino: CE - 9, CNS - 10........ Raspberry pi 3 model B V1.2: CE - 17, CSN - SPIO CS0 "pin 24"



Arduino OUTPUT


Raspberry output

Pipes setups :

Arduino : radio.openWritingPipe(0xF0F0F0F0E1LL);


pipes = [[0xE8, 0xE8, 0xF0, 0xF0, 0xE1], [0xF0, 0xF0, 0xF0, 0xF0, 0xE1]]

radio.openReadingPipe(1, pipes1)

Thanks for any help!

  • Were you able to figure out the issue ? I am having the exact same problem on raspberry PI side
    – P0W
    Commented Jun 10, 2018 at 18:26

2 Answers 2


Try to correct your PA Power levels, on both sites must be the same. Try to correct your CRC Length, on both sites must be the same. Check if addreses are correctly set: on RPI TX addr must be same as Arduino RX addr and Arduino TX Addr must be the same as RPI addr. First rule: setup must be same on both sides of transmission, and addresses must be mirrored.

I don't used the library given in this tutorial, but it looks like fork of this one: https://github.com/nrf24/RF24 documentation: http://tmrh20.github.io/RF24/

I use this one and it works fine. If you will try this one, I also suggest to use examples included in this library as starting point.

  • I have exactly the same issue as of OP, when I use python code, however with the C++ gettinstarted.cpp, I get a crash. I posted this here . You mentioned to correct CRC Length, how do I correct those, it says disabled on raspberry Pi side, as seen by OP as well.
    – P0W
    Commented Jun 10, 2018 at 18:25

This answer fixed my issues

In lib_nrf24.py in function:

def begin(self, csn_pin ... after self.spidev.open add:

self.spidev.max_speed_hz = 4000000

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.