micro-LF#
Deterministic concurrency for embedded systems. micro-LF brings the reactor model of computation to resource-constrained microcontrollers—eliminating race conditions, deadlocks, and non-determinism.
Key Features#
-
Deterministic Concurrency
Logical time ensures reproducible behavior. Given the same inputs, your program produces the same outputs—every time.
-
Resource Efficient
No dynamic allocation at runtime. All memory is pre-allocated, making the uLF runtime suitable for safety-critical systems.
-
Multi-Platform
Write once, run on Zephyr, RIOT, FreeRTOS, ESP-IDF, Raspberry Pi Pico, or bare metal with minimal changes.
-
Federated Execution
Distribute reactors across multiple nodes while maintaining determinism through coordinated scheduling.
Supported Platforms#
Lingua Franca#
Lingua Franca is a polyglot coordination language for building deterministic, concurrent systems. The uLF runtime is the embedded runtime that enables LF programs to run efficiently on microcontrollers.
Quick Example#
A simple blinky reactor that toggles an LED every 500ms:
target uC
main reactor {
timer t(0, 500 ms)
state led_on: bool = false
reaction(startup) {=
// Initialize LED GPIO
=}
reaction(t) {=
self->led_on = !self->led_on;
// Toggle LED
=}
}
Get Started#
-
Getting Started
Set up your first micro-LF project with our step-by-step guide.
-
Philosophy
Understand the reactor model, logical time, and deterministic concurrency.
-
Documentation
API reference, annotations, and compile flags.
Community#
Built by researchers and engineers from leading institutions worldwide:
Join Us
This project is looking for collaborators, users, and industry partners to fully realize the potential of the reactor model for embedded systems. Join our Google Group or reach out to us!
