Let us look into some of the major tools available in Cooja Simulator
- Network – In the network tool window, the location of all wireless sensor nodes (WSN) aka nodes; can be seen. It is mainly meant for visualization purpose and to position the nodes. It will stay empty initially but once we start loading nodes we can see them in the network tool window. We can also see individual sensor transmission range(green circle) and detection range(grey area after green circle) by enabling the radio environment feature. I would suggest exploring its different features by trying out Cooja.
- Simulation Control – It is used to Start, Stop or Reload any simulation. It also shows the Speed index of the simulation. A rule of thumb is higher the number of nodes slower will the simulation run. (Note: Upon testing, I have often noticed with 100+ nodes simulation might freeze while running or after reload because memory is not properly cleaned by cooja in background.)
- Notes – Keep your notes or comments here. But, trust me, write your notes in the diary too 😉
- Mote output – Shows every minute detail of Mote (Yup! Nodes are also called Motes). Search each node by typing in search bar ID:<node_id> say for viewing node no. 11 data type ID:11 and hit enter.
- Timeline – Timeline of simulations where message and event logs are kept.
- Breakpoints – Used to set up breakpoints in simulations to debug issues.
- Radio messages – Log of radio messages and packets as they are generated. It can be saved as .pcap file so that we can debug the messages in Wireshark later.
- Script editor – Developers can add their own custom scripts which will interact or collect data from Motes and give advance analytics data of the simulations.
- Mote duty cycle (Powertrace) – Used to check the Mote-wise sleep cycle percentage (%) separated by transmission(Tx) time and Reception(Rx) Time and their average values.
These are the few basic tools used in cooja simulator available in contiki. If you want to see how to use cooja and run a hello world program check out this Basic Hello World Tutorial or if you like to explore more check out the Advanced Hello World Tutorial.
I hope this tutorial helped! Feel free to comment if you want any further help or support from me.
Saifur Rahman is a Full Stack Django and Laravel Developer. Additionally, he has spent a significant amount of time to learn and research in the domain of the Internet of Things (IoT). He loves to share his work and contribute to helping fellow developers. Saifur also runs the following websites and services – Pingsms.in and Techmion.com