kids encyclopedia robot

Contiki facts for kids

Kids Encyclopedia Facts
Quick facts for kids
Contiki
Contiki-ipv6-rpl-cooja-simulation.png
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; 22 years ago (2003-03-10)
Discontinued 3.0 / 25 August 2015; 9 years ago (2015-08-25)
License BSD-3-Clause
Contiki-NG
Stable release
4.9 / June 17, 2023; 2 years ago (2023-06-17)

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.

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-avr
Screenshot of the VNC server running on the Atmel AVR port 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:

Contiki also works with security libraries like wolfSSL. These help keep your data safe.

Where Contiki Can Run

Contiki-C64
Contiki on the Commodore 64

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

Kids robot.svg In Spanish: Contiki para niños

  • BeRTOS
  • ERIKA Enterprise
  • Nano-RK
  • RIOT
  • SymbOS
  • TinyOS
  • Comparison of real-time operating systems
kids search engine
Contiki Facts for Kids. Kiddle Encyclopedia.