The OpenWSN project serves as a repository for open-source implementations of protocol stacks based on Internet of Things standards, using a variety of hardware and software platforms.

Motivation

The Internet of Things enables great applications, such as energy-aware homes or real-time asset tracking. With these networks gaining maturity, standardization bodies have started to work on standardizing how these networks of tiny devices communicate.

The goal of the OpenWSN project is to provide open-source implementations of a complete protocol stack based on the to-be-finalized Internet of Things standards, on a variety of software and hardware platforms. This implementation can then help academia and industry verify the applicability of these standards to the Internet of Things, for those networks to become truly ubiquitous.

Open Source

Our OpenWSN effort at Berkeley is one of many open source hardware and software projects for wireless sensor networks. Here are links to some of our friends and colleagues around the world.

Protocol Stack

The standards under development most applicable for the Internet of Things are:

  • The IEEE802.15.4e working group is defining MAC amendment to the existing IEEE802.15.4-2006 standard. The proposal being standardized, called Time Synchronized Channel Hopping, significantly increases robustness against external interference and persistent multi-path fading, while running on legacy IEEE802.15.4-2006 hardware.
  • The IETF 6LoWPAN working group standardizes a mechanism for an IPv6 packet to travel over networks of devices communicating using IEEE802.15.4 radios; this includes header compaction techniques to fit long IPv6 headers into short IEEE802.15.4 frames.
  • The IETF ROLL working group standardizes the routing protocol, i.e. the distributed algorithm which finds the multi-hop path connecting the nodes in the network with a small number of destination nodes. The current proposal, called RPL, finds routes according a set of constraints.

These standards can be layered one on top of another, forming the following protocol stack:

License