Wednesday, August 26, 2015

Contiki 3.0 Released, New Hardware from Texas Instruments, Zolertia

Today the Contiki team announced the release of Contiki 3.0, the latest version of the open source IoT operating system! The 3.0 release is a huge step up from the 2.x branch and brings support for new and exciting hardware, a set of new network protocols, a bunch of improvements in the low-power mesh networking protocols, along with a large number of general stability improvements. This is, by far, the best Contiki release ever!

Contiki is the open source operating system for the Internet of Things, used by developers to bring low-power wireless connectivity to their products and projects. Read more about Contiki here.

Since the the previous 2.7 release, which came out in November 2013, the Contiki team has merged some 500 pull requests with new code, bug fixes, and improvements.

New and Exciting Hardware

As the wireless world evolves, so does its hardware. Recently, many new Systems-on-a-Chip (SoCs) have been released, which makes hardware design much easier, as you only need a single chip for both radio communication and control.

Contiki 3.0 adds support for two new interesting hardware plaforms: the Texas Instruments Sensortag and the Zolertia ReMote.

Texas Instruments Sensortag

The Texas Instruments Sensortag

The Texas Instruments Sensortag platform is exciting in many ways. It packs a whole bunch of sensors in an inexpensive package, which is great for building a quick demo and as a starting point for more tailored designs. But more importantly, it features a brand new System-on-a-Chip design called CC2650 that has a radio that supports both 802.15.4 (6lowpan) and Bluetooth, while having a lower power consumption than previous chips.

The Sensortag comes at a very nice price point of $29 per unit, making prototyping quicker and easier than ever before. The Sensortag port was developed and contributed by Texas Instruments.

Revolutionary feature: Contiki mesh + Bluetooth beacons

The TI CC26xx platform is the dual IEEE 802.15.4 and Bluetooth radio, which makes it possible to do both Contiki IPv6 meshing and Bluetooth beacons - at the same time. Bluetooth beacons can be picked up by iOS and Android apps.

This allows Contiki devices to be discovered with an iOS or Android smartphone app, without any additional hardware or software. This is revolutionary as it makes user onboarding both quicker than ever before, but also significantly more secure.

The Thingsquare platform, a commercial connected product platform that uses Contiki, use this to securely discover and authenticate nearby devices which then use the low-power mesh for data access, through a smartphone app.

The Thingsquare platform on the Sensortag

A bunch of sensors

The Sensortag has an an array of built-in sensors, for which the Contiki 3.0 release adds device drivers that are ready to be used out of the box: infrared ambient temperature sensor, ambient light sensor, humidity sensor, barometric pressure sensor, a magnet sensor, and a 9-axis accelerometer and gyroscope.

Zolertia ReMote

The Zolertia ReMote platform

The Zolertia ReMote platform is unique in that it provides both a 2.4 GHz SoC (TI CC2538) and a sub-GHz radio chip (TI CC1120). This makes it possible to use it both for shorter range 2.4 GHz communication and long-range sub-GHz networking. For example, in this test, the ReMote was able to achieve an impressive 3.14159 kilometer transmission range.

The ReMote platform also has a number of expansion ports, including two Phidget ports for external sensors and other devices.

(Device driver support for the TI CC1120 radio is not available in Contiki 3.0, but is scheduled for the next upcoming release. The upcoming version of the ReMote has a TI CC1200 sub-GHz radio, for which drivers will be in the next upcoming Contiki release.)

Encryption and security

Encryption and security support was always sorely lacking in the previous versions of Contiki. Contiki 3.0 brings much needed support for 802.15.4 link layer encryption with AES128, available in software for all platforms and hardware-accellerated for those platforms that support it (primarily the TI CC2538).

Read more about the encryption support here.

New Network Protocols

The Contiki 3.0 release adds support for the IP64/NAT64/DNS64 set of protocols that make it possible to connect Contiki IPv6 mesh networks directly to IPv4 networks, such as the Internet, without the need for a special translation proxy. The protocols operate directly at the IP layer to create a seamless translation between the mesh and the Internet. Alongside, device driver support for the ENC26j80 Ethernet chip has been added, to make it easy to connect Contiki mesh networks to Ethernet networks.

For application layer connectivity, support for the MQTT protocol, a new HTTP socket module, and an updated CoAP module has been added. New socket APIs for TCP and UDP sockets make network programming significantly easier than in the past.

The IPv6 mesh networking support has been massively reworked and improved. The RPL mesh routing protocol has seen many bugfixes and stability improvements. Support for new IPv6 mesh multicast mechanisms has been added. Many internal improvements to the IPv6 stack has been added.

Internal Changes

The structure of the code has seen a rework, with a new module system that makes it easier to selectively use only parts of the code. Instead of using C macros and #defines to select whether to use the IPv6 or IPv4 stack, the new module system uses Makefile settings, which makes compilation more efficient and the code easier to read.

The radio API has been updated to better match the way the radio duty cycling protocols use the radio. For example, the previous radio API lacked a clean way to set the radio channel, which now is part of the new API.

We also cleaned up a number of old hardware platforms that were not used anymore and dropped a bunch of examples that weren't relevant any longer. We also added a bunch of new regression tests to ensure the continued stability of the system.


The full source code for Contiki 3.0 is available at github.

To get started with Contiki 3.0, use the Instant Contiki 3.0 development environment, which contains all the necessary compilers and tool chains. (Warning: 3 Gb download.) Instructions for getting started with Instant Contiki are available here.

Get Involved

To get involved with Contiki, join the contiki-developers mailing list and join the contiki-os project at github!


For press inquiries, contact Adam Dunkels <>.

Full disclosure: the author of this post is also CEO and co-founder of Thingsquare.

Wednesday, October 8, 2014

A big step for Contiki: built-in encryption

Contiki finally got built-in encryption support.

Contiki is a great platform for wireless products, but has been lacking in one respect: there was no built-in encryption. This has forced a lot of people, including us at Thingsquare, to develop their own encryption layers on top of Contiki.

Encryption is essential for wireless systems. Because wireless communication is so easy to eaves drop – all you need is a nearby antenna – every byte sent over a wireless channel must be encrypted. Adding encryption is one of the goals for the upcoming Contiki 3.x release.

For months, Contiki contributor kkrentz and a group of others have been working on a contribution that adds link-layer encryption for IEEE 802.15.4 radios. The code follows the IEEE 802.15.4 radio standard for encryption and supports the mandatory AES128 Counter with CBC-MAC (CCM) mode.

Yesterday, the pull request that contained this contributions was accepted into the mainline Contiki code. Now everyone using Contiki can simply switch on encryption and protect themselves and their users from prying antennas.

Tuesday, June 10, 2014

Contiki in WIRED Magazine

For those of you who missed it, WIRED Magazine ran a story on Contiki last week:
Out in the Open: The Little-Known Open Source OS That Rules the Internet of Things
You can connect almost anything to a computer network. Light bulbs. Thermostats. Coffee makers. Even badgers. Yes, badgers.

Discussion on Hacker News.

Monday, February 17, 2014

Thingsquare's Contiki IoT workshop slides posted

The first set of slides from the Thingsquare Contiki IoT workshop series have been posted.

The slides show how to connect a Contiki system to the Internet and make it interact with web services, how to build an IoT cloud service with node.js and Javascript, some of the next steps for Contiki 3.x, and some of the trade-offs in choosing a communication technology for your next IoT system. Slides for the three remaining days will be posted during the week.

The slides from day 1 are below:

Monday, January 20, 2014

Thingsquare IoT and Contiki courses - now online too

For spring 2014, the Thingsquare IoT development and Contiki programming course program has been expanded with both a new on-site workshop on advanced Contiki programming and a new set of online courses.

Check out the Thingsquare online courses here and the two-day workshop training courses here.

The courses are intended for developers and decision makers who want to hit the ground running when planning or developing their connected products. If you want to build the next Nest, these courses are for you!

The online courses are intended to broaden the amount of people who can attend the Thingsquare courses, to get more people up and running.

The two-day workshop courses are running as usual in Stockholm, Sweden. Register quickly to get the early-bird discount!

Tuesday, January 14, 2014

Contiki-based Products at CES 2014

Held in January every year in Las Vegas and with some 160000 attendees, the Consumer Electronics Show, CES, is by far the largest event in the consumer electronics industry. Products are launched, announcements are made, and the press goes wild.

At CES 2014, a number of products and systems based on Contiki were shown:


WigWag is a system for building intelligent environments that had a successful Kickstarter funding campaign in 2013.


Thingsquare was there to show the Contiki-based Thingsquare cloud IoT system. Check out this video where Texas Instruments demonstrates the Thingsquare system:



The LIFX WiFi bulbs were also repressented.


tado° is an app that lets you set the comfort of your home directly from your smartphone. Read more about tado° at CES 2014 here.

Monday, November 18, 2013

Instant Contiki 2.7 Available

Following the Contiki 2.7 release, version 2.7 of the Instant Contiki development environment is now available:

Instant Contiki is a single-file download that contains everything needed to work with Contiki: compilers, toolsets, editors. For information on how to get started, see this link.