Embedded Software Development

IoT-LAB offers full support for embedded software development, ranging from direct access to node hardware to OS-level features. Developers can leverage the different APIs to build applications.


IoT-LAB provides three layers of API: Drivers, Operating Systems, and Communication Libraries, allowing users to program embedded applications. Drivers offer direct access to the open-node hardware, Operating Systems and Communication Libraries provide higher-level features. Users can develop applications built on top of supported OS-es or directly on top of the Drivers layer, without any OS.

IoT-LAB software is available on GitHub




Drivers expose the details of WSN430 and M3 open-nodes hardware as a thin layer of C. API entry-points provide full access to 802.15.4 PHY radio, physical sensors, serial buses, digital and analog input/output, and real-time clocks.

Learn more about Drivers


Operating Systems

Various operating systems (OS) can run on open nodes. A8 open-nodes feature the beefiest setup and run Linux, WSN430 and M3 nodes are less powerful and run lighter embedded OS-es, or no OS at all. Provided OS-es are ports of leading open-source projects to IoT-LAB hardware and are well suited for the Internet Of Things.

Learn more about Operating Systems


Wireless communications libraries offer various levels of API on top of raw 802.15.4 chips drivers. Libraries are provided as standalone building blocks or integrated on top of an OS. Using IoT-LAB communication protocol libraries allows users to develop connected application quickly.

Learn more about Libraries

Software in Open Source

IoT-LAB software is licensed under a CeCILL License. IoT-LAB users are welcome to contribute code, papers, tutorials or experiments reports. Contributed papers are formally featured on page Publications, contributed code or technical documents are featured below with credits.

  • Experimental Evaluation of RPL routing protocol: Karel Heurtefeux from QMIC kindly provided a concise report on his experiments
  • Contiki for WSN430: Alexandre Boeglin from Inria Nancy released a git repository for WSN430 that follows the official contiki repository; see here
  • TinyOS (2.1.2 and up) support for WSN430
  • RIOT support for WSN430: Milan Babel contributed support directly into the main riot project.

More details on GitHub


Simulation is an important phase during the design. It can be the first step before experimentation on IoT-LAB platform. Some simulation tools, not supported by the IoT-LAB team, can be used like :

  • wsim is an emulation tool for node sensor WSN430. It permits to test programs, before their upload in a sensor.
  • wsnet-2 is a simulation tool for wireless networks. It allows for ¬†technical choices about a network and its nodes before the deployment of it
  • wsnet-3 is an evolution of wsnet-2.