Written by FIT IOT-LAB
Description: Zephyr is a real-time operating system designed for the Internet of Things (IoT). The aim of this tutorial is to understand how to setup your environment and how to compile a Zephyr firmware. Note that Zephyr can be used with the following IoT-LAB nodes: nRF52DK, nRF52840DK, nRF51DK, BBC micro:bit, FRDM-KW41Z, Arduino Zero, ST B-L072Z-LRWAN1, ST B-L475E-IOT01A. The Zephyr SDK, which is required to build the firmwares, is provided by the SSH frontend of each IoT-LAB site.Setup your environment by cloning the iot-lab repository from GitHub
Setup your environment by cloning the iot-lab repository from GitHub
Setup Zephyr target
Setup the environment variables required to use the Zephyr SDK:
This must be done in each new shell. To have the SDK setup everytime, the command above can be added at the end of your
ZEPHYR_BASE environment variable:
This must be done in each new shell. To have
ZEPHYR_BASE correctly setup everytime, the command above can be added at the end of your
~/.bashrc file (use an absolute path to
Now that everything is in place, let’s build our first
hello_world firmware. This firmware is based on the sample provided in
parts/zephyr/samples/hello_world. The sample will be built for the nRF52DK node, which corresponds to the board nrf52_pca10040 in Zephyr.
The generated firmware is located in the
*.elf file to flash the nodes using the IoT-LAB tools (webportal or cli-tools)
Here is a table containing the mapping between node names with IoT-LAB names and Zephyr names:
hello_world firmware for each of the nodes listed above.
Congratulations, you have completed the tutorial! For more from FIT IOT-LAB, visit their website: https://www.iot-lab.info/
If you’re new to Zephyr, take a look at our Getting Started Guide or our Contributor Guide. Or, you can join the conversation or ask questions on our Slack channel or Mailing List.