View the Project on GitHub hso-esk/emb6

emb::6 is a scalable C-based 6LoWPAN stack for embedded devices developed by the Institute of Communication Electronics and Embedded Devices (ESK) at Offenburg University of Applied Siences (HSO) under supervision of Prof. Dr. Axel Sikora (axel.sikora@hs-offenburg.de).

Originally derived from Contiki several adaptations have been made such as the removal of proto-threads. It follows a strict layer based architecture with a modular software design allowing it to be used even on very restricted devices.

Introduction

In the last decade, IPv6 over Low power Wireless Personal Area Networks, also known as 6LoWPAN, has well evolved as a primary contender for short range wireless communication and holds the promise of an Internet of Things, which is completely based on the Internet Protocol. The IEEE 802.15.4 standard specifies a maximum frame size of 127 bytes where the IPv6 specification requires a minimum MTU of 1280 byte. With the 6LoWPAN adaptation layer it is possible to make use of IPv6 in small and constrained wireless networks which follows the IEEE 802.15.4 standard. In the meantime, various 6LoWPAN implementations are available, be it open source or commercial. One of the open source implementations is the C-based emb::6 stack.

The emb::6 stack is optimized to be used in constrained devices without an operation system. The stack operates event driven with a scalable buffer handling for optimization on different platforms. The typical field of application is in wireless sensor networks, e.g. for home automation or industrial environments.

Getting started

For the best introduction to get started with emb::6, please read the documentation included, our Wiki page. For the code comments you will also find a doxygen project file within the doc folder. If you want to launch an LCM based lightweight virtualisation with various routing topologies you are invited to visit a dedicated Wiki page

Features

Functionality

There are several IoT capable stacks available may it be on open source or on commercial basis. The emb::6 networking stack provides several salient features making it a unique offering. The main features and concepts of the stack are the following:

Build System

The buildsystem of emb::6 is completely based on SCons as a replacement for make with improved features. SCons is based on Python, makeing the tool very powerful for the build process. It allows to easily create new configurations e.g. regarding MCU/Transceiver or application selection. Furhermore the build-time is decreased significantly.

Supported Targets

emb::6 is very platform independent since it has no requirements to an OS and hardware access is abstracted in a simple "single-file-based" hardware abstraction layer. That makes it quite easy to port emb::6 to other platforms. However emb::6 comes with support of several platforms by default:

Target MCU TRANSCEIVER
atany900 atmega1281 at86rf212
atany900pro3 samd21g18a at86rf212b
atany900pro5 samd20g18 at86rf212b
atany900basic samd20g18 at86rf212b
xpro_212 samd20j18 at86rf212
xpro_212b samd20j18 at86rf212b
stk3600 efm32lg990f256 at86rf212b
native "linux" LCM

Contact

For questions or recommendations don't hesitate to contact emb6@hs-offenburg.de