Oberon RTK

Change Note 2026-11-03

Entity Component System (ECS) for real-time control – evaluation round 4: schedules on two cores, the program's definition, the review guide and its tools

ECS for Control – Round 4

The fourth round of the Entity Component System (ECS) evaluation for real-time control programs. Three things were built this round: schedules – the partitioned program run on two schedules, one per core, the partitions unchanged and meeting only through their transports, with the crossings declared once and checked by the kernel across the cores; the program's definition – every module declaring its kind, and the ECS file extracted from the sources stating the program's structure in one place; and the review guide – the architecture's rules written down as check-points, with two tools holding the ones a tool can decide. The round comprises three programs of one family, EcsControlSchedule, and ten documents in their own section; the third round's set stands unchanged as its record.

This remains evaluation work, not part of the core framework. The tools are in beta until lib/v4.0, and the review guide is a draft until it is published with the library.

The documents:

  • ECS for Control: Concepts – the architecture, platform-neutral; the fourth edition of the concepts document, with schedules inside partitioning and the adapter as the layer where transport observations are recorded.

  • ECS for Control: Implementation – the third edition: the constructs the programs are built from, now by module kind, with the schedule layer, the transports under their precondition standard, and the kernel's lock at Run.

  • ECS for Control: The ECS File – new: the reference for the ECS file – the kind declaration every module carries, the sections and the kinds, the facts the extractor writes, and the ECS map file beside it.

  • EcsControlSchedule – the EcsControlSchedule programs: the partitions, the Systems, what they do on the bench, and what changes between one schedule and two.

  • ECS for Control: Schedules – new: why the partition makes several schedules a small step, what the schedule layer adds, and the prescription for creating a schedule and moving a partition to it, step by step.

  • ECS for Control: Review Guide – new: the review of an ECS program, check-point by check-point – what each reads, what must hold, and what a program without it is – with the tools' coverage marked on every check-point.

  • ECS for Control: extract-ecs – manual page: the extractor, writing the ECS file and the ECS map file from a built program and comparing them against a previous pair.

  • ECS for Control: check-ecs – manual page: the checker, a built program against the review guide's check-points, the findings under their identifiers.

  • ECS for Control: Round 3 Retrospective – the round-3 outlook tracked against what this round delivered, verdict by verdict, with the round's lessons folded in as a section.

  • ECS for Control: Round 4 Outlook – where the evaluation goes next: a roadmap of the work ahead, the architecture round on recovery and the asynchronous boundaries first.

Example Programs

  • EcsControlSchedule is in <repo>/examples/v3.2/rpi/pico2/EcsControlSchedule/, for the RP2350 (Pico2), based on lib/v3.2: EcsControlSchedule-v26 on one schedule, -v29 on two schedules, one per core, and -v30 with a further partition moved to the second schedule, ticking at its own period. The partitions are the same files in all three.

  • The examples are self-contained together with their own lib directory, which carries the evaluation's candidate framework material – the kernel with its per-schedule contexts, the error console shared by the cores, the transport primitives, the observation machinery; the installed lib/v3.2 is untouched. Each program directory holds its extracted ECS file and ECS map file.

  • The ECS tools are in ecs-tools/ beside the programs – extract-ecs, check-ecs, the kinds' reference implementations and the test suites. The skeleton generator is a tool of the round, not published with it.

  • The Astrobe configuration files for the three programs are in <repo>/config/astrobe-rp2350/pico2-rp2350-v32/, one per program, v32-rp2350-pico2-ecs-schedule-v26.ini, -v29.ini and -v30.ini.

  • ref/ beside the programs holds the reference implementations of the four transport kinds – sampling port, queueing port, ring buffer, buffer – as complete modules, generated from the ECS file beside them: what the review guide compares a program's transport against. Beside them lies the import allow-lists file, which the review and the tools read a program's imports against.

  • The programs compile and run on the target hardware (Pico 2, RP2350); the two-schedule programs use the second core.

Last updated: 3 November 2026