K‑RT Microkernel

An open-source real-time kernel with very footprint for microcontrollers

Key Features

⚙️ Runs on many MCUs
PIC16/24/32, Atmel, ESP32, RP2040, STM32, NXP, Renesas, WCH, Linux devices and more
🧠 Minimal footprint
100 Bytes RAM + 1.5KB Flash minimum
⏱ Real Time Tasks
4ms real-time scheduler and scheduled tasks
🧩 Modular driver architecture
📂 Free & Open-Source (GPLv3 / commercial)

Getting Started

Supported MCUs

PIC16F628 Port mature, others coming (Arduino Uno, Beagle-Board, Raspberry PI)

Steps:

  1. Download HEX from GitHub
  2. MCU: Flash using ICSP, J-Link, ST-Link ..., PI: Run installer
  3. Connect the embedded device to a Computer or PI running the Studio
  4. Start Micro-StudioPLC and Applications
// Example, blink LED in 4ms Real Time and 1s scheduler

inline void k_rt_task_4ms_user(void) {
  blink_1(); // Runs in RT Context
}

void k_st_task_1s_user(void) {
  blink_2(); // Runs Scheduled Context
}

Ports and Applications

GPIO Lab – PIC16F628
Control the GPIO, turn as inputs/output, set Pull up, turn outputs on-off
Port Page with Downloads and Documentation

Documentation & Resources

About the Project

K‑RT is a minimal real-time microkernel ideal for ultra-low-power embedded systems. It prioritizes determinism and simplicity, ideal for education, industrial applications, and hobbyist projects with constrained resources.

The embedded kernel also supports higher-end microcontrollers and thanks to its minimal footprint and intrinsic design, it provides Developper with a set of tools to monitor and control their application code, survery the resource utilization and optimize their code while keeping the core functions always running, thanks to the RT / ST contexts.

Supervision

Systat command provides statistics about MCU ressource usage (CPU and stack load)

Status command provides a feed-back from the various K-RT states and fault/warning words

The Kernel design allows developper to focus on application code, lifting up from the microcontroller driver architecture. It provides a template to start writing code quicker and safer, as well as mechanisms to do simple debugging and Kernel and user space Start/Stop commands.

Communications

The communication protocol is open and has provision for User specific commands and future evolution. It support Base commands for the Kernel, for User space, and User specific functions. It supports simple byte communication, frames, CRC, GPIO configuration and manipulation and more ...

Contact informations

Navigate through