nodecum - learning

Language selector

It is our goal to develop a self-sufficient communication system based on open source software. We want the Zephyr RTOS (Real Time Operating System) to be used. The hardware related programming can be a challenge for the beginner. We want to find together a way to understand the programming and hardware development step by step and example.

Operating System

For the development of open source software we also want to use open source software. Therefore we choosed to describe the procedures on the basis of Linux. We use Ubuntu, other distributions should behave similarly. The terminal In the past you communicated with a computer via a terminal. This is like a typewriter with a screen. You type commands and get an output on the screen. We’re going to run into this concept a lot more.

Toolbox

Emacs - Editor As developers of software we will edit text files. For this we need a tool called an editor. We have chosen the Emacs with good reason. We are going to create the program files as well as the documentation with it. We install the emacs package: sudo snap install emacs sudo executes the following command as super-user=administrator. After the installation you can open the editor via the menu Development -> Emacs.

Zephyr Build Environment

We would like to describe how to install the necessary software to develop programs under Zephyr. We will follow the basic procedure as described in the Getting Started Guide of Zephyr. Directories We have to determine where we want to put the components to be installed in the directory structure. To always have the same reference we create in our user directory (~) an entry ~/prog: mkdir ~/prog cd ~/prog Update the operating system $ sudo apt update $ sudo apt upgrade Install the Dependencies Adding from Kitware APT repository Kitware provides CMake as an Ubuntu package.

Documentation Writing

To write the documentation we use Emacs Org-Mode. The files are created under doc/content. We use Hugo to create a static website from the org files. You do this locally and can track your changes with a web browser. If you want the changes to take effect on the web server as well, then the changes of the repository are published on github (push). Via a so called webhook the webserver will be notified which will then fetch the changes of the repository and calls Hugo to recompile the website.