Next-Generation Open Source Automation

Deterministic Real-Time Control Platform

An open-source stack for industrial automation where C++ performance, IEC 61131-3 compatibility, and Linux real-time scheduling converge.

The undoRT Ecosystem

Six components, one pipeline — from hardware OS to legacy migration.

Compiler

Transpiles IEC 61131-3 Structured Text into clean, native C++17. Supports Function Blocks, structs, enums, arrays, inheritance, and modular project generation.

Released · v0.2
Foundation

Header-only C++20 core infrastructure shared across all undoRT projects. Provides IoBus interface, ProcessImage, IEC 61131-3 type mapping, and STArray.

Released · v0.2
Runtime

A multi-threaded SoftPLC runtime that executes C++ code generated by st2cpp. Designed from scratch to run natively on undoOS with no intermediate VM.

Released · v0.2
Core OS

A Linux Preempt-RT configuration optimized for multi-platform industrial hardware. Real-time tasks are pinned to isolated cores with FIFO scheduling for predictable latency.

In Development
Fieldbus

Fieldbus management built on IgH EtherCAT Master, running deterministically in user-space alongside undoPLC. Launching with EtherCAT; further protocols planned.

In Development
Migration

Ingests existing TwinCAT and CODESYS projects, extracts logic and variable declarations, and routes them into the undoRT build pipeline via st2cpp.

In Development

Roadmap

Where the project stands and where it is headed.

Now

st2cpp v0.2 — Compiler foundation

ST → C++17 transpiler with full POU support, modular project generation, and a header-only runtime. Public release with GPL-3.0 license. Integration with Process Image (undoCore)

Now

undoCore v0.2 — Shared core infrastructure

Header-only library providing IoBus, ProcessImage, types and conversions IEC 61131-3 type mapping for all undoRT projects.

Now

undoPLC v0.2 — Integrated with undoCore

Multi-threaded PLC infrastructure now uses undoCore for process image management and fieldbus interfaces.

Next

undoBUS — Fieldbus wrapper (EtherCAT)

Open source wrapper to use Etherlab Master EtherCAT, built on undoCore's IoBus interface.

Later

undoImport — Legacy project migration

TwinCAT (.tmc/.tpy) and CODESYS project import, feeding directly into st2cpp. Makes the pipeline immediately useful for existing automation projects.

Future

undoPLC + undoOS + undoBUS — The full stack

SoftPLC runtime, Linux RT image, and EtherCAT fieldbus integration. These components require dedicated RT hardware for validation and are being developed in parallel.