Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
187 lines (185 loc) · 26.7 KB
/
Copy pathindex.html
File metadata and controls
187 lines (185 loc) · 26.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#0a131e">
<meta name="robots" content="index,follow">
<title>ARStack61850 — IEC 61850 Process Bus Simulator</title>
<meta name="description" content="ARStack Studio makes IEC 61850 process-bus testing accessible. Generate real Ethernet 4I+4V Sampled Values and simulated GPS-style PTP with ESP32-P4. Download for Windows or Linux.">
<link rel="canonical" href="https://masarray.github.io/arstack61850/">
<link rel="icon" type="image/x-icon" href="assets/studio_icon/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="assets/studio_icon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="assets/studio_icon/favicon-16x16.png">
<link rel="apple-touch-icon" href="assets/studio_icon/apple-touch-icon.png">
<link rel="manifest" href="assets/studio_icon/site.webmanifest">
<meta property="og:type" content="website">
<meta property="og:site_name" content="ARStack61850">
<meta property="og:title" content="ARStack61850 — IEC 61850 Process Bus Simulator">
<meta property="og:description" content="Your IEC 61850 injection lab: SCL-driven SV simulation, PTP grandmaster emulation, real ESP32-P4 Ethernet output. Windows and Linux downloads.">
<meta property="og:url" content="https://masarray.github.io/arstack61850/">
<meta property="og:image" content="https://masarray.github.io/arstack61850/assets/studio_icon/android-chrome-512x512.png">
<meta property="og:image:alt" content="Official ARStack Studio logo from assets/studio_icon">
<meta property="og:image:width" content="512">
<meta property="og:image:height" content="512">
<meta name="twitter:card" content="summary_large_image">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"ARStack Process Bus Simulator","applicationCategory":"EngineeringApplication","operatingSystem":"Windows 10/11 x64, Linux x86_64","url":"https://masarray.github.io/arstack61850/","downloadUrl":"https://github.com/masarray/arstack61850/releases/latest","isAccessibleForFree":true,"license":"https://github.com/masarray/arstack61850/blob/main/LICENSE","image":"https://masarray.github.io/arstack61850/assets/studio_icon/android-chrome-512x512.png","description":"Open-source IEC 61850 Sampled Values and PTP process-bus simulator with revision-aware ESP32-P4 firmware."}</script>
<style>
:root{color-scheme:dark;--bg:#09121b;--surface:#101d29;--surface2:#132432;--ink:#eaf3f8;--muted:#95aab9;--aqua:#64d7e9;--blue:#50aef6;--line:#294252;--max:1140px;font:14px/1.7 Inter,"Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);background:radial-gradient(ellipse 68% 520px at 80% 2%,#16384a80,transparent 78%),radial-gradient(ellipse 30% 280px at 4% 36%,#122e3d66,transparent 82%),var(--bg)}
a{color:inherit}a:focus-visible{outline:2px solid var(--aqua);outline-offset:4px}.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}.skip{position:absolute;top:-100px;left:16px;z-index:50;background:var(--aqua);color:#082131;padding:7px 12px}.skip:focus{top:10px}
.top{background:#09141dcf;border-bottom:1px solid #2540519c}.nav{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:660;letter-spacing:-.35px;white-space:nowrap}.brand strong{font-weight:650;color:var(--aqua)}.brand img{width:36px;height:36px;object-fit:contain;flex:none}.navlinks{display:flex;align-items:center;gap:26px;font-size:12px;color:#adbfca}.navlinks a{text-decoration:none;transition:color .15s}.navlinks a:hover{color:#fff}.nav-github{border:1px solid #355161;padding:7px 12px;border-radius:7px}
.hero{padding:64px 0 46px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.91fr);gap:48px;align-items:center}.eyebrow{color:var(--aqua);font-size:11px;letter-spacing:1.65px;text-transform:uppercase;display:flex;align-items:center;gap:8px}.dot{width:7px;height:7px;border-radius:50%;background:#4de2ac;box-shadow:0 0 11px #4de2ac65;flex:none}h1{font-size:clamp(34px,4.3vw,52px);font-weight:600;line-height:1.16;letter-spacing:-1.75px;max-width:660px;margin:19px 0 20px}h1 em{font-style:normal;color:var(--aqua)}.lead{font-size:14px;line-height:1.9;color:#b4c6d1;max-width:590px}.lead strong{font-weight:600;color:#eef8fd}
.actionrow{display:flex;flex-wrap:wrap;gap:11px;margin:27px 0 14px}.btn{min-height:45px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 17px;border-radius:7px;text-decoration:none;font-size:12.5px;font-weight:650;border:1px solid #476577;transition:transform .15s,filter .15s,background .15s}.btn:hover{transform:translateY(-2px);filter:brightness(1.1)}.btn svg{width:19px;height:19px;flex:none}.btn.primary{background:linear-gradient(180deg,#81e6f5,#45bddb);color:#061b29;border-color:#78ddec;box-shadow:inset 0 1px #d7faff33,0 6px 20px #002b483c}.btn.secondary{background:#162938;color:#e5f5fb}.under-actions{font-size:11.5px;color:#8ca7b5}.under-actions a{color:#b3dff0;text-underline-offset:3px}
.hero-visual{position:relative;min-width:0;margin:0}
.preview-link{display:block;text-decoration:none;position:relative;background:#0b151f;border:1px solid #355366;border-radius:11px;padding:7px;box-shadow:0 20px 54px #01060c99;transition:border-color .18s,transform .18s}
.preview-link:hover{border-color:#62b8d1;transform:translateY(-2px)}
.preview-link img{display:block;width:100%;height:auto;aspect-ratio:24/17;object-fit:contain;border-radius:6px;background:#09121b}
.visual-caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:10.5px;line-height:1.6;color:#93adbc}
.visual-caption a{color:#a3e4f3;text-underline-offset:3px}
.visual-caption .authentic{display:inline-flex;align-items:center;gap:7px}
.visual-caption .authentic:before{content:"";width:6px;height:6px;background:#4cceab;border-radius:50%}
.evidence{border-top:1px solid #284050;border-bottom:1px solid #284050;background:#0b1b26a8}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:23px 0;gap:0}.metric{padding:0 20px;border-right:1px solid #2a4655}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric strong{display:block;color:#d6f1f9;font-size:clamp(18px,2.1vw,26px);letter-spacing:-.55px;font-weight:600;line-height:1.35;font-variant-numeric:tabular-nums}.metric span{display:block;margin-top:4px;color:#94acbc;font-size:11px;line-height:1.5}.metrics-note{color:#829dab;font-size:10px;padding-bottom:16px}
.section{padding:71px 0 0}.sectionhead{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:25px}.kicker{color:#73c7df;text-transform:uppercase;letter-spacing:1.65px;font-size:10px;margin-bottom:9px}h2{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.65px;line-height:1.26;font-weight:600;margin:0 0 12px}.intro{max-width:730px;color:var(--muted);font-size:13px;line-height:1.8;margin:0}.sectionlink{font-size:12px;white-space:nowrap;color:#9cdeee;text-underline-offset:4px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{padding:23px 21px;background:linear-gradient(150deg,#132635,#0e1c28);border:1px solid #2b4555;border-radius:10px}.card-num{font-size:11px;color:#6cbdd5;letter-spacing:1px}.card h3{font-size:15px;font-weight:600;letter-spacing:-.1px;margin:14px 0 7px}.card p{font-size:12px;color:#9eb4c1;line-height:1.8;margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel{background:#10212f;border:1px solid #2d4556;border-radius:10px;padding:23px}.panel h3{font-size:15px;font-weight:600;margin:0 0 11px}.panel p{font-size:12px;line-height:1.8;color:#a5bdc8;margin:0 0 14px}.panel .link{color:#83d6e7;font-size:12px;text-decoration:none}.panel .link:hover{text-decoration:underline}.tagline{margin:0 0 12px;font-size:11px;color:#78d5c4}.panel-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.panel-list li{font-size:12px;color:#b3c7d1}.panel-list li:before{content:"✓";display:inline-block;margin-right:10px;color:#69dbc0}
.lab-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:28px;align-items:center}
.lab-photo{margin:0;padding:7px;background:#10212e;border:1px solid #2b4757;border-radius:11px}
.lab-photo img{display:block;width:100%;height:auto;aspect-ratio:960/713;object-fit:cover;border-radius:6px}
.lab-photo figcaption{padding:9px 5px 3px;font-size:10.5px;color:#8da7b6;line-height:1.6}
.lab-copy{min-width:0}.lab-copy h3{font-size:20px;font-weight:600;letter-spacing:-.4px;line-height:1.3;margin:0 0 11px}
.lab-copy p{font-size:12.5px;color:#a6bdc9;line-height:1.85;margin:0 0 12px}
.lab-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:17px}
.lab-links a{font-size:12px;color:#9ce1f0;text-underline-offset:4px}
.setup{counter-reset:step;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:25px 0 14px}.step{padding:20px;background:#102330;border:1px solid #2d4858;border-radius:9px;color:#98acba;font-size:12px;line-height:1.7}.step:before{counter-increment:step;content:"0" counter(step);display:block;font-size:18px;color:#70d1e9;font-weight:650;margin-bottom:10px}.step b{display:block;font-size:13px;color:#eaf5fa;font-weight:600;margin-bottom:6px}.notice{border-left:2px solid #5ba4bc;color:#afc6d1;padding:9px 16px;margin-top:19px;font-size:12px;background:#12263370}
.downloads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.download{background:linear-gradient(150deg,#132635,#0d1b28);border:1px solid #315061;border-radius:10px;padding:22px;display:flex;flex-direction:column;gap:16px}.download .detail{font-size:11px;color:#9bb3c0;margin:3px 0 0}.download h3{font-size:15px;font-weight:600;margin:0}.download a{font-size:12px;color:#91e1f0;font-weight:600;text-decoration:none;align-self:start}.download a:hover{text-decoration:underline}.small{font-size:11px;color:#89a3b2;line-height:1.8;margin-top:14px}.small a{color:#a8ddec}.footer{margin-top:70px;border-top:1px solid #273d4c;padding:27px 0 31px;color:#88a1ae;font-size:11px}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:13px}.footer-links{display:flex;flex-wrap:wrap;gap:17px}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--aqua)}
@media(max-width:950px){.lab-grid{grid-template-columns:1fr;gap:22px}.lab-photo{max-width:730px}.hero-grid{grid-template-columns:minmax(0,1fr);gap:28px}.hero-copy{max-width:720px}.hero-visual{max-width:770px;width:100%}.navlinks{gap:15px}}
@media(max-width:700px){.wrap{width:calc(100% - 32px)}.hero{padding:44px 0 38px}.section{padding-top:52px}.metrics{grid-template-columns:repeat(2,1fr);row-gap:16px}.metric:nth-child(2){border:0}.metric:nth-child(3){padding-left:0}.cards{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.setup{grid-template-columns:repeat(2,1fr)}.sectionhead{display:block}.sectionlink{display:inline-block;margin-top:16px}.navlinks a:not(.nav-github){display:none}}
@media(max-width:440px){.hero{padding-top:38px}.brand{font-size:14px}.nav-github{padding:6px 9px}.hero h1{font-size:34px;letter-spacing:-1.2px}.actionrow{flex-direction:column;align-items:stretch}.btn{width:100%}.preview-link{padding:5px}.metrics{padding:20px 0}.metric{padding:0 10px}.metric strong{font-size:17px}.setup,.downloads{grid-template-columns:1fr}.footer-inner{display:block}.footer-links{margin-top:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.navlinks a{transition:none}}
</style>
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<header class="top"><div class="wrap nav">
<a class="brand" href="#top" aria-label="ARStack61850 home"><img src="assets/studio_icon/android-chrome-192x192.png" width="36" height="36" alt=""><span>ARStack<strong>61850</strong></span></a>
<nav class="navlinks" aria-label="Main navigation"><a href="#features">Features</a><a href="#roadmap">SCL & Multi-MU</a><a href="#evidence">Bench evidence</a><a href="#downloads">Downloads</a><a class="nav-github" href="https://github.com/masarray/arstack61850">GitHub ↗</a></nav>
</div></header>
<main id="main">
<section class="wrap hero" id="top">
<div class="hero-grid">
<div class="hero-copy">
<div class="eyebrow"><span class="dot" aria-hidden="true"></span><span data-latest-label>Dual Firmware Stable · IEC 61850 engineering</span></div>
<h1>A process bus lab.<br><em>Without the test rack.</em></h1>
<p class="lead"><strong>ARStack Studio</strong> puts real IEC 61850 Sampled Values and PTP Ethernet traffic on your test network using an affordable ESP32-P4. Simulate a Merging Unit, configure 4I+4V waveforms and experiment with SCL-defined stream profiles—right from your desktop.</p>
<div class="actionrow hero-downloads" aria-label="Download ARStack Studio for your operating system">
<a class="btn primary" data-asset="windows" href="https://github.com/masarray/arstack61850/releases/download/processbus-sim-dual-stable-20261105/ARStack-Studio-win-x64-setup.zip" aria-label="Download for Windows, Setup ZIP">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="currentColor"><path d="M2 3.8 11 2.5v8.7H2V3.8Zm10.5-1.5L22 1v10.2h-9.5V2.3ZM2 12.7h9V21l-9-1.3v-7Zm10.5 0H22V23l-9.5-1.3v-9Z"/></svg><span>Download for Windows</span>
</a>
<a class="btn secondary" data-asset="linux" href="https://github.com/masarray/arstack61850/releases/download/processbus-sim-dual-stable-20261105/ARStack-Studio-linux-x86_64.AppImage" aria-label="Download for Linux, AppImage">
<svg aria-hidden="true" viewBox="0 0 24 24" fill="none"><ellipse cx="12" cy="11.2" rx="5.3" ry="8.3" stroke="currentColor" stroke-width="1.45"/><ellipse cx="12" cy="5.3" rx="3" ry="3.15" fill="currentColor" fill-opacity=".22"/><circle cx="10.6" cy="5" r=".8" fill="currentColor"/><circle cx="13.4" cy="5" r=".8" fill="currentColor"/><path d="m10.7 7.2 1.3 1.3 1.3-1.3-1.3-.45-1.3.45Z" fill="currentColor"/><path d="M9 17.4c-2 .4-3.5 1.8-3.5 3.1 0 1.2 4.7 1 6.5-1.2m3-1.9c2 .4 3.5 1.8 3.5 3.1 0 1.2-4.7 1-6.5-1.2" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/></svg><span>Download for Linux</span>
</a>
</div>
<div class="under-actions">Windows x64 · Setup ZIP / Linux x86_64 · AppImage · <a href="https://github.com/masarray/arstack61850/releases/latest">Release notes & checksums ↗</a></div>
</div>
<figure class="hero-visual" id="studio-preview">
<a class="preview-link" href="assets/screenshots/arstack-studio-windows.png" aria-label="Open the original ARStack Studio screenshot from the repository">
<img src="assets/screenshots/arstack-studio-windows.png" alt="Genuine native Windows Qt capture: ARStack SMV Injector showing 4I+4V setpoints, phasors, waveform traces, PTP source and capture controls" width="960" height="680" decoding="async" fetchpriority="high">
</a>
<figcaption class="visual-caption">
<span class="authentic">Actual Qt Studio capture, committed in this repository (not a mockup)</span>
<a href="https://github.com/masarray/arstack61850/blob/main/.github/workflows/public-studio-screenshot.yml">Capture provenance ↗</a>
</figcaption>
</figure>
</div>
</section>
<div class="evidence" id="evidence"><div class="wrap">
<div class="metrics" aria-label="Historical M3.H.3 independent single-stream wire capture">
<div class="metric"><strong>4,705,090</strong><span>SV Ethernet frames captured</span></div>
<div class="metric"><strong>3,999.886</strong><span>Observed frames per second</span></div>
<div class="metric"><strong>19m 36s</strong><span>Continuous on-wire capture</span></div>
<div class="metric"><strong>0</strong><span>Missing / duplicate / malformed frames</span></div>
</div>
<div class="metrics-note">Historical M3.H.3 single-stream lab benchmark — not a three-stream or v3.x qualification claim. <a href="https://github.com/masarray/arstack61850/blob/main/docs/releases/PROCESSBUS_AUTONOMOUS_M3H3_OFFICIAL_20261025.md">View capture evidence ↗</a></div>
</div></div>
<section class="wrap section" id="features">
<div class="sectionhead"><div><div class="kicker">What you can build</div><h2>Real packets. Repeatable engineering scenarios.</h2><p class="intro">From live electrical waveforms to protocol identifiers, ARStack gives you direct control of the process-bus traffic your lab subscribers see.</p></div></div>
<div class="cards">
<article class="card"><div class="card-num">01 / SAMPLED VALUES</div><h3>Simulated Merging Unit output</h3><p>Configure four current and four voltage channels with amplitude, phase and quality. Publish real IEC 61850 SV multicast Ethernet traffic using the ESP32-P4.</p></article>
<article class="card"><div class="card-num">02 / TIME SYNCHRONIZATION</div><h3>GPS-style PTP Grandmaster emulation</h3><p>Generate PTP Announce, Sync and Follow_Up on the wire with the simulation timebase and inspect sample synchronization in the lab. No external GPS receiver needed.</p></article>
<article class="card"><div class="card-num">03 / ENGINEERING WORKFLOW</div><h3>SCL identities and Studio control</h3><p>Import supported SCD, SCL, CID or IID files, deploy supported SV profiles, tune waveforms, START/STOP, capture and reconnect without resetting the powered board.</p></article>
</div>
</section>
<section class="wrap section" id="hardware-lab">
<div class="sectionhead"><div><div class="kicker">A real hardware bench</div><h2>See the ESP32-P4 lab setup.</h2><p class="intro">A real photo of a compact ESP32-P4 development board connected to USB-C and Ethernet, with the engineering waveform workspace in the background.</p></div></div>
<div class="lab-grid">
<figure class="lab-photo">
<img src="assets/photos/arstack-esp32-p4-lab-demo.webp" width="960" height="713" loading="lazy" decoding="async" alt="Real ESP32-P4-ETH-series development board connected to a green Ethernet RJ45 cable and white USB-C cable in front of a three-phase waveform workspace">
<figcaption>Project hardware demo photo · real board and cables. On-wire SV/PTP benchmark evidence is documented separately.</figcaption>
</figure>
<div class="lab-copy">
<div class="tagline">AFFORDABLE PROCESS BUS EXPERIMENTS</div>
<h3>Explore with Waveshare ESP32-P4-ETH.</h3>
<p>The ESP32-P4-ETH family includes the <strong>ESP32-P4-ETH-M</strong> with pre-soldered headers. For the ARStack lab, use a compatible Ethernet board and release-matched firmware; use a dedicated, isolated test network.</p>
<p>Board revisions matter. ARStack Studio distributes distinct pre-v3 and v3.x firmware images. The newer v3.x firmware is still in engineering-preview hardware qualification.</p>
<div class="lab-links"><a href="https://www.waveshare.com/product/iot-communication/wired-comm-converter/esp32-p4-eth.htm">View or buy the board · Waveshare official store ↗</a><a href="https://docs.waveshare.com/ESP32-P4-ETH">Hardware documentation and revision information ↗</a><a href="https://github.com/masarray/arstack61850/blob/main/docs/releases/PROCESSBUS_AUTONOMOUS_M3H3_OFFICIAL_20261025.md">Read the separate SV/PTP capture evidence ↗</a></div>
</div>
</div>
</section>
<section class="wrap section" id="roadmap">
<div class="sectionhead"><div><div class="kicker">Latest software progress</div><h2>Three virtual Merging Units. One ESP32-P4.</h2><p class="intro">M4 software includes SCL-driven three-virtual-MU configuration and group START/STOP with shared sample/PTP timing. The publicly shipped dual-firmware stable package carries these integrated controls, while sustained 3 × 4,000 fps on-wire load acceptance and v3.x hardware qualification are still being collected.</p></div><a class="sectionlink" href="https://github.com/masarray/arstack61850/blob/main/docs/PROCESS_BUS_MULTI_SV_SCL_NEXT_PHASE.md">Implementation details ↗</a></div>
<div class="two-col">
<div class="panel"><div class="tagline">AVAILABLE IN CURRENT SOFTWARE</div><h3>SCL-driven virtual MU workspace</h3><ul class="panel-list"><li>Supported SV stream and DataSet import</li><li>Per-stream APPID, svID, MAC, VLAN and confRev</li><li>Three-MU group control and board-state readback</li><li>Unified timing source for simulated SV + PTP</li></ul></div>
<div class="panel"><div class="tagline">VERIFICATION BOUNDARY</div><h3>Dual firmware, revision-aware provisioning</h3><p>The stable Studio release offers separate firmware images for ESP32-P4 pre-v3 and v3.x silicon and a matching firmware catalog. v3.x board support remains an engineering preview pending broader physical acceptance.</p><a class="link" href="https://github.com/masarray/arstack61850/releases/latest">See supported packages and release notes ↗</a></div>
</div>
</section>
<section class="wrap section" id="getting-started">
<div class="sectionhead"><div><div class="kicker">Fast onboarding</div><h2>From download to first Ethernet packet.</h2><p class="intro">Try the Studio interface without hardware, then attach a compatible ESP32-P4 to transmit real traffic.</p></div><a class="sectionlink" href="https://github.com/masarray/arstack61850/blob/main/docs/GETTING_STARTED.md">First-run guide ↗</a></div>
<div class="setup"><div class="step"><b>Install Studio</b>Extract the Windows Setup ZIP or run the Linux x86_64 AppImage.</div><div class="step"><b>Connect your board</b>Use USB data and an isolated Ethernet test network.</div><div class="step"><b>Load matching firmware</b>Install the release-paired pre-v3 or v3.x image from Studio.</div><div class="step"><b>Start SV + PTP</b>Use 4I+4V Quick Start and a simulated PTP source, then capture the packets.</div></div>
<div class="notice">Lab-only network boundary: do not connect this publisher or simulated PTP Grandmaster to an energized or production substation process bus. Firmware must match the Studio release.</div>
</section>
<section class="wrap section" id="downloads">
<div class="sectionhead"><div><div class="kicker">Latest public stable</div><h2>Choose your ARStack Studio package.</h2><p class="intro">Windows Setup ZIP is recommended for easier browser downloads. Linux AppImage is available directly. Both are sourced from the public stable release; firmware artifacts are published alongside them.</p></div><a class="sectionlink" href="https://github.com/masarray/arstack61850/releases/latest">All release assets ↗</a></div>
<div class="downloads">
<article class="download"><div><h3>Windows · Setup ZIP</h3><p class="detail">Windows 10/11 x64 · Extract ZIP, run the included installer</p></div><a data-asset="windows" href="https://github.com/masarray/arstack61850/releases/download/processbus-sim-dual-stable-20261105/ARStack-Studio-win-x64-setup.zip">Download Setup ZIP ↗</a></article>
<article class="download"><div><h3>Linux · AppImage</h3><p class="detail">Linux x86_64 · chmod +x, then run the AppImage</p></div><a data-asset="linux" href="https://github.com/masarray/arstack61850/releases/download/processbus-sim-dual-stable-20261105/ARStack-Studio-linux-x86_64.AppImage">Download AppImage ↗</a></article>
<article class="download"><div><h3>Windows · Portable ZIP</h3><p class="detail">Windows x64 · Launch without installing</p></div><a data-asset="portable" href="https://github.com/masarray/arstack61850/releases/download/processbus-sim-dual-stable-20261105/ARStack-Studio-win-x64-portable.zip">Download Portable ZIP ↗</a></article>
<article class="download"><div><h3>ESP32-P4 · Firmware</h3><p class="detail">Pre-v3 & v3.x images · Revision-aware release catalog</p></div><a data-asset="firmware" href="https://github.com/masarray/arstack61850/releases/latest">Browse matched firmware ↗</a></article>
</div>
<p class="small">Also published: direct Windows Setup EXE, SHA256SUMS.txt, firmware-catalog.json, firmware-manifest.json and release-provenance.json. Windows Setup ZIP avoids direct-EXE download friction but does not bypass Windows security checks for unsigned installers. <a href="https://github.com/masarray/arstack61850/blob/main/docs/INSTALL.md">Installation help ↗</a></p>
</section>
</main>
<footer class="footer"><div class="wrap footer-inner"><span>© 2026 MasArray · ARStack61850 · GPL-3.0 · Open-source engineering tools</span><span class="footer-links"><a href="https://masarray.github.io/">MasArray products</a><a href="https://github.com/masarray/arstack61850">Source</a><a href="https://github.com/masarray/arstack61850/blob/main/SUPPORT.md">Support</a><a href="https://github.com/masarray/arstack61850/releases/latest">Releases</a></span></div></footer>
<script>
/* Keep static, verified stable asset URLs usable if GitHub's API is offline or rate limited.
Upgrade asset URLs only when the latest *stable* release contains a matching asset. */
(async function syncLatestRelease(){
try{
const response=await fetch('https://api.github.com/repos/masarray/arstack61850/releases/latest',{headers:{Accept:'application/vnd.github+json'}});
if(!response.ok)return;
const release=await response.json();
if(release.draft||release.prerelease||!Array.isArray(release.assets))return;
const assets=release.assets;
const find=re=>assets.find(asset=>re.test(asset.name)&&typeof asset.browser_download_url==='string'&&asset.browser_download_url.startsWith('https://github.com/masarray/arstack61850/releases/download/'));
const selected={
windows:find(/(?:win|windows).*setup\.zip$/i)||find(/(?:win|windows).*setup\.exe$/i),
linux:find(/linux.*\.AppImage$/i),
portable:find(/(?:win|windows).*portable\.zip$/i)
};
for(const [key,asset] of Object.entries(selected)){
document.querySelectorAll('a[data-asset="'+key+'"]').forEach(link=>{
if(asset){link.href=asset.browser_download_url;}
else{link.href=release.html_url;link.title='See available packages for this stable release';}
});
}
document.querySelectorAll('a[data-asset="firmware"]').forEach(link=>{link.href=release.html_url;});
const label=document.querySelector('[data-latest-label]');
if(label)label.textContent='Latest stable · '+release.tag_name;
const win=selected.windows;
if(win&&/setup\.exe$/i.test(win.name)){
document.querySelectorAll('a[data-asset="windows"]').forEach(link=>{if(!link.classList.contains('btn'))link.textContent='Download Setup EXE ↗';link.setAttribute('aria-label','Download for Windows, Setup EXE');});
}
}catch(_error){/* Stable published fallback links remain usable. */}
})();
</script>
</body>
</html>