How to achieve low power in NRF24l01 when receiving

I am programing a NRF24l01 with a attiny84 micro controller. I am planning to power the setup using a small battery (about 50mah). But in the data sheet it says that the NRF24l01 uses roughly 12.3mA in Rx mode. I have put the attiny 84 to sleep and wake up when the transceiver receives a receiving a packet. But setting the transceiver always on Rx mode is not power efficient.

Can the transceiver receive packets on stand by mode or any other low power mode ? If not what can I do ? I do not know when the packets will be received. So I cannot periodically turn on the transceiver as well.

What else can I do?

Sorry the receiver have to be on to receive any messages

something that can work are using REUSE_TX_PL on the transmitter (look for it in nrf data sheet) and just pump out messages for lets say 1 sec and on the receiver wake up once per sec just long enough to receive a message if there is one to receive

using REUSE_TX_PL will pump out hundreds, maybe thousands of messages per sec so you wont have to listen for long to get one

not sure if there is any library that will support using REUSE_TX_PL I used some custom code to make it work but I cant find it right now

Might be a starting point at least
Best of luck

Could you change the Attiny so it is the transmitter - then it can have complete control of the timing. If it needs to get data from the other Arduino then you could use the AckPayload feature. See the second example in this Simple nRF24L01+ Tutorial

...R

swe-dude:
Sorry the receiver have to be on to receive any messages

something that can work are using REUSE_TX_PL on the transmitter (look for it in nrf data sheet) and just pump out messages for lets say 1 sec and on the receiver wake up once per sec just long enough to receive a message if there is one to receive

using REUSE_TX_PL will pump out hundreds, maybe thousands of messages per sec so you wont have to listen for long to get one

not sure if there is any library that will support using REUSE_TX_PL I used some custom code to make it work but I cant find it right now

Might be a starting point at least
Best of luck

What you mean is that even though the transceiver is asleep when a packet has been transmitted by someone else it can wake up and collect that packet ?. Is that what you mean.

No you set the transmitter to continuously transmit the message you want the attiny84 receiver to get and then you power on the attiny84 for just long enough to receive a message

But the transmitter can only continuously transmit for a few sec max

So when you want to send a message to the receiver you transmit message for 1 second

And on the receiver side (attiny84) you power on the receiver long enough to get a message and you do this once every second this way you only have to listen for a few milliseconds or so.

swe-dude:
So when you want to send a message to the receiver you transmit message for 1 second

And on the receiver side (attiny84) you power on the receiver long enough to get a message and you do this once every second this way you only have to listen for a few milliseconds or so.

You have to make sure that the transmitting periods and the listening periods overlap.

Much easier, IMHO, to use the Attiny as the transmitter.

...R

Robin2:
Could you change the Attiny so it is the transmitter - then it can have complete control of the timing. If it needs to get data from the other Arduino then you could use the AckPayload feature. See the second example in this Simple nRF24L01+ Tutorial

...R

Thanks I will take a look

Robin2:
You have to make sure that the transmitting periods and the listening periods overlap.

Much easier, IMHO, to use the Attiny as the transmitter.

...R

I have seen in one of your posts that you have designed a pcb antenna for testing nrf24l01. Can you please tell me how to design a pcb antenna reading the datasheet. If you have a blog post or any tutorials please provide me a link. Thank you

Senuda_Jayalath:
I have seen in one of your posts that you have designed a pcb antenna for testing nrf24l01.

You must have misunderstood. I was referring to the PCB antenna that is standard on the low-power nRF24 modules. Designing 2.4Ghz antennas is far beyond my pay grade :slight_smile:

...R

Robin2:
You must have misunderstood. I was referring to the PCB antenna that is standard on the low-power nRF24 modules. Designing 2.4Ghz antennas is far beyond my pay grade :slight_smile:

...R

Is there anyway to incorporate that antenna to another pcb? What is your suggestion for operating NRF24l01 module without the antenna. Then we will have to fix an external antenna. But if you have size constraints what is the best option ?

Senuda_Jayalath:
Is there anyway to incorporate that antenna to another pcb? What is your suggestion for operating NRF24l01 module without the antenna. Then we will have to fix an external antenna. But if you have size constraints what is the best option ?

Like I said earlier, I know nothing about antenna design. I do know that an antenna is essential.

The Nordic nRF24L01+ datasheet has advice about PCB layout.

...R

Senuda_Jayalath:
What is your suggestion for operating NRF24l01 module without the antenna.

Dont operate the module without an antenna !

If you must have an external antenna then a simple 1/4 wave wire ought to work, assuming its kept away from the PCB or other bits.