Ivan's Blog
项目实践

LoadLynx

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

  • Device mono-repo
  • ESP32 firmware
  • Web demo
  • UI version display
  • 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, ESP32 firmware, Web demo, UI version display, Embedded device control plane

Repository map

  • firmware/analog/ 是 G431 Rust + Embassy 快速闭环侧。
  • firmware/digital/ 是 ESP32-S3 Rust + esp-hal + Embassy UI/网络/桥接侧。
  • libs/ 保存共享协议/库,web/ 是 TypeScript/React UI。
  • mcu-agentd.toml 同时声明 digital espflash 和 analog probe-rs 两个 MCU target。

Runtime and delivery

Web 子项目有端口脚本、test:e2e、Storybook、Storybook CI、Biome/typecheck/build 和 version writer。web/README.md 还明确提供 simulation device、mock backend 与生产模式演示开关,说明这个前端除了开发/QA,还承担正式 product surface 的安全演示职责。硬件侧通过 mcu-agentd 区分 ESP32-S3 和 STM32G431 artifacts。根 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 分仓内目录,不分仓库,有利于协议同步。
  • mcu-agentd 一次声明两个 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
  • mcu-agentd.toml
  • 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