Hi all, I am designing a low power project using nRF24l01 module and when trying to set the PA level to minimum to save power, the current consumption is showing no change in any of the PA level.
Here's my code
#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
#include <LowPower.h>
RF24 radio(10, 9); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 00; // Address of this node in Octal format ( 04,031, etc)
const uint16_t node01 = 01;
int i = 0;
void setup() {
SPI.begin();
radio.begin();
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
network.begin(90, this_node); //(channel, node address)
radio.stopListening();
}
void loop() {
network.update();
RF24NetworkHeader header(node01); // (Address where the data is going)
bool ok = network.write(header, &i, sizeof(i)); // Send the data
delay(1000);
i++;
radio.powerDown();
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}
Are you using something to measure that current that can detect the current pulse that only occurs when the message is transmitted? If it is a digital multimeter, that cannot measure such a current pulse. You need to use an oscilloscope.
As per the datasheet, there is a noticeable difference of current consumption in 0 dbm and -18 dbm settings. Still I will check it in oscilloscope and update the same. Thank you.
Meanwhile is there any other way I can minimise the power consumption of the nRF.
Yes, but I presume thats the datasheet for the nRF24 itself.
The addition of the PA changes things, some of the PAs used are fairly linear, but some versions are not and will produce close to maximum RF power even when the NRF24 is set to minimum power.