Contiki facts for kids
![]() Screenshot of an Ubuntu system showing Contiki 2.6 running on 41 nodes forming an IPv6-RPL-6LoWPAN network in the Cooja Contiki network simulator.
|
|
Company / developer | Adam Dunkels |
---|---|
Source model | Open source |
Initial release | 10 March 2003 |
Discontinued | 3.0 / 25 August 2015 |
License | BSD-3-Clause |
Stable release |
4.9 / June 17, 2023
|
---|
Contiki is like a special computer brain for small, connected devices. It's an operating system designed for gadgets that don't have much memory or power. These devices are often part of the Internet of Things (IoT).
Contiki helps things like street lights, smart city sound sensors, and radiation monitoring systems work. It's also open source, which means its code is free for anyone to use and change.
Adam Dunkels created Contiki in 2002. Many people and companies around the world have helped make it better. Contiki became popular because it has a built-in way to connect to the internet (a TCP/IP stack). It also uses a smart way to manage tasks, which is great for IoT devices. The name Contiki comes from Thor Heyerdahl's famous Kon-Tiki raft.
Contiki can do many tasks at once. It also has a full Internet Protocol Suite (TCP/IP stack) to connect to the internet. But it only needs about 10 kilobytes of random-access memory (RAM) and 30 kilobytes of read-only memory (ROM). Even with a graphical user interface (GUI), it still only needs about 30 kilobytes of RAM.
A newer version, called Contiki-NG, is now available. It is made for the next generation of IoT devices.
Contents
What Hardware Uses Contiki?
Contiki is made for hardware devices that are very limited. These devices have little memory, power, or processing speed. They also have slow communication bandwidth.
A typical Contiki system might have memory in kilobytes. Its power use is often in milliwatts. Its processing speed is usually in megaHertz. And its communication speed is in hundreds of kilobits per second. This includes many embedded systems and even some old 8-bit computers.
How Contiki Connects to Networks
Contiki uses different ways to connect devices to networks.
- The uIP TCP/IP stack helps with IPv4 networking.
- The uIPv6 stack handles IPv6 networking. This part was made by Cisco. It was the smallest IPv6 stack to get the IPv6 Ready certification. It also includes special rules for low-power IPv6 networks.
- The Rime stack is a set of simpler networking rules. It is used when the IPv4 or IPv6 stacks are too big. Rime helps low-power wireless systems communicate. It can send messages to one device, broadcast to many, or collect data. These simple tools can be combined to make more complex network rules.
Saving Power with Contiki
Many Contiki devices run on batteries. They need to work for years without new batteries. Contiki has ways to save power. One main way is called ContikiMAC. With ContikiMAC, devices can use very little power. But they can still send and receive radio messages.
Testing Contiki with Simulation
Contiki comes with a tool called Cooja. This tool lets you test Contiki devices in a simulation. Cooja can pretend to be different types of devices:
- Emulated Cooja nodes: These act like real Contiki devices.
- Contiki code on the computer: This runs Contiki code directly on your computer.
- Java nodes: These are devices whose actions are programmed in Java.
You can mix these different types of devices in one Cooja simulation. Cooja can also pretend to be non-Contiki devices. This lets you test how Contiki devices work with other systems.
How Contiki Programs Work
Contiki uses a special way of programming called protothreads. This helps it run well on devices with little memory. A protothread is a smart way to manage tasks. It uses very little memory for each task.
The Contiki system starts a protothread when something happens. This could be an internal event, like a timer going off. Or it could be an external event, like a sensor being triggered.
Contiki programs must give control back to the system regularly. They can also wait for events while letting the system do other things.
Cool Features of Contiki

Contiki has many useful features:
- It can run many tasks at once.
- It lets different parts of a program talk to each other.
- It has an optional graphical user interface (GUI). This can show things on a screen connected directly. Or it can show things on another computer using Virtual Network Computing (VNC).
A full Contiki setup can include:
- A multitasking brain (kernel).
- Optional ways to run many tasks at once for each program.
- Protothreads for efficient programming.
- Full Internet Protocol Suite (TCP/IP) networking, including IPv6.
- A Windowing system and GUI.
- Remote display using Virtual Network Computing.
- A web browser (said to be the world's smallest).
- A personal web server.
- A simple telnet client.
- A Screensaver.
Contiki also works with security libraries like wolfSSL. These help keep your data safe.
Where Contiki Can Run
Contiki can run on many different types of devices:
Microcontrollers
- Atmel (ARM, AVR chips)
- NXP Semiconductors (LPC1768, LPC2103, MC13224)
- Microchip (dsPIC, PIC32)
- Texas Instruments (MSP430, CC2430, CC2538, CC2630, CC2650, CC2538: cctv, Firefly, Zoul)
- STMicroelectronics (STM32 W)
Computers
- Apple II
- Atari 8-bit computers
- Atari ST
- Atari Portfolio
- Pocket Viewer
- Commodore PET
- VIC-20, Commodore 64, Commodore 128
- Oric
- NEC PC-6001
- Sharp Wizard
- x86-based Unix-like systems (using GTK+ or X Window System)
Game Consoles
See also
In Spanish: Contiki para niños
- BeRTOS
- ERIKA Enterprise
- Nano-RK
- RIOT
- SymbOS
- TinyOS
- Comparison of real-time operating systems