Low Battery Communication Report
Low Battery Communication Report
1 Introduction
Each wireless sensor node comprised of
microcontroller, sensor, transceiver (Transmitter and
receiver ) and battery. WSN's use Time Division Duplex
(TDD) protocol to communicate. WSNs are used in so
many areas to monitor physical parameters of systems
such as heat, pressure, light, humidity and so on. WSN
are power constrained devices. So to improve their life
time and performance, it is important to know how they
perform in various environments, various distances
between transmitter and receiver systems, various battery
voltage levels of transmitter and receiver devices.
3 System Design
In this experiments we used Arduino nano [1]
board, which has Atmel microcontroller ATmega328[2],
Nordic Semiconductor nRF24L01+ [3] 2.4 GHz
transceiver. Arduino nano operates with input voltage
levels between 7-20 V. The Arduino nano has 5V
operating voltage (logic levels). The nRF24L01+
transceiver has operating voltage levels between 3.3-1.7
V. The ATmega328 microcontroller which is present on
Arduino nano board has Serial Peripheral Interface
(SPI ) [4] protocol interface to communicate with
peripherals . The SPI protocol has clock line, data lines,
slave select lines. The nRF24L01+ transceiver has builtin SPI interface. To convert Arduino nano logic levels
from 5 V to 3 V of nRF24L01+ transceiver , We used
Texas Instruments 8-channel Bi-directional logic level
converter - TXB0108 [5].
4 Approach
In this experiments we used two different approaches to
measure packet error rates for various distance at
different environments with full voltage (3V) for
transceiver and near cutoff voltage (1.7 V) of
transceivers. In one configuration, we kept receiving
WSN node transceiver at full voltage 3V and varied
transmitter WSN transceiver supply voltage from 3.3 V
to 1.5 V and took PER measurements for fixed distance
between them.
4.1 Approach I
First approach is based on Manicbug's [6] RF24
library and RF24Network library. Using above libraries
we created loop back from transmitter to receiver to
measure packet success/error rates based on successful
reception of acknowledgement. We sent 250 packets as
one transaction, one packet at a time from transmitter
side and waited for receiver acknowledgements. If we
received ACK, we considered it as successful
transmission. We incremented counter value based on
ACK count. Finally computed percentage of packet
success rate as total number of received ACK's divided
by total number of transmitted packets. From this we
computed packet error rate as 100 minus packet success
4.2 Approach II
Second approach is based on the device drivers for
nRF24L01+. Using above the device drivers , we were
able to modify register values of nRF24L01+ . So we had
greater control over the code, which is running on the
ATmega328 code. Using this code, we created loop back
from transmitter to receiver to measure packet
success/error rates, based on successful reception of
acknowledgement. We sent 250 packets as one
transaction, one packet at a time from transmitter side
and waited for receiver acknowledgements. If we
received ACK, we considered it as successful
transmission. We incremented counter value based on
ACK count. Finally computed percentage of packet
success rate as total number of received ACK's divided
by total number of transmitted packets. From this we
computed packet error rate as 100 minus packet success
rate. For consistency we took average value for 10
transactions ,where each transaction consist of 250 packet
transmission.
We used shell script and gnuplot to plot live results in
this approach.
5 Results
We measured and created graphs for packet error rates
for various environments and for different distances. We
observed packet error rate performance near cutoff
voltages. We set retransmission count value of
nRF24L01+ transceiver to zero, to measure packet error
rate.
6 Conclusions
We observed packet error rates for various transceiver
battery levels, various transmit RF power levels, various
environments and various data rates. We observed that
greater the distance, greater the packet error rate. At near
cutoff voltage levels packet error rates increases rapidly.
But it is still possible to have communication link
between transmitter and receiver using multiple
retransmissions at near cutoff battery voltage. Once
voltage levels falls far below the cutoff voltage, then
there is no connection exist between transmitter and
receiver. Because of both transceivers are switched
OFF. The lower RF power levels contributes to more
packet error rates, because of Signal to Noise Ratio
(SNR) is decreases with decrease in transmit RF power
level.
Acknowledgments
We would like to thank our supervisors professor
Christian Rohner and professor Uwe Zimmermann for
their suggestions, discussions and guidance.
6 References
1.http://arduino.cc/en/Main/arduinoBoardNano
2.http://www.atmel.com/devices/atmega328.aspx
3.http://www.nordicsemi.com/eng/Products/2.4GHzRF/nRF24L01
4.http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
_Bus
5. http://www.ti.com/product/txb0108
6. https://github.com/maniacbug