Cooja Simulator

What is Cooja Simulator?

  • A flexible java based simulator is also known as COOJA simulator which is designed for simulating networks of sensors running the Contiki operating system
  • Large and small networks of Contiki motes to be simulated by cooja.
  • As in hardware level the motes can be emulated which is performed in slower manner.
  • Motes can allows precise inspection of the system behavior, or at a less detailed level, which is faster and allows simulation of larger networks.
  • For contiki development cooja is highly useful
  • Using this simulator developers should test their code and systems before running it on the target hardware
  • To debug developers software and to verify the behavior of their systems they need to set up new simulations regularly



  • The Contiki operating system includes a network simulator called Cooja
  • Cooja simulates networks of Contiki nodes.


  • The nodes may belong to either of three classes:
    • Emulated nodes – Emulation of entire hardware of each node,
    • Cooja nodes – Compilation and execution of the Contiki code for the node is to be done on the simulation host
    • Java nodes – Need reimplementation for node behavior which is done by java class
  • A single Cooja simulation can have a mixture of nodes from either of the three classes


  • Since version of 2.0 the cooja simulator is included in Contiki

Platform Support:

  • COOJA is in Contiki operating system which supports three different abstraction levels
  • Implementation of nodes in java which is simulated at the levels of application or networking level
  • Without any connection to Contiki, nodes at this level can be useful when prototyping high-level algorithms which when tested and evaluated can be ported to deployable sensor node code.


  • Cooja are useful for the development of distributed algorithms

Radio Medium:

  • Two simple radio mediums implemented and registered at the simulator start-up which is presented in the basic version of COOJA
  • First radio medium is completely silent and no data is transferred
  • Second radio medium uses two distance parameters such as interference range and transmission range
  • Receiving radio device capture all data packets which will never corrupted in any way

Cooja Plug-in:

  • In a regular java panel, plugins are implemented and also an advanced graphical interfaces are created by the user in a straight forward way
  • Plugins can be of four different types, and they are treated slightly different.
    • Simulation Plugin
    • Dynamic plugin
    • GUI Plugin
    • Mote Plugin