3

I want to start a project where I distribute many nRF24L01+ modules across the house. I am pretty sure someone has done that before. But before I wanted to begin I evaluated the modules using two Arduino UNOs and noticed two things:

  • Despite the possibility to select one of 126 RF channels. I get no reception on most of them.

    First I thought that is because of interference with other WiFi and Bluetooth devices. So I performed a scan using the RF24/Scanner sketch. But it wasn't it.

    I made a setup where I placed both transceivers on a table with 1m distance and played Ping-Pong. For each channel I sent out 1024 messages, counted the received messages on the other node as well the returned ACKs and ACK payloads.

    The result was rather surprising. Less than a half of all the channels are reliable.

    facing away - number of received messages

    The sad thing is that those channels are also the most commonly used by WiFi networks.

  • That brought me to the second point. I thought the PCB antenna on the module might be not optimal for all frequencies but for one. So I made some research on PCB antennas. A PDF from Cypress on p. 13 suggests that the PCB antenna is emitting most of its energy to the right. But on my setup I had them facing away from each other.

    I rerun the test with a different orientation of the modules. This time facing each other. I expected to get a wider range of channels that are usable this way. But it turned out the other way around.

    facing each other - number of received messages

So now I'm wondering if someone ever noticed the spectral sensitivity and directivity of nRF24L01+ modules and/or can point me to.

Glorfindel
  • 1,245
  • 3
  • 15
  • 20
kwasmich
  • 131
  • 3
  • It is a very good question (I don't know the answer), but it belongs to Electronics stack exchange. – Michel Keijzers Jan 26 '18 at 11:04
  • 1
    I’ve heard that those module don’t work very well at very short distances. Either move them further apart, or lower the transmit power (RF24.setPALevel()). – Gerben Jan 27 '18 at 10:54
  • 2
    That did the trick for me. Now I have 100% reception on all 126 channels. Where did you hear about that? If you put your comment into an answer, I will be happy to accept that. – kwasmich Jan 27 '18 at 14:54

0 Answers0