NXDART: Distributed Automated Build and Runtime Test Environment for Apache NuttX RTOS

Here goes  my latest technical publication from the world of embedded systems and electronics, authored by Tomasz Cedro (1,2,5,6), Gregory Nutt (1), Lup Yuen Lee (1), Grzegorz Południewski (2,6), Szymon Wilk (2,4), and Wojciech Glinkowski (2,3), from the (1) Apache NuttX RTOS; (2) Polish Telemedicine and e-Health Society; (3) Warsaw Medical University, Poland; (4) Poznan University of Technology, Poland; (5) CeDeROM, Poland, (6) IQCREDO, Poland.

Paper was published in the International Journal of Electronics and Telecommunications Vol. 72 No. 3 (2026) and is available online in open-access at IJET [1] and NuttX [2] websites.

Abstract

This paper presents the concept and initial implementation of a distributed automated build and runtime test environment for NuttX, called NXDART. NuttX is Apache 2.0 licensed Free and Open-Source (FOSS) Real-Time Operating System (RTOS), created by Gregory Nutt and released to the public in 2007, with strong focus on portability, small footprint, scalability, and compatibility with POSIX, ANSI, and other stan dards commonly used by Unix and other RTOSes (e.g. VxWorks).

NuttX community consists of volunteering hobbyists, academia, and small/medium/large enterprise professionals from around the world. NuttX supports over 15 different 8..64-bit CPU architectures (RISC-V, ARM, ARM64, AVR, CEVA, HC, MIPS, Misoc, OpenRISC, Renesas, SPARC, TriCore, x86, AMD64, Xtensa, Z16, Z80, FPGA) on over 340 unique hardware boards with over 1600 example target firmware configurations. Project development intensity is measured in thousands of files changed every month with hundreds thousands of code lines modifications.

In order to assure self-compatibility and long term maintenance for supported platform all new source code contributions are always processed manually by independent reviewers and automated Continuous Integration (CI) software tools. Unfortunately, not all breaking changes can be detected that way. Code may build for various architectures and even run correctly on emulators but it may still not work as expected on real world hardware. Therefore, comprehensive runtime tests are required.

Hardware testing of hundreds of different devices in one place turned out impossible for our free and community driven project. To address this problem we have invented distributed hardware-in-the-loop (HIL) test environment that is easy to set up and maintain as it reuses hardware components already owned by hundreds of users around the world. This approach assures maximum coverage of possible boards and build environments, independence and uninterrupted redundant availability of build and runtime test automation, with feedback logs reporting directly to the project upstream, at virtually zero cost.

[1] https://ijet.pl/index.php/ijet/article/view/10.24425-ijet.2026.157953
[2] https://nuttx.apache.org/articles

Apache NuttX RTOS PMC

It is my great honor to become a PMC (Project Management Committee) member in the Open-Source Apache NuttX RTOS [1]. Thank you for inviting me into this great community and totally amazing project! :-)

NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).

[1] https://nuttx.apache.org/

NuttX RTOS is now Apache TLP

My favorite NuttX RTOS [1] that is “Tiny Unix on MCU” has graduated to Apache Top-Level-Project [2], congratulations! :-)

Apache NuttX [1] is a real-time operating system (RTOS) that emphasizes standards compliance and small footprint, usable in all but the tightest micro-controller environments. It runs on 8-bit, 16-bit, 32-bit, and 64-bit microcontrollers across RISC-V, ARM, MIPS, ESP32, AVR, x86, and other architectures with a high degree of standards compliance. NuttX is used to power the Fitbit fitness tracker, as well as satellites, IoT devices, bluetooth headphones, drones, and more.

What I like most in NuttX is the development team / community.. and scalability starting upwards from 8-bit CPU’s. One day I wish porting NuttX to my 8-bit Atari and 16-bit Amiga and Atari ST and push new life to these amazing machines :-)

[1] https://nuttx.apache.org
[2] https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-apache-nuttx-as-a-top-level-project

Zephyr RTOS

If you never heard about Free-and-Open-Source ZEPHYR RTOS [1] (Apache 2.0 licensed) then it will make your day as the best platform out there for your new embedded electronics design :-) It works on anything.. even on Open-Source-Hardware RISC-V CPU [2] :-)

Update: After initial time playing around any my first bigger project I did not find Zephyr attractive for many reasons. I know people may like it or not, it’s up to you. For me constant changes, complexity of DTS required for custom board creation, and strong dependencies on external SDKs that are moving targets, make this solution harder to maintain than research. Turns out I prefer more old-school / conservative BSD Unix like approach and I found Apache NuttX RTOS [3] a lot cleaner, smarter in design, and self-contained, with strong commercial validation in many products around I would not even suspect :-)

[1] https://zephyrproject.org/
[2] https://riscv.org/
[2] https://nuttx.apache.org/