Latest public Process Bus release: M3.H stable laboratory edition (24 October 2026). For the quickest overview of what you can use today, start with Getting Started. The detailed table below also covers lower-level libraries and developer features.
Status terms are intentionally conservative:
- Live-proven — exercised against a reachable IED or vendor simulator.
- Public release — packaged, versioned and publicly downloadable with accepted product-level evidence and an explicit claim boundary.
- Offline-tested — deterministic unit/integration/fuzz/CI evidence exists, but no current live-device claim is made.
- Software-ready for lab — the production path and guarded live-test harness are implemented; retained physical/simulator evidence is still required.
- Partial — useful implementation exists but important parity or interoperability gaps remain.
- Planned — not implemented as a usable public feature yet.
| Area | Feature | Status | Current evidence / boundary |
|---|---|---|---|
| Transport | TCP client transport | Live-proven | Windows/POSIX transport is used by live discovery, reporting, Dynamic DataSet, and C5 control paths. |
| OSI | TPKT / COTP | Live-proven | Live association path reaches MMS endpoints; controlled timeout/recovery evidence exists. |
| OSI | Session / Presentation / ACSE | Live-proven | Current association profiles and the C#-compatible fallback path interoperate with exercised endpoints. |
| MMS client | Initiate / association lifecycle | Live-proven | Fresh association/reconnect cycles are accepted on current evidence sets. |
| MMS client | GetNameList domains/variables | Live-proven | Large live inventories and pagination are exercised. |
| MMS client | GetVariableAccessAttributes | Live-proven | Live model and C5 control discovery consume exact MMS TypeSpecification evidence. |
| MMS client | Read | Live-proven | Discovery, reporting, control descriptor, timeout, and status reads are exercised live. |
| MMS client | Write codec/runtime | Live-proven / guarded simulator | C5 sent explicitly armed SBOw, Cancel, and Oper Writes to external IEC 61850 client with JSON/PCAP accounting; physical IED control remains pending. |
| MMS client | GetNamedVariableListAttributes | Live-proven | Dynamic DataSet verification and report binding use the exact ordered directory. |
| MMS client | GO/SV/SG/LG exact-attribute deep Read | Live-proven | OCR7SR12 SGCB deep read accepted 5/5 attributes without mutation. |
| Live model | LD/LN/DO/DA projection | Live-proven | OCR7SR12 structural/type comparison with the C# oracle has zero blocking findings. |
| Live model | IED identity resolver | Live-proven | Identity is inferred conservatively from live logical-device evidence. |
| Live model | CDC inference | Live-proven + offline-tested | CDC inference is conservative; exact command binding uses live TypeSpecification. |
| Live model | Structural fingerprint | Live-proven | Repeated cycles and timeout/recovery retain the structure-only fingerprint. |
| Cross-language | Same-IED C# ↔ C++ structural/type comparator | Live-proven | Structural and common exact-type comparison pass with zero blocking findings on accepted evidence. |
| DataSet | Name inventory/member directory | Live-proven | Dynamic inventory may legitimately vary with runtime configuration. |
| DataSet | Dynamic create/verify/delete | Live-proven / guarded lab | One bounded lifecycle created an owned DataSet, verified exact ordered members, used it for reporting, then deleted only that owned DataSet. |
| Reporting | RCB inventory/read-only probe | Live-proven | Current endpoint evidence includes full RCB inventory and read-only classification. |
| Reporting | Dynamic RCB candidate planner | Live-proven | Read-only ranking identifies safe dynamic candidates without mutation. |
| Reporting | Bounded smart pre-claim failover | Offline-tested / stable live probe | Repeated read-only probes exclude busy/flapping candidates and rerank before mutation; mutation failures never trigger automatic switching. |
| Reporting | Guarded Dynamic RCB lifecycle | Live-proven / guarded lab | Explicitly armed trial bound/enabled one RCB, requested GI, decoded a report, then disabled/unbound with cleanup verification. |
| Reporting | Guarded static DataSet + RCB session | Live-proven / guarded single profile | A populated static URCB was selected after BRCB-only planning found no eligible candidate; the armed trial preserved its existing binding, decoded one report, then disabled/released it with cleanup verified. DatSet rewrites are rejected. |
| Reporting | BRCB retained replay / EntryID / PurgeBuf | Offline-tested | Bounded history, replay/resume/rewind, PurgeBuf, overflow, and replay-gap behavior are implemented. |
| Reporting | BRCB Owner / ResvTms / association lifecycle | Offline-tested | Multi-client ownership, reconnect/expiry, and association-loss semantics are hard-profile tested. |
| Reporting | BRCB recovery image v2 | Offline-tested / physical NVM pending | Recovery preserves retained window/cursor/gap with v1 restore; flash endurance and power-loss hardware evidence are separate. |
| Control | ctlModel discovery |
Live-proven / simulator | C5 rediscovered live ctlModel and exact command types before each action on external IEC 61850 client. |
| Control | Direct normal | Live-proven / simulator | The retained C5 acceptance record covers OFF and ON with exactly one Oper Write per deliberate action. |
| Control | SBO normal | Live-proven / simulator | The retained C5 acceptance record covers Select Read followed by exactly one Oper, plus explicit Select/Cancel with no following Oper. |
| Control | Direct enhanced | Live-proven / simulator | external IEC 61850 client OFF and ON-restore each sent one Oper, received positive CommandTermination, and changed/restored status without retry. |
| Control | SBO enhanced | Live-proven / simulator | Retained evidence covers SBOw -> Oper -> CommandTermination in both directions, plus a separate accepted SBOw -> Cancel case. |
| Control | Oper / SBOw / Cancel live-type binding |
Live-proven / simulator | Exact Boolean structures from live GVAA were sent successfully; unknown vendor fields still fail closed. |
| Control | Control value types | Offline-tested | SPC/DPC/integer/unsigned/floating/step binding is conservative; DPC uses network bit order. |
| Control | Ownership / immutable sequence | Offline-tested | Second-client takeover, expiry, mismatch, authorization revocation, and association-loss cleanup are covered. |
| Control | CommandTermination | Live-proven / simulator | Positive enhanced termination is exact-control correlated; ordinary ST/MX reports cannot complete a command. |
| Control | LastApplError / ControlError / AddCause | Live-proven / simulator | external IEC 61850 client negative path decoded DataAccessError 3, ControlError 3, and AddCause 8; generic reports require exact origin/ctlNum correlation. |
| Control | Automatic command retry | Disabled / live-proven | Every live case reconciled the exact Write count with PCAP; no automatic retry occurred. |
| Control | Live interoperability harness | Live-proven / simulator | Read-only default, exact arm token, typed values, JSON evidence, PCAP reconciliation, and state restoration are exercised. |
| GOOSE | PDU / Ethernet encode-decode | Offline-tested | Golden vectors, deterministic tests, and fuzz corpus; physical multi-vendor acceptance is separate. |
| GOOSE | Publisher/subscriber runtime foundations | Offline-tested | Physical process-bus acceptance remains pending. |
| Sampled Values | PDU / Ethernet encode-decode | Offline-tested | Process-bus work remains separate from MMS control evidence. |
| Sampled Values | Caller-owned bounded encode path | Offline-tested | encode_into(span) avoids fresh frame-buffer allocation in steady-state publisher design. |
| Sampled Values | Autonomous ESP32-P4 4I+4V Ethernet publisher | M3.H.3 official stable / on-wire capture | 4,705,090 SV frames in 19 min 36 s at 3,999.886 fps with no missing, duplicate, reorder or malformed frames. Internal PTP SOURCE produced 3,528 PTP frames; received SV carried smpSynch=2. Closing Studio does not stop the powered board; reconnect adopts live state. |
| Desktop product | ARStack Studio / Process Bus Simulator M3.H.3 | Official stable lab release | Windows Setup / Portable, Linux AppImage and matched ESP32-P4 firmware, 4I+4V editing, SV/PTP traffic injection for relay/BCU bench simulation, fail-closed LAN handling, Studio disconnect/reconnect adoption. Official release. |
| SCL | Engineering import and supported single-stream SV profile deploy | Current bounded single-stream capability | Host SCL/CID/SCD/IID read/import, normalization, diagnostics and deployment for supported 4I+4V DataSet layouts. Next: multiple streams on one ESP32-P4 and SCL-driven virtual MU selection (not yet in stable M3.H.3). Next phase. |
| COMTRADE | CFG/DAT read support | Offline-tested | ASCII/BINARY/BINARY32/FLOAT32 and mapping foundations are implemented. |
| PCAP | Read/write/evidence support | Live-proven for C5 evidence | Npcap loopback captures were reconciled with JSON Write lists and retained SHA-256 hashes. |
| Embedded | ARIEC61850::embedded_core boundary |
Offline-tested | Host-only services excluded by dedicated build profile. |
| Embedded | no-RTTI hard profiles | Offline-tested | GCC/Clang embedded/hard-profile gates are maintained. |
| Embedded | no-exceptions guarded control core | CI-gated | C1 has a dedicated -fno-exceptions -fno-rtti GCC/Clang hard profile. |
| Embedded | no-exceptions full MCU codec | Partial | Shared legacy validation/convenience paths still carry exception debt. |
| Embedded | ESP32-S3 W5500 / ESP-IDF Ethernet adapter | Planned | Reference design uses ESP-IDF W5500 MACRAW integration with raw Ethernet for SV/GOOSE and esp_netif/lwIP for MMS TCP on the same interface. |
| Embedded | ESP32-S3 8DI/8DO IED application | Planned | Waveshare board application reference after bounded MMS server foundation exists. |
| MMS server | Static association/browse/read/write foundations | Offline-tested / partial | Static server/runtime components exist; full deterministic simulator/server integration parity remains later work. |
| File services | FileDirectory / FileOpen / FileRead / FileClose client | Live-proven / read-only | Bounded portable streaming runtime, signed FRSM, exact error evidence, rooted-backslash fallback, success cleanup, and forced-failure cleanup were exercised on the controlled lab target. Current directory fit one page; multi-page live continuation remains pending. |
| File services | Upload / delete / rename | Not implemented | Remote file mutation is deliberately outside the current milestone. |
| Security | ASan/UBSan | CI-gated | Security/Evidence workflow is required on active heads. |
| Security | libFuzzer corpora | CI-gated | BER, GOOSE, SV, PCAP, SCL, COMTRADE, OSI, MMS services/reporting, and file-service corpora are maintained. |
| Portability | GCC / Clang / MSVC | CI-gated | C1-C5 build through normal and dedicated matrices; MSVC was validated locally for this integration. |
| Acceptance | Read-only same-IED structural stability | Live-proven | Repeated-cycle and timeout/recovery evidence are retained. |
| Acceptance | Control C5 tested simulator profile | Live-proven | All four ctlModels are recorded in CONTROL_INTEROP_ACCEPTANCE.md; the locally retained subset adds hashed JSON/PCAP evidence for negative diagnostics, SBO enhanced Cancel, Direct enhanced termination, exact Write counts, and state restoration. |
| Acceptance | Full physical IEC 61850 control interoperability | Pending | Association-loss, contention, physical-IED, and broader multi-vendor evidence remain required. |
| Acceptance | Multi-vendor physical interoperability | Not yet complete | Required before industrial replacement or broad conformance claims. |
Phase 4C/4C.1 discovery remains read-only and sends only explicitly allowed discovery/read services.
Dynamic DataSet/reporting and Phase 4D-C control use separate, explicit mutation APIs. The C5 harness performs discovery only unless an action is supplied, and refuses every control Write without the exact laboratory arm token plus target object and value. It never retries a command automatically.
Reporting/BRCB mutation semantics are distinct from the C5 control gate. Failure in either domain does not authorize automatic mutation or failover in the other.
C1-C5 provide a guarded production control path plus a live evidence harness. The tested simulator profile has an acceptance record for all four control models, and a complementary locally retained subset includes hashed JSON/PCAP evidence. The project remains short of physical and broad multi-vendor acceptance.
SOFTWARE_READY_FOR_LAB applies to all implemented control models.
SIMULATOR_INTEROP_PASSED applies only to the specific simulator profile recorded in CONTROL_INTEROP_ACCEPTANCE.md. Any stronger LAB_INTEROP_PASSED or physical-IED claim still requires the runbook's retained positive, negative, failure, cleanup, JSON, and packet-capture evidence. These results do not constitute IEC 61850 conformance certification.
The next gaps are association-loss and contention evidence for control, remaining MMS file-service parity and fault-record workflows, mutable SCL export/reconstruction, deterministic IED simulator/server integration, and broader application/UI parity. The current SV/PTP public lab release is M3.H. Historical v0.1.0 evidence remains documented independently; future profile expansion and external interoperability observations are tracked as separate engineering efforts.