Synchronised NRF24L01+ Transceiver Pair for Low Power Operation Using the ATtiny1614

This project describes a synchronised transmitter/receiver pair designed so that each part is optimised for long term battery operation. The main hardware is based on a NRF24L01 transceiver module and an ATtiny1614 micro controller.

A synchronisation algorithm ensures that both sides are active only during the processing of the regular transmissions and in a "sleep" mode for the remaining time. To illustrate this design, I have used a very simple application where a passive infrared sensor (PIR) is attached to the transmitter part and buzzer is connected to the receiver part.

This design is contrary to the typical transmitter/ receiver model where the receiver part is permanently active, waiting for any occasional data to be sent from the transmitter part, and it is this which more or less precludes long term battery operation for the receiver part.

The model here is that the transmitter and receiver wake times are governed by a user selectable synchronisation profile which defines a regular transmission interval, together with an algorithm on the receiver side to continually optimise the dead time between the receiver waking, in preparation to receive the transmitted data, and the transmitter sending.

At the conclusion of a successful transmission, both receiver and transmitter effectively sleep. This helps to ensure optimal battery life also for the receiver part.

In the case of a synchronisation failure, a fall back procedure is executed where the transmitter retries at a fixed rate (currently every 10 seconds) and the receiver begins to open a series of corresponding 11 second "receive windows" to capture any transmission.

However, the receiver retry interval diminishes rapidly, to a maximum of one 11 second receive attempt per hour, so that, in the event of complete transmitter failure, the batteries of the receiver are not prematurely exhausted. In principle, the design is such that the transmitter and receiver batteries are loaded approximately equally in both normal and failure operation.

In this model, the transmitter is the master and the receiver must always adapt to it. The transmitter relies on automatically generated "acks" from the receiver to determine if the receiver is in synchronisation.

The solution relies on the RTC timer architecture of the tinyAVR series 1 (and higher) such that, under the low power oscillator, more or less arbitrary "wait" or standby times can be specified. The traditional AVR architecture provides a watchdog timer for these tasks which is much more restrictive for example, limiting the maximum continuous sleep period to 8 seconds. The absolute accuracy of the RTC of either the transmitter or the receiver is not a critical factor because the receiver adapts relative to the transmission interval. Consistency, however, is important and any rapid drift of either clock would cause problems meaning that, especially with the longer synchronisation intervals, the receive window would have to open significantly in advance of an anticipated transmission to ensure a capture of that transmission. This would naturally impact the power consumption of the receiver.

Due to the initialisation overhead of the radio module, the realistic minimum transmission interval for a reasonable battery life may be in the order of 5 to 10 seconds. Hence the solution is appropriate for applications where such latency is acceptable, say in the processing of environmental type data which changes less frequently. It would be completely unsuitable for use in, say, a remote controlled vehicle where latency times much outside the millisecond area would be unacceptable.

Basic tests show that a minimally configured transceiver pair, configured with a 5 minute synchronisation profile can have a battery life (2 x AA cells ) of several years for both the transmitter and the receiver. During the standby times these parts, when optimally configured, consume an incredibly low 0.7uA.

All schematics and code are provided so that anyone interested can duplicate the project.

Synchronised NRF24L01-ATtiny1614 pairs_V1.01.pdf (960.6 KB)

NRF24L01_RX_V1_01P.ino (20.9 KB)

NRF24L01sync_TX_v1_01P.ino (13.9 KB)

1 Like

cool stuff !