This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

The receiving frequency of the NRF24L01+ is different from the transmitting frequency, but the data can be received.

When the transmitter frequency is 2445MHz and the receiver frequency is 2413MHz, the receiver will receive the data from transmitter correctly. Not only the receiver can receive the data, but also the data content is exactly the transmitter sent.

The transmitter using a PA, the power of the transmitter is 20dbm.  Within the distance about 5 meters, the receiver will get about 15% data packets. If the distance is much longer, the receiver can not receive the data.  

We have set the frequency to 2445MHz both the transmitter and the receiver. The distance between transmitter and the receiver can be more than 150 meters. And the receiver can get more than 99% packets when their distance is less than 5m meters.

And we also set the transmitter to 2445Mhz, and set the receiver to 2412MHZ, 2414MHZ, 2444MHz, 2446MHz, the receiver can't get any data from the transmitter.

I think it impossible. But the problem is really affect our product. Please help me. Thanks!

Parents
  • Hello, it is not impossible but has to do with sampling and filtering for GFSK and Nrf radios. Disclaimer: I base my experience on Nrf5 SOCs not NRF24, but since they use the same modulation and probably share some technology ...

    Note that the offset that "passes" is at a 32MHz offset, whereas the data sheet talks of an internal clock at 16MHz (but maybe some derived oscillator is even using 32MHz). When sampling a GFSK signal that is precisely 32MHz off with a circuit at 16MHz, if there were no band pass filter, it would look the same! It is a stroboscopic effect. You may think of a video of a helicopter where you seem to see a slow rotation, sometimes even in the wrong direction. That is, because the actual rotation frequency is close to a multiple of the frame rate! A similar thing happens in GFSK sampling.

    However, while you may not see it in an Nrf24L01 (no RSSI measure ? ), the received signal strength is much reduced by the bandpass filter, probably at least by 50dB. That is why you receive less packets (more sensitive to noise) than on the "right" channel.

    However, what you must understand: while you CAN receive packets on such harmonic channels if you LISTEN to their address, they are unlikely to harm a reception of a packet in the correct channel IF THE ADDRESS IS DIFFERENT. Why is the address important:

    The receiver really starts to receive a package once a valid address is received. Now imagine this setup:

    Transmitter A at 2445 MHz, transmitter B at 2413MHz, receiver C at 2413MHz.

    When A transmits and B does not, C MIGHT capture the signal from A.

    When B transmits or both A and B transmit, the signal strength of B probably dominates. A adds noise all right, but only when B is much further away this will affect reception by C.

    Here comes the importance of the address in order to avoid collisions: if A and B use the same address and B starts transmitting a packet before A, no problem. However, if A starts before, C might receive the address and the radio is receiving payload while B is transmitting the address, Boom, the packet of B is not received and the packet of A is corrupted.

    If they used distinct addresses, the chances of C starting reception of A is VERY low.

    While addresses will be standard for discovery (they need to be known in advance) they will probably be different for links. In such a scenario, you may receive advertisement packets on the wrong channel, but your links won't be affected.

  • Thank you for your reply! 

    You are right! I have test several group frequency point whose offset it 32MHz, and the receiver can receive the data from the transmitter.

    The oscillator of the NRF24L01+ is 16Mhz. But the receiver can't get the data from the transmitter when their offset is 16MHz. Why is that?

    How can I solve or avoid this problem? Because the frequency hoping is used in our product. If the receiver get the data from the wrong channel, they can't synchronize correctly.

  • tin39 said:
    How can I solve or avoid this problem?

    I suggest to set one of the address bytes to the frequency you are operating on.

    Best regards,
    Kenneth

  • Thank you for your reply! 

    But in my system, the address of one device is fixed and should not be modified. So is there any way to avoid the problem?

  • Add the frequency in the payload?

    Best regards,
    Kenneth

  • Is there any possible modify the hardware to solve the problem? Because the protocol can't be modify in my current product. 

    I will add the frequency information in payload in other products.

  • It is this way by design, so it is possible to receive (with very low sensitivity) on a different frequency if the address and packet format is the same yes.

    Best regards,
    Kenneth

Reply Children
No Data
Related