What is Contiki?
Contiki is an open source operating system for the Internet of Things. Contiki connects tiny low-cost, low-power microcontrollers to the Internet. Contiki is a powerful toolbox for building complex wireless systems.
Contiki provides powerful low-power Internet communication. Contiki supports fully standard IPv6 and IPv4, along with the recent low-power wireless standards: 6lowpan, RPL, CoAP. With Contiki’s ContikiMAC and sleepy routers, even wireless routers can be battery-operated.
Contiki provides multitasking and a built-in Internet Protocol Suite (TCP/IP stack), yet needs only about 10 kilobytes of random-access memory (RAM) and 30 kilobytes of read-only memory (ROM). A full system, including a graphical user interface, needs about 30 kilobytes of RAM.
Contiki applications are written in standard C, with the Cooja simulator Contiki networks can be emulated before burned into hardware, and Instant Contiki provides an entire development environment in a single download.
Contiki is open source, which means that the source is and always will be available. Contiki may be used in both commercial and non-commercial systems without restrictions.
Instant Contiki is an entire Contiki development environment in a single download. It is an Ubuntu Linux virtual machine that runs in VMWare player and has Contiki and all the development tools, compilers, and simulators used in Contiki development installed. Instant Contiki is so convenient that even hardcore Contiki developers use it.
Cooja is the Contiki network simulator. Cooja allows large and small networks of Contiki motes to be simulated. Motes can be emulated at the hardware level, which is slower but allows precise inspection of the system behavior, or at a less detailed level, which is faster and allows simulation of larger networks.
Primary Contiki Platforms are CC2538, Sensortag, CC2650. Other Contiki platformsare given below. This table shows the hardware platforms currently in the Contiki code tree. Some of them are actively supported, others are not. Please check the current code tree for the complete list of platforms.
|MCU/SoC||Radio||Platforms||Cooja simulation support|
|TI CC2538||Integrated / CC1200||RE-Mote||–|
|TI MSP430x||TI CC2420||exp5438, z1||Yes|
|TI MSP430x||TI CC2520||wismote||Yes|
|Atmel AVR||Atmel RF230||avr-raven, avr-rcb, avr-zigbit, iris||–|
|Atmel AVR||TI CC2420||micaz||Yes|
|Freescale MC1322x||Integrated||redbee-dev, redbee-econotag||–|
|TI MSP430||TI CC2420||sky||Yes|
|TI MSP430||TI CC1020||msb430||–|
|TI MSP430||RFM TR1001||esb||Yes|
|Atmel Atmega128 RFA1||Integrated||avr-atmega128rfa||–|
|Microchip pic32mx795f512l||Microchip mrf24j40||seed-eye||–|
|6502||–||apple2enh, atari, c128, c64||–|
|Native||–||native, minimal-net, cooja||Yes|
- Memory Allocation
- Full IP Networking
- Power Awareness
- 6lowpan, RPL, CoAP
- Dynamic Module Loading
- The Cooja Network Simulator
- Sleepy Routers
- Hardware Platforms
- Coffee flash file system
- The Contiki shell
- The Rime Stack
- Build System
- Regression Tests
- Available Examples
Contiki provides a bunch of options for support. Contiki is developed by a world-wide team of developers with contributions from Atmel, Cisco, ETH, Redwire LLC, SAP, Thingsquare, and many others, led by Adam Dunkels of Thingsquare.