nRF24L01 Won't Work Using Battery

Hi, I'm testing my nRF24L01 modules when connected to Arduino Pro Minis (3.3V, 8 MHz). The Pro Minis are powered by two 3V coin cell batteries. My Pro Minis only have two VCC pinouts and I need one of them to connect the Pro Mini to a FTDI. I plan to use the other VCC pinout for MPU6050, so I connected the nRF24L01 VCC to one of the SPDT switch terminal along with the RAW pinout in the Pro Mini. The wiring diagram is attached.

WIRINGS
SPDT switch - VCC nRF24L01
Pro Mini GND - GND nRF24L01
Pro Mini 8 - CE nRF24L01
Pro Mini 10 - CSN nRF24L01
Pro Mini 13 - SCK nRF24L01
Pro Mini 11 - MOSI nRF24L01
Pro Mini 12 - MISO nRF24L01

I used this wiring system to 6 Pro Minis. 2 of them works just fine using the batteries, but the rest only work when I connect the Pro Minis to the FTDI. The moment I disconnected the FTDI and turn the batteries on (using SPDT switch), the data won't be transmitted. I only send numbers 0, 1, 2, 3,... to an Arduino Uno. The code I'm using is as below.

//NRF24L01
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   8
#define CSN_PIN 10

const byte slaveAddress[5] = {'R','x','A','A','I'};

RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

unsigned long currentMillis;
unsigned long prevMillis;
unsigned long txIntervalMillis = 1000; // send once per second

int data = 0;

void setup() {
    //nRF24L01 Setup
    Serial.begin(9600);
    Serial.println("SimpleTx Starting");
    radio.begin();
    radio.setDataRate( RF24_250KBPS );
    radio.setChannel(108);   
    radio.setRetries(3,5); // delay, count
    radio.openWritingPipe(slaveAddress);
}

//====================

void loop() {
    currentMillis = millis();
    if (currentMillis - prevMillis >= txIntervalMillis) {
        send();
        prevMillis = millis();
    }
}

void send() {
    bool rslt;
    
    
    rslt = radio.write( &data, sizeof(data) );
        // Always use sizeof() as it gives the size as the number of bytes.
        // For example if dataToSend was an int sizeof() would correctly return 2

      Serial.println(data);
    if (rslt) {
        Serial.println("  Acknowledge received");
    }
    else {
        Serial.println("  Tx failed");
    }
    data++;
}

I have no idea why only 2 out of 6 Pro Minis can transmit the data just fine while the rest only transmit the data when powered by the FTDI. Im using the exactly same code and wiring system. Is there any suggestion on why this happened? Thank you.

Edit:
I tried some other boards and they just don't work at all. Not even when I connected the Pro Mini to the FTDI. I used the same wiring and the same code to all boards, but the results varies from working just fine to not working at all. Is there any clue on why some of my nRF24L01 won't work? Thank you

The NRF24L01 transmit function might require more current than a coin cell battery can provide. Depends on the power setting.

You could try adding a 1000 uF cap, or a 3.3V supercap (0.5 to 1.0 F) across the NRF24L01 power and ground pins, as done in this solar powered Arduino project.

Hi jremington, thank you so much for answering my post!

For those Pro Minis which only work using FTDI:
In one of my desperate episodes, I tried to connect the FTDI while the Pro Minis are running on batteries (without having the FTDI connected to my laptop as usual) and by some unknown miracles it worked! I seriously have no idea on how or why, but it did the trick.

For those Pro Minis which don't work at all:
I don't have any capacitors with me right now, so I kinda tried to power it using 3 coin cell batteries (3V each) and then I tried to power it using FTDI alone but they wouldn't budge. I haven't try using a capacitor (since I don't have any of them right now, sorry about that) but is there any other suggestion on why my modules won't work?

Thank you so much in advanced.

Have you checked to see if everything works when (temporarily) powered by a pair of AA alkaline cells (3v) as they can provide a lot more current than the coin cells.

A 10µF (or larger) capacitor across Vcc and GND for the nRF24 module is pretty much essential.

…R
Simple nRF24L01+ Tutorial

Hi Robin2, thank you for replying my post.

I will try using another battery to check if the module is working properly. Thank you for your suggestion!

I'm currently ordering 1000 uF capacitors (16V) as jremington had suggested before. Can I still use those coin cells after adding capacitors to the circuits? I need to make the circuit as small as possible, so using coin cell batteries is my best choice.

Also, do I connect the capacitor this way? (Image below) (I took the image from here as reference)

Thank you so much in advance.

lisakeizia:
Also, do I connect the capacitor this way? (Image below) (I took the image from here as reference)

That will work fine. However it is not essential to have the capacitor actually connected to the nRF24 as long as it is close to it.

...R

Robin2:
That will work fine. However it is not essential to have the capacitor actually connected to the nRF24 as long as it is close to it.

Thank you! I will update the result when the capacitors arrive.

On the other hand, I tried powering my Pro Minis using a 9V battery (I don't have any 3V AA batteries at the moment) and the data still won't be transmitted. Does this mean my modules are broken?

I tried powering my Pro Minis using a 9V battery

How, exactly? Please post a hand drawn wiring diagram. How did you connect the "3 coin cell batteries" when you tried that?

The radio will be instantly destroyed if you connect it to 9V.

lisakeizia:
On the other hand, I tried powering my Pro Minis using a 9V battery (I don't have any 3V AA batteries at the moment)

The issue is how are you powering the nRF24, not the Pro Mini.

And I don't have 3v AA batteries either. I use a pair of regular 1.5v alkaline cells to get 3v.

...R

jremington:
How, exactly? Please post a hand drawn wiring diagram. How did you connect the "3 coin cell batteries" when you tried that?

The radio will be instantly destroyed if you connect it to 9V.

I actually used the same wiring that I posted before. The hand drawn version is posted in attachment below. I hope what I drew is what you had asked.

The positive side of the batteries are connected to a SPDT switch (center terminal). One of the other terminals are connected to power the Pro Mini and nRF24L01.

Now that you said it, I might have destroyed one of my modules yesterday :o .

Robin2:
The issue is how are you powering the nRF24, not the Pro Mini.

And I don't have 3v AA batteries either. I use a pair of regular 1.5v alkaline cells to get 3v.

...R

The VCC of the nRF24 is connected to the SPDT switch along with the RAW pinouts of Pro Mini. You can see the wiring diagram that I posted before or in the attachment of this post.

I tried using two 1.5V alkaline cells to power it (still with the same wiring as I used before) and they still won't transmit anything. I used these alkaline cells to power different circuit than the one that I might have destroyed using 9V batteries and still nothing. Did I accidentally destroyed the modules while desoldering the pinheads and soldering the nRF24 to the Arduino?

Thanks to both of you for answering me!

Using 3x3V batteries in series, as shown in the drawing, most likely destroyed the radio module.

The modules should easily tolerate soldering the connections to the pins, but check very carefully, using a magnifying glass, that the connections are shiny and clean, with no "solder bridges" between pins.

jremington:
Using 3x3V batteries in series, as shown in the drawing, most likely destroyed the radio module.

Goodness, I destroyed one of them for sure. I initially used two 3V batteries in series. Will that destroyed the module as well? After I add the capacitor, will it be fine to use two 3V batteries in series?

jremington:
The modules should easily tolerate soldering the connections to the pins, but check very carefully, using a magnifying glass, that the connections are shiny and clean, with no "solder bridges" between pins.

I cleaned the solder bridges that came from the manufacturer when I removed the pinheads. I'm quite sure it's all clean now.

Thank you again for answering me!

lisakeizia:
The hand drawn version is posted in attachment below.

Please make your image visible in your Post so we don't have to download it. You did that with your earlier images.

...R

Robin2:
Please make your image visible in your Post so we don’t have to download it. You did that with your earlier images.

…R

I edited the post. You can check it out.

After I add the capacitor, will it be fine to use two 3V batteries in series?

NO. The radio runs on 3 V.

This tutorial may help.

jremington:
NO. The radio runs on 3 V.

This tutorial may help.

Okay, I might have burned all my radios by using 6V all this time.
To summarized it, I should have used only one 3V battery to power it and add a capacitor to the radio module? Will it still be okay for me to use the coin cells? Will it finally provide enough current when I add the capacitor despite using a 3V coin cell battery?
I'm sorry if I sound stupid, thank you for putting up with me. Thank you for the tutorial!

I should have used only one 3V battery to power it and add a capacitor to the radio module?

Correct, but the capacitor may not solve the problem. Coin cells are not designed to supply much current.

Coin cells are generally intended for very low power circuitry, but come in different current capacities. So, if the capacitor does not solve the problem, try using two cells in parallel (equivalent to a thicker 3V coin cell).

jremington:
So, if the capacitor does not solve the problem, try using two cells in parallel (equivalent to a thicker 3V coin cell).

Okay! Thank you so much for the solution! I will update the result after I modified the circuit.