Download PERPETUAL ENVIRONMENTALLY POWERED SENSOR

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Stray voltage wikipedia , lookup

Grid energy storage wikipedia , lookup

Power engineering wikipedia , lookup

Electric battery wikipedia , lookup

Resonant inductive coupling wikipedia , lookup

Switched-mode power supply wikipedia , lookup

Surge protector wikipedia , lookup

Buck converter wikipedia , lookup

Mains electricity wikipedia , lookup

Alternating current wikipedia , lookup

Voltage optimisation wikipedia , lookup

Opto-isolator wikipedia , lookup

Transcript
PERPETUAL ENVIRONMENTALLY POWERED SENSOR NETWORKS
Xiaofan Jiang, Joseph Polastre, and David Culler
University of California, Berkeley
Computer Science Department
Berkeley, CA 94720
ABSTRACT
Environmental energy is an attractive power source for low
power wireless sensor networks. We present a system that
intelligently manages energy transfer for perpetual operation without human intervention or servicing. Combining
positive attributes of different energy storage elements and
leveraging the intelligence of the microprocessor, we introduce an efficient multi-stage energy transfer system that
reduces the common limitations of single energy storage
systems to achieve near perpetual operation. We present
our design choices, tradeoffs, circuit evaluations, performance analysis, and models. We discuss the relationships
between system components and identify optimal hardware
choices to meet an application’s needs. Finally we present
our implementation of a real system that uses solar energy
to power Berkeley’s Telos Mote. Our implementation uses a
two stage storage system consisting of super capacitors (primary buffer) and a lithium rechargeable battery (secondary
buffer). The mote has full knowledge of power levels and
intelligently manages energy transfer to maximize lifetime.
1
INTRODUCTION
An essential element of the sensor network vision is the creation of sustainable computing - nodes that run perpetually
using ambient energy in their physical environment. In most
outdoor settings, the most accessible environmental energy
source is solar. While photo-voltaic (PV) power systems are
in widespread use in many settings, the design of a PV system for perpetual operation of ultra-low power wireless sensor nodes presents a number of unique challenges. It should
be simple, robust and operates with no human intervention
for many years. Duty cycle and power requirement are low
for sensor networks, but the load varies over a huge range–
microwatts in standby and milliwatts when active. Many
applications operate at low duty cycles in unpredictable environments, so the operation of the system should adapt to
the available energy reserve. Finally, the physical deterioration of the energy storage device is generally the overall limiting factor of lifetime of the device. For example,
rechargeable batteries have about 300 to 500 recharge cycles, resulting in at most one to two years of operation if
Fig. 1. System Model
charged daily. This paper presents the design and implementation of Prometheus, an extremely long duration solar
power subsystem for the most recent wireless sensor network mote–Telos [5]. The key design challenge is reducing the strain on storage elements while preserving a simple
hardware and software architecture. We discuss the design
of an intelligent system with lightweight and efficient hardware combined with powerful software that actively manage
the power subsystem for perpetual operation.
2
BACKGROUND AND RELATED WORK
Our architecture presented in Figure 1 reflects most environmental power systems in existence today (see [8] and [7] for
more systems). They consist of four main components: an
energy source, buffer, charge controller, and consumer. An
energy source provides a certain amount of current under
particular environmental conditions, such as solar energy.
An energy consumer, such as a wireless sensor node like
the Telos mote, has various operational modes where each
mode may have an order of magnitude different current consumption. An energy buffer accumulates charge during periods of ample energy source and delivers charge during the
remainder. Energy buffers are typically capacitors, super
capacitors, or rechargeable batteries. Finally, a charge controller replenishes buffers and provides the desired voltage
or current to a consumer.
Several research efforts have prototyped the use of envi-
ronmental energy to power wireless sensor networks [3, 6,
10, 1]. We drew heavily on a design by UCLA described
in [3]. It powered the earlier MICA mote [9], which has
a more demanding power profile than Telos mote used in
our system. The UCLA design has only a secondary buffer
consisting of a NiMH rechargeable battery and simple hardware to control energy transfers. Since solar energy directly
enters the battery, it experiences recharge cycles daily placing significant stress on the battery. This limits the system’s lifetime to a couple years. Such a lifetime is not
dramatically larger than that obtainable with batteries alone
and far from perpetual operation. PicoRadio [6] considered rechargeable batteries but dismissed it due to limited
recharge cycles. Instead, the system only used capacitors.
When the energy source disappeared, the system experienced outages within only a few hours. Our system addresses the recharge cycles concern through advanced charging control. MIT’s Cricket [1] includes a capacitor to buffer
current surges but does not operate without constant solar
energy input. Because the wireless node is carefully designed for low power operation, its load is far lower than
and does not require the complex and energy consuming
power control logic in ZebraNet [10].
3
DESIGN AND ANALYSIS
Figure 1 shows our implementation of a generic architecture
that uses dual buffers and permits intelligent energy transfers. It addresses a range of environmental and application
requirements by sizing the hardware components appropriately and through software support on the microcontroller
(discussed in Section 4.5). The primary operating mode of
our system is to use a volatile primary buffer to collect environmental energy and to power the sensor node, while using
the second buffer as a reliable emergency backup.
3.1
Environmental Energy Source
Solar energy is one of the most abundant and accessible
types of environmental energy. However, in most latitudes
we only expect a few hours of direct sunlight, so a large
buffer is needed to power the node through the night.
Solar cells come in various sizes providing different voltages and currents. We can wire them in parallel to increase
current or in series to increase voltage. In general, increasing the area or light intensity produces a proportionate increase in current. Typical solar cell efficiency is around 18%
[7], corresponding to power output of about 18mW/cm2 under direct sunlight.
If we fix the voltage by choosing a configuration satisfying the voltage requirement of the system, we can model
the environmental energy source simply as a power source:
PE (t) = Punit (t) ∗ A
(1)
where Punit (t) is power per area or per solar panel, and A
is the area or number of solar panels connected in parallel.
For 6 hours of direct sunlight and 18 hours of darkness,
the model becomes a pulse wave of 25% duty cycle with
magnitude equal to the maximum power generated.
Since the energy capacity of the primary buffer is finite,
a very high PE (t) is unnecessary. We only need enough to
charge the primary buffer. The size of the solar panel should
be determined based on how fast the primary buffer should
be replenished.
3.2
Wireless Sensor Node
The sensor node influences the system’s power consumption
by changing its duty cycle. It can be modeled as a power
sink of periodic pulses. The power is dependent on three
parameters: duty cycle D, active mode current Iactive , and
sleep mode current Isleep . In most cases, we are only interested in the average power consumption (assuming wakeup
time is negligible):
PCAV G = Vsupply ∗ (D ∗ Iactive + (1 − D) ∗ Isleep ) (2)
Eq.2 implies that Iactive , Isleep , and Vsupply should be as
low as possible when selecting a wireless sensor node. Isleep
is often negligible for sensor nodes. D is chosen by the application, therefore if the application knows the energy levels of the two buffers, it can adjust duty cycle intelligently.
Furthermore, when in a network, this information can be
shared across nodes to make routing decisions (Section 4.5).
3.3
Primary Buffer
The primary buffer needs to handle high levels of energy
throughput and frequent charge cycles since it buffers volatile
inputs from the energy source. Since the active load is large
compared to the average load, the primary buffer incurs a
recharge cycle on every duty cycle of the node. Rechargeable batteries are typically rated for a few hundred charge
cycles and, although they can endure many more shallow
charge cycles than the advertised rating, their lifetime is
significantly decreased by frequent charge cycles. Capacitors have virtually infinite recharge cycles and are ideal
for frequent pulsing applications. Historically capacitors
are rarely used as primary power due to their limited capacity, but large capacity super-capacitors are now a viable
option. Unfortunately, super-capacitors have higher leakage current, larger size, and cost. The capacitor must provide energy to the consumer most of the time and minimize
access to the secondary buffer to prolong its lifetime. Supercapacitors are the only option that meets this goal without
deteriorating over time itself.
Supercapacitors vary from millifarads to hundreds of
farads. To prolong the lifetime of the secondary buffer,
the primary supercap should be as large as possible. Unfortunately, the larger the capacity, the greater the leakage
current–continuously flowing current that returns to ground
through a capacitor. To determine the optimal capacitance,
3
10F/31J SuperCap
22F/69J SuperCap
50F/156J SuperCap
Telos Safe Voltage
Voltage (V)
2.5
2
1.5
1
0.5
Fig. 2. Self-Discharge of Supercapacitors
NiCad
NiMH
Lithium
Let us assume the consumer has power consumption pattern
of Eq.2 where Vsupply
q (t) is the voltage of E1 (t), POU T becomes PCAV G =
2 E1C(t) IAV G . Eq.3 becomes
Z
Z r
1
E1 (t)
2
E1 (t) = [ CVmax − PLEAK (t)dt]−
2
IAV G dt
2
C
t
t
(4)
Since the node dies when supply voltage goes below aqmini-
mum value, we are interested in the graph of V1 (t) = 2 E1C(t) .
For a consumer with a duty cycle of 1%, active current of
10mA and negligible sleep current, V1 (t) is graphed in Figure 3. Choosing the best capacitance means maximizing t
while keeping V (t) above the minimum operating voltage.
10
Time (hour)
15
20
Op.
Volt.
1.2
1.2
3.7
Memory
Yes
Yes
No
Density
Cycle
(Wh/kg)
50
1200*
70
300
100+
500
* Deep cycles
Leakage
(%/Month)
15
30
8
Charging
Simple
Simple
Complex
Table 1. Rechargeable Battery Comparison
t
(3)
where PIN is the power from the environmental energy source.
PIN may only be a fraction of PE because voltage of PIN
is capped by the maximum input voltage of E1 . In other
words, PIN = VE1max
VP E PE . POU T is the output, and PLEAK
is the internal leakage.
The precise leakage function PLEAK often needs to be
determined experimentally, as they are only crudely specified in the data sheets. Figure 2 shows the leakage pattern
of three supercapacitors we tested under isolation. They all
experience rapid leakage when fully charged.
To find the theoretical optimal capacitance, let us set
PIN = 0 and use the leakage data in Figure 2. The ini2
tial energy inR the supercapacitors ( 21 CVmax
) is the initial
condition of t PIN (t). In other words, Figure 2 represents
Z
Z
1
2
(PIN (t) − PLEAK (t))dt = CVmax
− PLEAK (t)dt
2
t
t
5
Fig. 3. Supercapacitor leakage under load
Type
depending on the leakage and the consumption level, we
first model the primary buffer as an energy source:
Z
E1 (t) = max( (PIN (t)−POU T (t)−PLEAK (t))dt, Emax )
0
From Figure 3, we observe that bigger capacitance is not
better–22F performs better than both 10F and 50F.
Configuration of supercapacitors also play an important
role in maximizing t of V1 (t). Configuration refers to series or parallel combination of supercapacitors. The leakage of supercapacitors is proportional to the energy level
(or quadratically proportional to voltage since E = 21 CV 2 ).
We can lower leakage by wiring two supercapacitors in series. This results in half the total capacitance, but the decrease in leakage is greater due to the quadratic dependence
on voltage. Wiring the capacitors in parallel increases capacitance, but the increase in leakage makes this solution
impractical. More complex configurations such as parallel
of series of capacitors or vise-versa are also possible but are
not desirable due to greater leakage.
3.4
Secondary Buffer
When the primary buffer is exhausted, the secondary buffer
is used. It needs to hold energy for a long period of time
and have low leakage but not charged or discharged frequently. Rechargeable batteries meet many of these requirements. There are several types including NiCad, NiMH, and
Lithium (Ion / Polymer), each with advantages and disadvantages shown in table 3.4.
Lithium rechargeable has the lowest leakage, highest
density, high recharge cycles, and provides high voltage with
a single cell. However, more complex charging circuits are
required to prevent harmful effects that reduce the lifetime
of the battery.
While the primary buffer is charged by environmental
energy, the secondary buffer can be charged either by environmental energy or by the primary buffer. If the sec-
3.85
3.8
Battery Voltage (V)
3.75
3.7
y = − 0.011*x + 4.1
3.65
3.6
3.55
3.5
3.45
30
35
40
45
50
Temperature (C)
55
60
Fig. 4. Perpetual Self Sustaining Telos Mote
Fig. 5. Battery Voltage vs. Temperature
ondary buffer is NiMH or NiCad, it is possible to charge it
directly using environmental energy to reduce complexity.
For lithium batteries, they must be charged from the primary buffer where energy is stable and pulsing is possible.
Charging could be done either using entirely hardware, such
as dedicated charging chip, or using a combination of software and hardware. Charging chips are designed for laptops
and use Coulomb counters which require the chip to be always on. This power consumption is greater than the battery leakage and is not tolerable. Instead, software enables
more complex schemes that prolong the secondary buffer’s
lifetime.
number of recharge cycles, high charge density, low leakage, lack of memory effect, and provides sufficient voltage
with one cell (see table 3.4). We found that shallow discharge/charge cycles can extend the battery’s life. Software
optimizes charging to utilize this behavior as discussed in
Section 4.5.
The voltage of the battery will decrease linearly with
increasing temperature (see Figure 5). This may trigger a
charge when not necessary. Software can compensate for
the drop in voltage using the built-in temperature sensor on
our node (see Section 4.5).
Due to lithium battery’s high density, we chose a small
(0.5in x 1in) battery. A capacity of around 500mAh is suitable for our system; however, we used a 200mAh lithium
polymer battery to get quicker results. Larger capacities extend the total lifetime.
4
IMPLEMENTATION
We implemented our energy transfer system on a prototyping board that connects to the Berkeley Telos sensor through
its 10-pin connector. As seen in Figure 4, our board replaces
the battery pack with a solar panel, two super capacitors,
and a small Li+ battery. The block diagram of our system is
shown in Figure 1. The component choices and their characteristics are described in this section.
4.1
Hardware Selection
We used Sunceram’s 37x82mm solar panel [4] due to its
large availability and low price ($15 retail). The 37x82mm
panel fits our Telos nicely and its 4.5V output matches the
5V maximum voltage of our primary buffer.
We used supercapacitors from Aerogel [2] due to their
relatively small leakage. They have a maximum voltage
rating of 2.5V, but our solar panel outputs 4.8V. Instead
of using a diode to cap the voltage, we wired two supercapacitors in series to reduce leakage. If we operate Telos at 1% duty cycle, the average power consumption is
20mA+99∗5uA
= 205uA. Using Figure 3, we chose 22F
100
supercapacitors.
Batteries are often the limiting factor of a node’s life
time. Therefore we chose lithium because it has a large
4.2
Telos Wireless Sensor Node
We chose Berkeley’s Telos Mote because it can operate at
extremely low voltages (1.8V), extracting as much energy
as possible from the supercapacitors. It also has the lowest
Iactive , Isleep , and wakeup time of any wireless sensor node
(see Section 3.2 and [5]). Telos draws 20mA in active mode
and 5uA in sleep mode. We use two ADC channels and
two I/Os to monitor and control the power board. In Telos
Revision B, one set of ADC and I/O will be replaced by
Telos’ internal supply power supervisor.
4.3
Sensing and Control
The Telos ADC monitors the energy levels (voltages) of
the supercapacitor and the battery. Instead of continuously
monitoring the voltage levels in hardware (which consumes
energy), we “piggyback” a reading on every duty cycle of
the application. Applications with an active period at least
once an hour is sufficient. This is a simple yet cost-effective
approach. However, because the internal reference voltages
of Telos are only 2.5V and 1.5V, we need two voltage di-
4.4
Charging Circuitry
Supercapacitor Voltage (V)
viders to drop the maximum 4.8V down to less than 2.5V.
A set of larger resistance resistors (such as 1M Ω) would be
less accurate than smaller resistance (such as 1kΩ) but consumes less power. We chose 1M Ω resistors with 1% error
because a few millivolts of error is tolerable.
The energy level information is used by Telos to directly
control a digital switch to arbitrate the two buffers. We
chose MAX4544 digital switch because it uses active elements consuming less energy than passive elements such as
transistors. It interfaces with the digital I/O pins on Telos.
2.85
2.8
if (CapV > UpperBound)
DutyCycle = DutyCycle + STEP
else if (CapV < LowerBound)
DutyCycle = DutyCycle − STEP
2.75
2.7
2.65
2.6
2.55
2.5
2.45
0
200
400
600
Time (s)
800
1000
1200
Fig. 7. Duty-Cycle Adaptation
3. Charge only when excess energy (direct sunlight) is detected in primary buffer (7-10).
Fig. 6. Block Diagram of Charging Circuit
We chose to use a MOS switch with a simple DC/DC
converter (used to limit current) to minimize power lost to
charging hardware, as shown in Figure 6. This is possible because software has complete control over the charging process. When the battery is below a certain level and
conditions are met as indicated by software, we replenish
the battery with energy from the supercapacitor. Charging lithium batteries requires a constant pulsing current until charged to 80% of its full capacity. Software can control the battery level to stay in this charging region. Using
a dedicated battery charging chip is unnecessary as it includes functionalities not needed and raises costs and power
consumption. Our DC/DC converter can perform the same
function since the MAX1676 has an internal current limiter
(selectable at .5A and 1A). A charging current of around 1x
the capacity of the battery (500mAh → .5A charging current) is considered safe. We used a P-channel MOSFET as
the switch instead of a digital switch because small digital
switches cannot handle large currents.
4.5
Driver and Software
In order to simplify the hardware design, we pushed control logic to the Telos MCU. By doing so, we reduced the
number of physical components and quiescent current consumption. Software has complete control over buffer selection and charging. A driver for our energy transfer system is
shown below that uses simple if-else statements yet utilizes
the power of the microprocessor to intelligently manage the
switching and charging process to prolong the lifetime of
the node (corresponding code shown in parenthesis):
1. Compensate for drop in battery voltage due to rise in temperature (1-2).
2. Provides hysteresis between the supercapacitor and battery
to avoid unnecessary access to battery (3-6).
4. Stop charging as soon as direct sunlight is gone even though
there is plenty of energy left in supercapacitors. This allows
Telos to survive for the rest of the day and night without
resolving to battery. The supercapacitors will be charged
again the next day (7-10).
5. Report status and energy levels to protocols / services (11).
PROMETHEUS DRIVER
1. if T empV > 2.2
2.
BattV = BattV + 1.45 ∗ (T empV − 2.2)
3. if CapV < 2.2
4.
SwitchCap = FALSE
5. if CapV > 3.5
6.
SwitchCap = TRUE
7. if CapV > 4.4 and BattV < 3.5
8.
ChargeBatt = TRUE
9. if CapV < 3.8
10.
ChargeBatt = FALSE
11. call Radio.send(STATS)
Sophisticated schemes may be implemented to adapt to
different operating conditions. Higher level software can
take advantage of energy knowledge. One example is to
dynamically adjust duty cycle based on the energy in the
primary buffer. When there is sufficient energy, Telos runs
at a higher duty cycle, and when the energy is low, it runs
at a lower rate. Figure 7 shows Telos adjusting its duty cycle until it is fully utilizing the environmental energy. This
is useful when the environmental energy is distributed unevenly in the network (such as spots of sun light through
trees). Nodes with higher exposure to environmental energy will increase their duty cycle to do more work (such as
routing packets) while less exposed nodes will only perform
minimal tasks.
5
RESULTS AND ANALYSIS
Our 37x82mm solar panel generates 40mA at 4.8V under
direct sunlight and fully charges the supercapacitors in less
than two hours as shown in Figure 9.A from t=4 to t=6.
We tested our system using the driver in Section 4.5 running at 1% duty cycle. The first scenario is during the night
and the energy in the supercapacitors is low. Our system
should switch to secondary buffer to sustain operation. The
second scenario is during sunrise. Our system should initi-
Voltage (V)
4
Duty Cycle
1%
10%
100%
SuperCapacitor Voltage
Battery Voltage
3.5
3
Required Light
5hrs / month
5hrs / 4days
10hrs / 1day
Life Time
43yrs
4yrs
1yr
Table 2. Perpetual Operation
2.5
2
0
1
2
3
4
5
6
7
6
7
Reference Voltage
Source (0−Cap; 1−Batt)
2
Status
3
1
0
0
1
2
3
4
Time (hour)
5
Battery Voltage Capacitor Voltage
Fig. 8. Telos Switches from Primary Buffer to Secondary
Buffer
5
Dark
Light
A
5
10
4
3
2
3.6
0
15
20
15
20
B
3.4
3.2
low 3.5V, resulting in a charge pulse (as seen by the sharp
drop in capacitor voltage in A and increase in battery voltage in B). This rapidly transfers most of the supercapacitors’
energy to the battery. The solar panel quickly replenishes
the supercapacitors and battery voltage stabilizes at around
3.54V.
We let the system run for another 10 days and Telos has
not yet resorted to battery (except the first day shown in
Figure 9 on which we intentionally initialized the supercapacitors at a low energy level).
Under continuous low light conditions (assuming no light),
the estimated time to outage for our system (200mAh bat0.2Ah
tery) is (205×10−6
A)×24hours = 40.65days. A larger battery results in proportionally longer time. This calculation
implies that as long as the light source does not stay extremely low for months, our system should be able to continuously operate. Table 2 shows the trade off of duty cycle
and lifetime. For most wireless sensor networks applications where duty cycle is around 1%, our system provides
perpetual operation.
6
0
5
10
C
Status
2
1
0 − Powered by SuperCap
1 − Powered by Battery
2 − Charging
0
0
5
10
Time (hour)
15
20
Fig. 9. Telos Charges Battery with Supercapacitors
ate a charge to the battery when supercapacitor has excess
energy since the system started with a low battery level.
In the first scenario (Figure 8), our system started at
night when the supercapacitor is at 3V (two combined), battery at 3.4V, and reference voltage at 2.5V. After 1.6 hours
(t=1.6), the capacitor voltage drops below 2.6 and Telos
changes its reference voltage to 1.5V since the 2.5V reference is no longer sustainable. This causes the reported battery voltage to clip to 3V. After another 4.2 hours (t=5.8),
the capacitor drops below 2.2V and triggers Telos to switch
from primary to secondary buffer. Since the battery is at
3.4V, the reference is set back to 2.5V.
In the second scenario (Figure 9), the system initially
runs on battery (as seen in 9.C). After 4 hours, the sun
comes out and starts to charge the supercapacitors (as seen
in 9.A starting at t=4). At 4.8 hours, the capacitor voltage
exceeds 3.5V, switching power back from battery to supercapacitors. At around 6.5 hours, the capacitor voltage exceeds the charging threshold of 4.4V and the battery is be-
CONCLUSION
We have presented an architecture for perpetual operation of
wireless sensor networks using environmental energy. Our
system intelligently manages a two-stage buffer to prolong
the lifetime of the system hardware, including super-capacitor
and lithium rechargeable battery. The energy level data collected by our sensor node may be used to build power-aware
wireless networking protocols. We have demonstrated that
our system works as predicted by our analysis and yields
long-lived sensor network deployments.
7
R EFERENCES
[1] H. Balakrishnan, R. Baliga, D. Curtis, M. Goraczko, A. Miu, B. Priyantha,
A. Smith, K. Steele, S. Teller, and K. Wang. Lessons from developing and
deploying the cricket indoor location system. In preprint, Nov. 2003.
[2] Cooper Industries. Aerogel supercapacitors - b series data sheet. http://
www.cooperet.com/pdfs_html/PowerStorB_Specs.pdf, Sept.
2002.
[3] A. Kansal, D. Potter, and M. B. Srivastava. Performance aware tasking for
environmentally powered sensor networks. In Sigmetrics 2004, 2004.
[4] Panasonic. Panasonic solar cells techinical handbook ’98/99. http:
//downloads.solarbotics.com/PDF/sunceramcat.pdf, Aug.
1998.
[5] J. Polastre, R. Szewczyk, and D. Culler. Telos: Enabling ultra-low power
research. In submission, Nov. 2004.
[6] S. Roundy, B. P. Otis, Y.-H. Chee, J. M. Rabaey, and P. Wright. A
1.9ghz rf transmit beacon using environmentally scavenged energy. In IEEE
Int.Symposium on Low Power Elec. and Devices, Feb. 2003.
[7] S. Roundy, D. Steingart, L. Frechette, P. K. Wright, and J. M. Rabaey. Power
sources for wireless sensor networks. In Proceedings of EWSN 2004, Berlin,
GERMANY, Jan. 2004.
[8] J. Schaeffer and D. M. Pratt. The Real Goods Solar Living Sourcebook: The
Complete Guide to Renewable Energy Technologies and Sustainable Living.
Gaiam Real Goods, 11th edition, Aug. 2001.
[9] University of California, Berkeley. Mica Platform. http://www.
tinyos.net/scoop/special/hardware/, Sept. 2002.
[10] P. Zhang, C. M. Sadler, S. A. Lyon, , and M. Martonosi. Hardware design
experiences in zebranet. In SenSys 2004, Nov. 2004.