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.
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.
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
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:
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.
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 |
For questions or recommendations don't hesitate to contact emb6@hs-offenburg.de