Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
docs: synchronize public SMV v0.1.0 milestone
  • Loading branch information
github-actions[bot] committed Sep 15, 2026
commit 476a167f0d864bd374a62a7d8d32a64929670e71
126 changes: 0 additions & 126 deletions .github/workflows/docs-sync-smv-v010-v2.yml

This file was deleted.

17 changes: 9 additions & 8 deletions PROJECT_HANDOFF.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

This file is the **current-state handoff** for a new engineer or AI thread. Read [`NORTH_STAR.md`](NORTH_STAR.md) first for the long-term direction, then use this file to continue active development without reconstructing the bench history from chat.

Last major bench update: **2026-08-10**.
Last major product milestone update: **2026-09-15 — stable public SMV Injector v0.1.0 released**.

## 1. Active repository work

- Repository: `masarray/arstack61850`
- Active branch: `feature/esp32p4-smv-injector-p0-p1`
- Active PR: **#19 — Add ESP32-P4-ETH SMV injector P0/P1 and P2 50 Hz realtime foundation**
- Timing evidence issue: **#21**
- Standards-first SCL/profile/PTP roadmap: **#24**

Do not assume PR #19 is merged. Check its current head and CI before branching new embedded work.

- Production branch: `main`
- SMV production merge: `9c7fc7300220db4643e5643081240b955cfe12df` — PR #79
- Stable public SMV release: [`v0.1.0`](https://github.com/masarray/arstack61850/releases/tag/v0.1.0)
- P0.5 supervisor/physical release issue: #83 — closed
- Legacy first-trial SV PR #15 — archived/superseded, not merged
- IED Simulator PRs #75/#82 remain separate tracks and must not be conflated with the SMV release baseline

For current SMV product truth, start with [`docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md`](docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md). Sections below retain useful historical bench/toolchain context; where they conflict with the versioned release record, the release record and current `main` take precedence.
## 2. Tested hardware/toolchain

### Device
Expand Down
54 changes: 37 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,55 @@ ARStack61850 is the real-time, hardware-aware evolution of ARIEC61850.

The portable C++20 stack remains rooted in the ARIEC61850 behavioral model, but the project north star is now broader: build an open, deterministic IEC 61850 instrumentation platform for hardware-timestamped Sampled Values/GOOSE/PTP injection, analysis, commissioning and real-time closed-loop testing.

## Public release — SMV Injector v0.1.0

**Status: STABLE PUBLIC RELEASE · 2026-09-15**

ARStack Studio / SMV Injector v0.1.0 is the first public production milestone of the ESP32-P4 Sampled Values track. It packages the native Windows operator application, the accepted ESP32-P4 firmware, recovery tooling, and the validated 4I+4V reference workflow.

**[Download SMV Injector v0.1.0](https://github.com/masarray/arstack61850/releases/tag/v0.1.0)**

Public P0 profile:

- 4 current + 4 voltage channels;
- 4000 frames/s;
- 1 ASDU per Ethernet frame;
- 64-byte sample payload;
- `smpCnt` modulus 4000;
- `smpSynch=0` until separately measured disciplined-clock evidence exists.

Accepted physical evidence includes 10/10 Start/Stop cycles, live engineering edits, an uninterrupted 3600-second retained run at 4000 fps with `missed=0`, `txFailures=0`, `healthReconnects=0`, and `automaticStarts=0`, plus an independent SV capture spot-check with continuous `smpCnt` including 3999 -> 0 wraps.

Release source target: `9c7fc7300220db4643e5643081240b955cfe12df`. Accepted binary build head: `d9b5b6848415c7e6d1c52ec929e57c66b608058d`. See [`docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md`](docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md) for immutable release provenance, hashes, scope, and the remaining non-blocking research boundary.

## Start here

For a new engineer or AI development thread, read these before making architecture changes:

1. [`NORTH_STAR.md`](NORTH_STAR.md) — product thesis, standards, hardware roadmap and definition of success.
2. [`PROJECT_HANDOFF.md`](PROJECT_HANDOFF.md) — current ESP32-P4 bench status and immediate next work.
3. [`docs/ONLINE_MODEL_CONNECT_DECISION.md`](docs/ONLINE_MODEL_CONNECT_DECISION.md) — short decision contract separating full live discovery from SCL-assisted online connect.
4. [`LIVE_DISCOVERY_PROFILE.md`](LIVE_DISCOVERY_PROFILE.md) — detailed live-discovery and online-model interoperability boundary.
5. [`embedded/esp32p4_smv_injector/ARCHITECTURE.md`](embedded/esp32p4_smv_injector/ARCHITECTURE.md) — embedded real-time architecture boundaries.
6. [`docs/GLOBAL_BENCHMARK.md`](docs/GLOBAL_BENCHMARK.md) — vendor-neutral standards/industry research behind the direction.
7. Issue #21 — deterministic SV timing-evidence gate.
8. Issue #24 — standards-first SCL/profile/PTP roadmap.
9. PR #19 — current ESP32-P4 hardware implementation under bench validation.
2. [`docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md`](docs/SMV_STUDIO_V0.1.0_PUBLIC_RELEASE.md) — current public SMV product milestone, release provenance and validated boundary.
3. [`PROJECT_HANDOFF.md`](PROJECT_HANDOFF.md) — current repository handoff and separation between released SMV work and active follow-on tracks.
4. [`apps/arstack_studio/README.md`](apps/arstack_studio/README.md) — operator workflow, firmware recovery and Windows distribution details.
5. [`docs/ONLINE_MODEL_CONNECT_DECISION.md`](docs/ONLINE_MODEL_CONNECT_DECISION.md) — short decision contract separating full live discovery from SCL-assisted online connect.
6. [`LIVE_DISCOVERY_PROFILE.md`](LIVE_DISCOVERY_PROFILE.md) — detailed live-discovery and online-model interoperability boundary.
7. [`embedded/esp32p4_smv_injector/ARCHITECTURE.md`](embedded/esp32p4_smv_injector/ARCHITECTURE.md) — embedded real-time architecture boundaries.
8. [`docs/GLOBAL_BENCHMARK.md`](docs/GLOBAL_BENCHMARK.md) — vendor-neutral standards/industry research behind the direction.

The project deliberately separates **wire facts**, **configured expectations**, **profile claims**, and **synchronization evidence**. A packet that decodes in a host capture tool is not, by itself, a conformance or timing claim.

## Current hardware milestone
## Current SMV product milestone

The active ESP32-P4 work has demonstrated on a real development bench:
The P0 ESP32-P4 Sampled Values product track is **released and public** as `v0.1.0`. The stable GitHub release points to production merge `9c7fc7300220db4643e5643081240b955cfe12df` and publishes a Windows installer, portable package, accepted firmware image, manifest and release checksums.

- ESP32-P4 rev 1.3 + onboard RMII PHY bring-up;
- raw Ethernet TX reaching a host capture path;
- independently decoded IEC 61850 Sampled Values frames;
- GPTimer/FreeRTOS-driven 50 Hz / 80 samples-per-cycle publishing at about 4000 samples/s;
- stable observed runs with zero device-side TX failures and zero missed GPTimer notifications;
- balanced three-phase waveform reconstruction on a separate lab diagnostic stream.
Physical acceptance retained for the public milestone:

The next timing gate is **ESP32-P4 EMAC IEEE1588v2 hardware timestamp evidence**, not tuning the publisher against host USB-Ethernet arrival jitter.
- 10/10 Start/Stop cycles passed;
- uninterrupted 3600-second retained run held 4000 fps;
- `missed=0`, `txFailures=0`, `healthReconnects=0`, `automaticStarts=0`;
- independent capture confirmed the expected SV profile, one ASDU, 64-byte `seqData`, continuous `smpCnt` and 3999 -> 0 wraps;
- `smpSynch=0` remains the truthful synchronization state.

The next process-bus research gate is measured hardware timestamp/PTP discipline and broader profile support. Those are follow-on milestones and are **not** retroactively claimed by v0.1.0.
## Lineage and portable core

The original work began as an incremental C++20 migration of the ARIEC61850 C# protocol stack. The C# implementation remains a behavioral oracle where cross-language equivalence is still useful, while ARStack-specific work adds deterministic RTOS/hardware execution and evidence that a normal desktop stack cannot provide.
Expand Down
24 changes: 18 additions & 6 deletions apps/arstack_studio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

ARStack Studio is the **canonical native desktop operator surface** for the first ARStack61850 public Sampled Values release. It is a Qt 6 / C++ / QML application; the ESP32-P4 remains the deterministic real-time publisher.

> **v0.1.0 is publicly released and stable.** Download: https://github.com/masarray/arstack61850/releases/tag/v0.1.0
>
> Production source target: `9c7fc7300220db4643e5643081240b955cfe12df` · accepted binary build head: `d9b5b6848415c7e6d1c52ec929e57c66b608058d`.

## P0 public boundary

The first release is intentionally narrow and testable:
Expand Down Expand Up @@ -88,16 +92,24 @@ Protocol `1` is the P0 GUI/firmware capability contract for the supported `SMV-4

## Windows release artifacts

The P0 release workflow creates separate downloadable files:
The stable `v0.1.0` public release is available at:

- `ARStack-Studio-0.1.0-win-x64-portable.zip`
- `ARStack-Studio-0.1.0-win-x64-setup.exe`
- `SHA256SUMS.txt`
- [GitHub Release — ARStack Studio / SMV Injector v0.1.0](https://github.com/masarray/arstack61850/releases/tag/v0.1.0)
- `ARStack-Studio-0.1.0-win-x64-setup.exe` — recommended normal installation
- `ARStack-Studio-0.1.0-win-x64-portable.zip` — portable package
- `arstack-esp32p4-smv-0.1.0.bin` — standalone ESP32-P4 firmware asset
- `firmware-manifest.json`
- `RELEASE-SHA256SUMS.txt`

Both packages contain the Qt runtime, verified ESP32-P4 firmware bundle, and pinned standalone flasher. The installer is per-user and does not require administrator elevation.
Published SHA-256 values:

A `v0.1.0` tag is the only accepted P0 publish tag. The GitHub release is intentionally marked prerelease until physical P0 acceptance is complete.
```text
877a35dbbe110cc8ab740d3fcdc44a63f348405dc509da3164d9aaa92e9e2622 ARStack-Studio-0.1.0-win-x64-setup.exe
1487e90254ddc5cab0f7b917580be951311c1697bec6dc19d2e2720683f00f83 ARStack-Studio-0.1.0-win-x64-portable.zip
fae413d7b6f65b7d10ca65dc277fbf586d487f21209a29875036791088afa9c7 arstack-esp32p4-smv-0.1.0.bin
```

Both Windows packages contain the Qt runtime, verified ESP32-P4 firmware bundle, and pinned standalone flasher. The installer is per-user and does not require administrator elevation. The release is **stable**, not draft and not prerelease.
## Truthfulness boundary

Phasor and waveform views are generated setpoint previews, not independent Ethernet capture evidence. `smpSynch` remains an embedded synchronization truth and must not be promoted to a synchronization claim without measured evidence.
Expand Down
6 changes: 4 additions & 2 deletions docs/FEATURE_MATRIX.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
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.
Expand Down Expand Up @@ -51,7 +52,8 @@ Status terms are intentionally conservative:
| 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 | Live MCU publisher | Planned / embedded path staged | First reference hardware is the Waveshare ESP32-S3-POE-ETH-8DI-8DO; synthetic W5500/ESP-IDF MACRAW transmission proof is required before any timing-grade claim. |
| Sampled Values | Live MCU publisher | Public release / physical accepted | ESP32-P4 ARStack Studio v0.1.0 completed 10/10 Start/Stop cycles and an uninterrupted 3600-second 4000 fps retained run with zero missed slots, TX failures, health reconnects or automatic starts; `smpSynch=0` remains the truthful timing boundary. |
| Desktop product | ARStack Studio / SMV Injector v0.1.0 | Public release | Stable Windows installer + portable package + ESP32-P4 firmware published under tag `v0.1.0`; independent SV spot-check confirmed the bounded 4I+4V / 4000 fps / 1 ASDU / 64-byte profile. |
| SCL | Read-only parser / engineering support | Offline-tested | Host engineering surface; mutable standards-aware export remains later work. |
| 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. |
Expand Down Expand Up @@ -90,4 +92,4 @@ C1-C5 provide a guarded production control path plus a live evidence harness. Th

## Next parity direction

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. Sampled Values and ESP hardware work remain separate from this MMS-control tranche.
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 SMV/ESP32-P4 P0 track is now released as stable `v0.1.0`; future process-bus timing/profile expansion remains a separate follow-on tranche rather than an open blocker for that release.
Loading
Loading