For a project in progress, I have an Arduino UNO sending a message when a condition occurs, and a Raspberry Pi that listens to it. Both are fitted with NRF24L01+ modules with antennas.

It works perfectly when the Arduino is powered from a wall socket, for instance using a 9V / 1A power supply. But when I try it with a 9V battery (which is supposed to supply 600 mAh), the Raspberry Pi receives only 1/10 of the messages.

Could you tell me:

  1. Why this happens
  2. How I can solve this problem (software / wiring / capacitor / ...)
  3. What would be the best way to power an Arduino whose only job is to detect that a switch closes, and emit a message over the air

Here is the code of the emitter (Arduino). And there is the code of the receiver (Raspberry Pi).

Thank you.

  • 1
    600mAh is capacity, not current. – Ignacio Vazquez-Abrams Mar 22 '15 at 17:31
  • 4 rechargeable AA batteries (4 x 1.2V)(bypassing the voltage regulator). Note that you will probably only get a few days of usage out of batteries, because you are using an UNO, since the USB-to-Serial chip doesn't sleep. – Gerben Mar 22 '15 at 17:49
  • Actually I think I should be able to use just two AA batteries. I was just testing the design on the UNO. It's really not a low power device... The regulator sucks a lot of current, and there is the power LED. So it's probably using most of the juice of the 9V battery already, doing nothing. – tiktak Mar 24 '15 at 15:47

According to the datasheet of another 9V battery, I should not expect more than 30 - 50 mA of constant current. This is probably the reason why.

Long story made short: One can not power a NRFL01+ reliably with a 9V battery. I'd be better off using 2xAA batteries.

| improve this answer | |
  • According to my measurements, the Uno would take 50 mA from a 9 V battery. You are already at the upper end of the range you quoted. Now power up a transmitter and the voltage probably drops so low it fails. One can not power a NRFL01+ reliably with a 9V battery - more like, "One can not power a Uno reliably with a 9V battery". – Nick Gammon Jul 28 '15 at 4:50
  • 1
    I'd be better off using 2xAA batteries. - why not 3xAA batteries? That's only 4.5 volts. Put it straight onto the 5 V pin. – Nick Gammon Jul 28 '15 at 4:50
  • Does anyone have idea/guess, for how long it will run on 3xAA batteries ? – Bhushan Oct 19 '16 at 7:39

Another thing to consider is that a nrf24l01+ chip at full power will potentially be pulling more current than your 5v reg can supply, try a lower power setting on the PA.

| improve this answer | |
  • This is exactly the opposite. NRF24L01+ draws maximum 14mA of current. Arduino Uno board draws much much more. – Avamander Aug 17 '15 at 23:03

Add a 100uf capacitor between ground and 3.3v directly on the nrf breakout. They're very susceptible to noise on the power supply. I had issues with the same thing and this solved it. Also, make sure you're powering from 3.3v. Also make sure you solder the negative to the negative!

see capacitor placement

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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