A Low-Power CoAP for Contiki
Matthias Kovatsch
Institute for Pervasive Computing
ETH Zurich, Switzerland
Email: kovatsch@inf.ethz.ch
Simon Duquennoy, Adam Dunkels
Swedish Institute of Computer Science
Kista, Sweden
Email: {simonduq,adam}@sics.se
Abstract—Internet of Things devices will by and large
be battery-operated, but existing application protocols
have typically not been designed with power-efficiency in
mind. In low-power wireless systems, power-efficiency is
determined by the ability to maintain a low radio duty
cycle: keeping the radio off as much as possible. We
present an implementation of the IETF Constrained Appli-
cation Protocol (CoAP) for the Contiki operating system
that leverages the ContikiMAC low-power duty cycling
mechanism to provide power efficiency. We experimentally
evaluate our low-power CoAP, demonstrating that an
existing application layer protocol can be made power-
efficient through a generic radio duty cycling mechanism.
To the best of our knowledge, our CoAP implementation is
the first to provide power-efficient operation through radio
duty cycling. Our results question the need for specialized
low-power mechanisms at the application layer, instead
providing low-power operation only at the radio duty
cycling layer.
Keywords-Internet of Things; Web of Things; CoAP;
embedded Web services; energy; radio duty cycling;
I. INTRODUCTION
The Internet of wireless things needs power-efficient
protocols, but existing protocols have typically been de-
signed without power-efficiency in mind. In low-power
wireless systems, the radio transceiver is typically the
most power-consuming component, so power-efficiency
translates into efficient radio duty cycling: the ability to
keep the radio off as much as possible.
The Internet protocol stack is a suitable solution to
realize an Internet of Things (IoT), a network of tiny
networked embedded devices that create a link to the
physical world. The narrow waist of IP can be used to
directly access sensor readings throughout a sustainable
city, acquire the necessary information for the smart
grid, or control smart homes, buildings, and factories.
The stack’s layered architecture helps to manage the
complexity.
We have implemented the IETF Constrained Appli-
cation Protocol (CoAP) [11] for Contiki, which enables
interoperability at the application layer through REST-
ful Web services. As depicted in Figure 1, we have
integrated a full protocol stack necessary for an IoT and
evaluated the system performance from an application
layer perspective.
Layer Protocol
Application IETF CoAP / REST Engine
Transport UDP
Network IPv6 / RPL
Adaptation 6LoWPAN
MAC CSMA / link-layer bursts
Radio Duty Cycling ContikiMAC
Physical IEEE 802.15.4
Figure 1. Low-power operation is done only in the Radio Duty
Cycling (RDC) layer, thereby separating low-power operation from
the application layer. This reduces complexity and follows the layered
architecture that allowed the Internet to evolve.
The contribution of this paper is that we are the first
to demonstrate power-efficient CoAP operation through
radio duty cycling. These results challenge the need
for specialized power-management at the application
layer: by constraining power management to the radio
duty cycling layer, complexity can be removed from the
application layer.
II. BACKGROUND
A. Power Efficiency through Duty Cycling
On typical IoT platforms, the radio transceiver is one
of the most power-consuming components. Listening is
as expensive as receiving packets. To conserve energy,
the radio transceiver must be switched completely off
for most of the time. Several radio duty cycling (RDC)
algorithms have been designed, allowing nodes to keep
the radio chip off for more than 99% of the time while
still being able to send and receive messages [4], [7].
In this work, we use the ContikiMAC RDC proto-
col [4]. ContikiMAC is a low-power listening MAC
protocol that uses an efficient wake-up mechanism to
attain a high power efficiency: with a wake-up frequency
of 8 Hz, the idle radio duty cycle is only 0.6% [4].
The ContikiMAC principle of operation is shown in
Figure 2. Nodes periodically wake up to check the radio
channel for a transmission from a neighbor. If a radio
signal is sensed, the node keeps the radio on to listen for
the packet. When the data frame is received, the receiver
sends an acknowledgment frame. To send a packet, the