Fetching the latest programs, projects, and workspace data.

A real-time operating system for Earth & Space
Showing 5 of 54 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: riverquiet
This project implements a D-CAN driver for the AM335x controller on the BeagleBone Black and integrates it into the RTEMS CAN stack, addressing the current lack of CAN support for this widely used embedded platform. This enables RTEMS applications to access CAN communication through standard interfaces such as /dev/canX. The main challenge lies in bridging the mismatch between the mailbox-based D-CAN hardware architecture and the queue-based abstraction used in RTEMS. To address this, the driver will introduce a mapping layer that emulates FIFO-based reception using hardware message objects and implements a software-managed, priority-aware transmission mechanism. Synchronization will be carefully handled through IFx register access and interrupt management to ensure correctness and real-time behavior. The implementation will follow an incremental approach, starting with a minimal working driver (initialization, polling-based TX, FIFO RX), and then extending to interrupt-driven operation, improved mailbox utilization, and priority-aware scheduling. Validation will be performed on real hardware using loopback and cross-platform communication tests (RTEMS ↔ Linux). Deliverables include a fully functional and maintainable D-CAN driver integrated into RTEMS, along with documentation, test demonstrations, and validation results. This work will also serve as a reference for future CAN driver development within the RTEMS ecosystem.
Mentors: Student: aftwasiq
This project will integrate the Scrutiny Embedded instrumentation library to RTEMS. The result of this project will be an instrumentation interface that provides in-field debugging and an alternative to JTAG-based stop mode debugging, which is particularly useful for hobbyists and beginners, or for those debugging systems which are live. Deliverables will include a working two-way UART transport, integration of Scrutiny functions to RTEMS, the ability to expose specific metrics from RTEMS to Scrutiny, a user facing API for developers, a package under the RTEMS Source Builder titled rtems-scrutiny, and the necessary test suites for all use cases. This effort will provide RTEMS users with an effective Scrutiny port which can then successfully be hooked up to their respective clients for streamlined debugging.
Mentors: Student: Ayush Yadav (acidicneko)
RTEMS Deployment currently supports TAR and RPM package types for toolchain and RTEMS BSP configuration distributions. However, users of Debian-based Linux distributions and FreeBSD must currently use TAR packages, which cannot track dependencies, upgrades, or clean removals like a real package manager. This project will provide native packaging support for Debian (.deb) and FreeBSD (pkg) package types within RTEMS Deployment. A packaging abstraction will be implemented in Python and will be shared between both packaging backends by refactoring the existing RPM backend. This will provide a clean integration with our current deployment model. This will provide RTEMS toolchain installation and management support for developers using Debian, Ubuntu, and FreeBSD distributions with their native package managers. It will also provide integration tests, documentation, and a tutorial for future contributors to easily integrate other package types into RTEMS Deployment.
Mentors: Student: purple-affogato
The goal of this project is to introduce more locking protocols, in particular Multiprocessor Priority Ceiling Protocol (MPCP) and Distributed Priority Ceiling Protocol (DPCP), to RTEMS to be used by semaphores, as well as testsuites for the two protocols. This allows users to choose different locking protocols to use can be more practical depending on their application.
Mentors: Student: mez3n
This project aims to update the current memory allocator used by RTEMS to be modular, allowing users to provide their own heap implementation or use one supplied by RTEMS. It will also include implementing the TLSF allocator as the default allocator instead of the current first-fit approach. This change will address the existing fragmentation and unpredictable runtime issues associated with the current allocator. Additionally, the project will explore the implementation of RT-Mimalloc, a modified version of Microsoft’s mimalloc optimized for real-time systems, representing the first open-source realization of this allocator. Finally, the project will add an allocator benchmark to evaluate the new memory allocators as well as any user-provided implementations.