NRF24L01 : Fixing Connection Issues

8,012

43

23

Published

Introduction: NRF24L01 : Fixing Connection Issues

About: Mechatronics engineer. In my free time, I make cosplay props using my 3D printing and electronics skills.

Some cheap NRF24L01 modules are affected by connection issues. This can be solved by following these simple steps.

Step 1: The Error

Many of us have been in the following scenario: You are ready to implement wireless communication in a project, you have already connected the modules, loaded the corresponding sketch to your Arduino, and when you try to test everything... It doesn't work. Your modules can't receive and/or transmit data.

The error shown in the screenshot corresponds to the Getting Started sketch, one of the examples included in ManicBug's excellent RF24 library.

If you have already checked that the connections are in the right place and the problem still persists, then it's time to make a few adjustments to your NRF24L01 module.

Step 2: Cleaning the Pins

Due to some manufacturers' poor soldering quality and improper storage, some modules might end up with a grey "crust" over the pins and the underside of the crystal oscillator, as seen in the above photos. This crust can affect the conductivity and/or create electrical noise.

Using a small flat screwdriver or a toothpick, carefully remove the crust. Then, wipe the remaining dust using a dry cloth.

Step 3: Solder a Capacitor

Solder a 10 uF electrolytic capacitor to pins 1 (GND) and 2 (PWR) of the module. Take care to align the positive lead of the capacitor to pin 1 and the negative lead to pin 2.

After you have finished soldering it, trim away the excess leads.

Step 4: Try Again!

Connect the module back to the Arduino and try to run your sketch again!

Share

    Recommendations

    • Water Contest

      Water Contest
    • Oil Contest

      Oil Contest
    • Clocks Contest

      Clocks Contest

    23 Discussions

    Have a NRF24L01 socket adapter but it is still not working. Wh?y

    when I touch the long end of the capacitor to the gnd of module and short end to vcc the arduino restarts. Why?

    2 replies

    Because the short end is -usually- the negative pin of the capacitor. You're connecting the capacitor backwards. Positive should go to VCC, negative to GND.

    Hey man, I tried to do all that you said but no success. I'm getting the same number being read and the only thing that's rising is the ping and I dunno why. It keeps getting bigger and starts from 7000. I'm getting readings even the pong node it's not connected.

    1 reply

    If the ping keeps rising, that means that one of the modules is taking too long to reply. I'd suggest checking the wiring and the code... If all of that fails, then maybe your module is defective or damaged. Unfortunately, most of the modules available online have a very low quality standard.

    Can I use a 4.7uF capacitors? I have a few so I can use them in parallel to get 9.4uF close to 10uF. Should I? Please reply as early as possible. Thanks.

    1 reply

    It's possible, although it wouldn't be very practical. I decided to use a single capacitor because it's easier to solder it in this position.

    will a 1000uf capcitor be safe for the module? I do not have a 10uf capacitor. If it is not I will have to buy. Thanks.

    5 replies

    Yeah, it would be safe... But I wouldn't recommend it. Let me explain: The purpose of this capacitor is to keep a reservoir of energy, as this module is prone to sudden "spikes" in energy consumption. 10uF is a good value for a capacitor because it's small enough so that it would be charged almost instantly when the circuit first powers up, and big enough to provide energy to the module when it suddenly demands more power. However, using a bigger capacitor (1000 uF is a considerably big value) might mean that it'll take longer to charge.

    Thanks for the reply I will search for it but amazon will be my last choice as they sell only in bulk and I need one.

    So I need to solder a 10uF electrolytic and a 0.1 uF ceramic(orange color?) right?

    oh k thanks will try after my arduino mega arrives and the module works.

    i have 0.1uf(103kpf and 104kpf), 1000uf, 2.2uf, 3.3uf and 4.7uf.

    0
    user
    MhAero

    9 months ago

    nice info....

    I have a trouble with my nrf24l01. I want sending IMU data with nrf so when the one of IMU data has been zero, The NRF does not send another non-zero data that located in array and after the zero byte?

    how can i solve this?

    thanks

    I am using an arduino mega and arduino nano and the most important thing is that i powering both the nrf24l01+pa+lna with seperate 3.3 vpower supply and added a 100 uf capacitor but nothing seems to work

    Wow the capacitor fixed it for me!!

    I bought a module for my
    Devo 10 transmitter so that I could get it to fly an Eachine E010 which
    uses the NRF24l01 module. Having soldered my first one in and after a
    lot of attempts not got it working, it just would not bind I bought a
    second one thinking I just had a bad module. I soldered in and triple
    checked all my connections, but still no joy. Binding wouldn't work tot
    he E010. Figuring maybe I've just bought an incompatible module I went
    and ordered something different from China (a 3 in one module which will
    control other quadcopters) which will arrive in a couple of weeks.....
    but I just couldn't leave it alone and looked up reasons for the module
    to not work.

    I honestly didn't think adding this cap would solve
    it, but I was desperate... AND it worked! I am so happy, really really
    grateful for this. Can't thank you enough.

    1 reply

    You're welcome! :) I'm glad to know that this tutorial was useful to you.

    Thanks for putting this together. But, why add the capacitor?

    1 reply

    Some versions of this module tend to draw a lot of energy, which some models of Arduino can't provide. When this happens, the module is unable to work properly.

    The capacitor stores a little amount of power, which can be given to the module when needed.