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 |
5.0 / December 30, 2024
|
---|
Contiki is a special operating system made for small, connected devices. It's perfect for gadgets that don't have a lot of memory or power, especially those used in the Internet of Things (IoT). Think of it as the brain for things like street lights, sound sensors in smart cities, and even radiation monitoring devices.
Contiki is open-source, which means its code is free for anyone to use and change. It was created by Adam Dunkels in 2002. Many developers from around the world have helped make it better. Contiki became popular because it has a built-in way to connect to the internet (called a TCP/IP stack) and can handle many tasks at once, which is great for IoT devices. The name Contiki comes from Thor Heyerdahl's famous Kon-Tiki raft.
This operating system is very small. It needs only 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 uses only about 30 kilobytes of RAM.
A newer version, called Contiki-NG, has been developed for the next generation of IoT devices.
Contents
What Devices Use Contiki?
Contiki is made for hardware that has very limited memory, power, and processing speed. It also works well with slow internet connections. A typical Contiki device might have memory in kilobytes, use very little power, and have a communication speed of hundreds of kilobits per second. This includes many types of embedded systems and even some older 8-bit computers.
How Contiki Connects to the Internet
Contiki uses different ways to connect devices to networks:
- The uIP TCP/IP stack for IPv4 connections.
- The uIPv6 stack for IPv6 connections. This was the smallest IPv6 system to get the "IPv6 Ready" certification. It also includes special features for low-power networks.
- The Rime stack for very simple, low-power wireless networks.
The Rime stack is used when the other internet connection methods are too big or use too much power. It helps devices send messages in simple ways, like sending a message to one device, broadcasting to many, or collecting data without needing specific addresses. These simple methods can be combined to create more complex network rules.
Saving Power with Contiki
Many devices that use Contiki run on batteries and need to last for years without being recharged. Contiki has special features to help these devices use less power. One main feature is called ContikiMAC. It lets devices stay in a low-power mode but still be able to send and receive messages.
Testing Devices with Cooja Simulation
Contiki comes with a tool called Cooja. This tool lets you test how Contiki devices would work in a pretend network. You can set up different types of fake devices in Cooja:
- 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 behavior you program using Java.
You can mix and match these different types of fake devices in one simulation. Cooja can even pretend to be devices that don't use Contiki.
How Contiki Programs Work
To run smoothly on small devices, Contiki uses a special way of programming called protothreads. Protothreads are a clever way to manage tasks that use very little memory. They combine ideas from multitasking and event-driven programming.
The Contiki system tells a protothread to start working when something happens, like a timer going off or a message arriving. It also responds to things happening outside the device, like a sensor being triggered or a message coming from another device.
Contiki programs must regularly give control back to the operating system. They can also wait for events to happen while letting the operating system do other things.
Key Features of Contiki

Contiki can handle many tasks at once. It lets different parts of a program talk to each other using messages. It also has an optional graphical user interface (GUI) that can be shown on a screen connected directly to the device or viewed remotely using Virtual Network Computing (VNC).
A full Contiki system can include these features:
- A system that runs many tasks at once.
- Optional multitasking 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 smallest in the world).
- A personal web server.
- A simple telnet client.
- A Screensaver.
Contiki also works with popular security libraries like wolfSSL, which helps keep data safe.
Where Contiki Can Run
Microcontrollers
Contiki can run on many small computer chips, including:
- Atmel chips (ARM, AVR)
- NXP Semiconductors chips (LPC1768, LPC2103, MC13224)
- Microchip chips (dsPIC, PIC32)
- Texas Instruments chips (MSP430, CC2430, CC2538, CC2630, CC2650, CC2538: cctv, Firefly, Zoul)
- STMicroelectronics chips (STM32 W)
Computers
Contiki can also run on some older computers and systems:
- 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
Surprisingly, Contiki can even run on some old game consoles:
See also
In Spanish: Contiki para niños
- BeRTOS
- ERIKA Enterprise
- Nano-RK
- RIOT
- SymbOS
- TinyOS
- Comparison of real-time operating systems