Arduino IDE is designed to run well on Windows 10, macOS, and Linux. However, in contrast to Raspberry Pi, which is a fully-fledged computer, Arduino runs as a single-board microcontroller. Therefore, a real time operating system (RTOS) is preferred in actual Arduino projects since it has a smaller footprint, better control over the tiny peripherals, and no buffering delays.
The following is our list of industry recommended operating systems for Arduino’s embedded environment.
FreeRTOS is a market-leading RTOS for all kinds of microcontrollers and small processor projects. Available as an MIT open-source license, the official site says the operating system is downloaded once every 175 seconds.
Some of the advantages of FreeRTOS include over the air (OTA) updates, an exhaustive collection of IoT libraries, managing data sharing and hardware resources across multiple tasks, and more predictable memory use.
There are two ways to make this operating system work with Arduino. You can either download the source code and example projects from the official FreeRTOS GitHub or add a specific Arduino library optimized for use with an Arduino kernel to an already downloaded existing Arduino IDE.
For the latter, you can download a library that supports Arduino’s Uno, Mega, and Leonardo boards (example above).
There are many examples of RTOS installations for Arduino available online. The FreeRTOS site has its own active forum where you can find relevant support for installation guidelines.
If you want extensive support for all kinds of Arduino boards on a dedicated embedded platform, Simba offers a brilliant option. Not only does it support Arduino Uno and Mega, but also Zero, Due, Nano32, Pro Micro, and more.
Among the advantages of Simba are a simple shell design, fast debugging, and a fairly extensive standard library that is comprised of a vast range of functions from USB to Math, sensors, and global navigation satellite systems.
The following three ways make Simba work with Arduino, all of them accessible from the “Getting Started” section of the website.
You can run it from PlatformIO, which is based on Microsoft Visual Studio code. Simba also runs from existing Arduino IDE, where it has to be installed as a third-party board on Boards Manager. Finally, the Simba build can be insalled on Linux (Ubuntu 14).
In embedded industry parlance, a trampoline refers to short snippets of code which execute other lines of code. This has inspired a no-frills static RTOS for small embedded systems called Trampoline. It is available as a GitHub project and runs on Arduino Uno and Mega boards.
The main advantages of Trampoline include real time predictability, support for very low RAM (32 kB), ROM (128 kB), and CPU (16 bit). What this means is that Trampoline has been designed for tiny cyber physical systems such as miniature drones and digital controllers such as brakes.
Trampoline has been developed by the Real Time System Group at L2SN Laboratories in France. The GitHub page has further instructions for downloading the small RTOS in macOS, Windows, and Linux.
Based on FreeDOS, an open source operating system, DuinOS is an RTOS designed exclusively for Arduino boards. It currently supports FreeRTOS-based embedded projects which are available as a GitHub repository.
The advantages of DuinOS include basic multitasking and multi-threading, low RAM and CPU requirements and efficient signaling.
To install DuinOS, you only need Arduino IDE installed on your existing Windows, Mac or Linux system. The detailed instructions are available on the GitHub page.
Other Notable Mentions
There are a few other RTOS which work properly with Arduino IDE. These include LynxOS, which has an extensive industry recognition similar to FreeRTOS. It is designed to work with hardware architectures which support virtualization.
Another example is VxWorks, a proprietary operating system for embedded projects.
If you are serious about using Arduino as your main development platform, you will need to step out of the official operating system guidelines.
Arduino projects allow you to build sophisticated IoT gadgets with an extensive support for advanced designs. Using the right operating system can make all the difference on your project costs, efficiency, and time constraints.
Are there are any other real time operating systems you have in mind for Arduino? Please let us know in the comments.