The 6TiSCH Simulator

Brought to you by:

  • Thomas Watteyne (watteyne@eecs.berkeley.edu)
  • Kazushi Muraoka (k-muraoka@eecs.berkeley.edu)
  • Nicola Accettura (nicola.accettura@eecs.berkeley.edu)
  • Xavier Vilajosana (xvilajosana@eecs.berkeley.edu)


6TiSCH is an active IETF standardization working group which defines mechanisms to build and maintain communication schedules in tomorrow's Internet of (Important) Things. This simulator allows you to measure the performance of those different mechanisms under different conditions.

What is simulated:

What is not simulated:

  • downstream traffic

More about 6TiSCH:

what where
charter http://tools.ietf.org/wg/6tisch/charters
data tracker http://tools.ietf.org/wg/6tisch/
mailing list http://www.ietf.org/mail-archive/web/6tisch/current/maillist.html
source https://bitbucket.org/6tisch/


  • Install Python 2.7
  • Clone or download this repository
  • To plot the graphs, you need Matplotlib and scipy. On Windows, Anaconda (http://continuum.io/downloads) is a good on-stop-shop.


  • Run a simulation: bin/simpleSim/runSim.py
  • Plot fancy graphs: bin/simpleSim/plotStuff.py

Use bin/simpleSim/runSim.py --help for a list of simulation parameters. In particular, use --gui for a graphical interface.

Code Organization

  • bin/: the script for you to run
  • SimEngine/: the simulator
    • Mote.py: Models a 6TiSCH mote running the different standards listed above.
    • Propagation.py: Wireless propagation model.
    • SimEngine.py: Event-driven simulation engine at the core of this simulator.
    • SimSettings.py: Data store for all simulation settings.
    • SimStats.py: Periodically collects statistics and writes those to a file.
    • Topology.py: creates a topology of the motes in the network.
  • SimGui/: the graphical user interface to the simulator

Issues and bugs