Why Contiki?

From ContikiWiki

Jump to: navigation, search

Why would you want to choose Contiki over the many alternatives? Here are a list of things we think that makes Contiki your choice.

Contents

[edit] Contiki Tools

  • Out of the Box Data Collection: Contiki sports a easy data collection tool that allows you to sense the data and not have to worry about the networking. It simply forms a tree and you can watch it happening in real time via the GUI.
  • Extensive simulation support with Cooja and MSPsim: A full featured simulator suite that allows you to rapidly test your software for functional correctness without setting a foot outside your house.

[edit] Contiki is Well Supported

  • Contiki sports a well rounded set of libraries and tools that are directly included in the Contiki OS distribution
  • It supports a large range of sensor platforms out of the box
  • The OS is well documented, as you may have noticed while reading this Wiki
  • You can get directly in touch with other developers via the emailing list

[edit] The Contiki Networking and Libraries

  • The State-of-the-Art Networking Stack: Contiki has been at the forefront of exploring networking such as sporting the first and smallest IPv6 compatible networking stack, while allowing easy access to develop or modify the stack at your own will.
  • Sensor data collection example out of the box, both with IPv6/RPL or Contiki collect.
  • The Contiki shell makes deployment and troubleshooting easier.
  • Extremely low power consumption out of the box with ContikiMAC
  • Coffee Filesystem: a simple and easy to use filesystem that lets you store data and not worry about underlying problems.
  • Power profiling: Contiki allows you to monitor your energy usage with the energest library and the powertrace tool, which can easily be extended according to your needs.

[edit] Contiki Programming is Straightforward C

Contiki is simple and as straightforward as you would imagine an embedded operating system to be. You won't need to learn a new programming language, or a new programming paradigm. It is simple and straight C99.

[edit] Contiki Protothreads

Contiki uses the most intuitive way of controlling multiple tasks through protothreads, a very lightweight form of POSIX inspired threading, analogous to coroutines or Python generators. Simply define a protothread, and you are set to start your programming.

Contiki provides two intuitive ways of controlling the threads: events and timers. Events can initiate an appropriate response such as processing a data package when it is received by the radio. Timers allow you to schedule actions as required, such as reading some sensor data.

Many lightweight programs make use of these intuitive structures which allow Contiki to save energy during idle periods.

Personal tools