An open-source stack for industrial automation where C++ performance, IEC 61131-3 compatibility, and Linux real-time scheduling converge.
Six components, one pipeline — from hardware OS to legacy migration.
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
Header-only C++20 core infrastructure shared across all undoRT projects. Provides IoBus interface, ProcessImage, IEC 61131-3 type mapping, and STArray.
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
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 management built on IgH EtherCAT Master, running deterministically in user-space alongside undoPLC. Launching with EtherCAT; further protocols planned.
In Development
Ingests existing TwinCAT and CODESYS projects, extracts logic and variable declarations, and routes them into the undoRT build pipeline via st2cpp.
In DevelopmentWhere the project stands and where it is headed.
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)
Header-only library providing IoBus, ProcessImage, types and conversions IEC 61131-3 type mapping for all undoRT projects.
Multi-threaded PLC infrastructure now uses undoCore for process image management and fieldbus interfaces.
TwinCAT (.tmc/.tpy) and CODESYS project import, feeding directly into st2cpp. Makes the pipeline immediately useful for existing automation projects.
SoftPLC runtime, Linux RT image, and EtherCAT fieldbus integration. These components require dedicated RT hardware for validation and are being developed in parallel.