MLS/160A – System Reference
D o c u m e n t R e v i s i o n 1 . 1
9
4
OPERATING SYSTEM
The MLS/160A’s firmware is built with the lightweight real time operating system
RIOT
.
RIOT is a free, open source operating system and is designed for the particular require-
ments of Internet of Things (IoT) scenarios. For more information please see:
https://riot-os.org/
RIOT offers a low memory footprint, high energy efficiency, real-time capabilities and a
modular and configurable communication stack. It provides a microkernel, utilities like
cryptographic libraries, data structures (bloom filters, hash tables, priority queues), a shell,
various network stacks, and support for various microcontrollers, radio drivers, sensors,
and configurations for entire platforms, e.g. the STM32 MCU family.
The microkernel itself comprises thread management, a priority-based scheduler, a power-
ful API for inter-process communication (IPC), a system timer, and mutexes.
All this makes it an ideal OS for the MLS/160A and opens up versatile options for own de-
velopments, as well as benefiting from community driven enhancements.
In order to build an application or library with RIOT, you first need to download the source
code. You can obtain the latest firmware code from the SSV Github account:
https://github.com/SSV-embedded/fw-mls160a
To compile RIOT for the MLS/160A, you need to install the corresponding toolchain for
STM32 MCUs (ARM 32-bit Cortex-M3).
On a Linux host you may use the default GNU cross compiler for ARM architecture of your
Linux distribution. Please refer to the RIOT webpage to see how to set up a cross compiler
environment for a different operating system like Windows10.
Table 7
shows the STM32 GPIO mapping of the MLS/160A:
RIOT OS
STM32
GPIO line in use
MLS/160A
I2C
I2C1
PB6/7
BMI160/BME280
UART0
USART1
PA9/10
Debug Connector
UART1
USART2
PA2/3
J2 RS458P
Direction1
PortA1
PA1
IC2 RS485 Transceiver
UART2
USART3
PB10/11
J3 RS458S
Direction2
PortB14
PB14
IC3 RS485 Transceiver
LED0
PortC13
PC13
Power/Status LED
Table 7:
STM32 GPIO mapping of MLS/160A