项目实践

LoadLynx

LoadLynx 是 STM32G431 + ESP32-S3 便携式电子负载。README.md 明确采用分体式架构:STM32G431 执行快速电流/功率闭环与保护,ESP32-S3 负责 UI/Wi-Fi/OTA/记录/标定及上位机桥接。这是典型 device mono-repo,不能只从一个 firmware 目录理解。

  • Device mono-repo
  • Embedded Rust
  • STM32 firmware
  • ESP32 firmware
  • Async embedded
  • TypeScript web
  • React app
  • Storybook component QA
  • Playwright e2e
  • Web demo
  • UI version display
  • Release failure notification
  • MCU flashing integration
  • Embedded device control plane

目录

技术栈

运行与交付

CI 工作流
  • check.yml
  • dev-release.yml
  • digital-check.yml
  • notify-release-failure.yml
  • release.yml
  • web-check.yml
  • web-pages.yml
能力标记
  • github_actions
  • package_json
  • package_lock
JSON

Purpose

LoadLynx 是 STM32G431 + ESP32-S3 便携式电子负载。README.md 明确采用分体式架构:STM32G431 执行快速电流/功率闭环与保护,ESP32-S3 负责 UI/Wi-Fi/OTA/记录/标定及上位机桥接。这是典型 device mono-repo,不能只从一个 firmware 目录理解。

Taxonomy

  • Tags: Device mono-repo, Embedded Rust, STM32 firmware, ESP32 firmware, Async embedded, TypeScript web, React app, Storybook component QA, Playwright e2e, Web demo, UI version display, Release failure notification, MCU flashing integration, Embedded device control plane
  • Why / evidence: 这些 tags 来自 checked-out repo 和 catalog record。主要证据包括 README.md、firmware/analog/、firmware/digital/、libs/、web/package.json、web/.storybook/main.ts、.github/workflows/check.yml。Topic token 的大小写以对应技术/工作流的官方写法为准;slug 只作为稳定 ID,不直接充当项目标题。

Repository map

  • firmware/analog/ 是 G431 Rust + Embassy 快速闭环侧。
  • firmware/digital/ 是 ESP32-S3 Rust + esp-hal + Embassy UI/网络/桥接侧。
  • libs/ 保存共享协议/库,web/ 是 TypeScript/React UI。

Runtime and delivery

Web 子项目有端口脚本、test:e2e、Storybook、Storybook CI、Biome/typecheck/build 和 version writer。web/README.md 还明确提供 simulation device、mock backend 与生产模式演示开关,说明这个前端除了开发/QA,还承担正式 product surface 的安全演示职责。硬件侧保持 ESP32-S3 与 STM32G431 artifact 及 target 的明确分工。根 package 主要提供 commitlint,说明真正运行入口分布在 firmware/web/scripts。

Architecture notes

架构核心是快控制环与 UI/联网桥的分离。G431 负责 CC/CV、保护、ADC/PID、热传感;S3 负责本地 UI、Web UI、Wi-Fi/OTA、日志和标定。UART 帧/共享协议是两个 MCU 的关键接口,后续 refactor 必须保持协议文档和 firmware 同步。

证据锚点:README.md。

Workflow and quality gates

.github/workflows/check.yml、digital-check.yml、web-check.yml、web-pages.yml、dev-release.yml、release.yml、notify-release-failure.yml 拆分模拟/数字/网页/发布。这个拆分比单一 CI 更适合分体式硬件。

Reusable decisions

  • 模拟闭环和数字 UI 分仓内目录,不分仓库,有利于协议同步。
  • ESP32-S3 与 STM32G431 的 target 分工明确,适合多 MCU bring-up。
  • Web Storybook/e2e 是设备 UI 的早期验证面。
  • Web demo 直接复用正式设备页面与状态模型,再用 simulation device / mock backend 提供安全输入,比单独复制一套 demo 页面更稳。

Risks and open questions

  • 双 MCU 协议漂移是最大风险。
  • 电子负载保护逻辑不能只靠 Web/UI 测试。
  • release failure notification 应保留,因为 firmware/web 任一 artifact 失败都会影响使用。

Evidence index

  • README.md
  • firmware/analog/
  • firmware/digital/
  • libs/
  • web/package.json
  • web/README.md
  • web/.storybook/main.ts
  • .github/workflows/check.yml
  • .github/workflows/digital-check.yml
  • .github/workflows/web-check.yml
  • .github/workflows/release.yml
  • .github/workflows/notify-release-failure.yml