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.
Architecture
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.
Drivers
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.
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.
Libraries
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.
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.
Simulation
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 :