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
依赖与工具
- package.json
- 开发依赖
- @commitlint/cli
- @commitlint/config-conventional
- commitlint-plugin-function-rules
- 项目脚本
- commitlint
配置与质量
- 配置文件
- .env.example
- .gitignore
- .gitmodules
- lefthook.yml
- mcu-agentd.toml
- package-lock.json
- package.json
{
"ci_workflows": [
"check.yml",
"dev-release.yml",
"digital-check.yml",
"notify-release-failure.yml",
"release.yml",
"web-check.yml",
"web-pages.yml"
],
"configs_root": [
".env.example",
".gitignore",
".gitmodules",
"lefthook.yml",
"mcu-agentd.toml",
"package-lock.json",
"package.json"
],
"markers_present": [
"github_actions",
"package_json",
"package_lock"
],
"package_json": {
"deps_dev": [
"@commitlint/cli",
"@commitlint/config-conventional",
"commitlint-plugin-function-rules"
],
"scripts": [
"commitlint"
]
}
}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同时声明digitalespflash 和analogprobe-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.mdmcu-agentd.tomlfirmware/analog/firmware/digital/libs/web/package.jsonweb/README.mdweb/.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
相关内容
Device mono-repo
主题Device mono-repo 表示一个仓库同时承载硬件资料、固件、Web/desktop UI、docs/specs、测试工具或发布流程。它强调边界协调:硬件、firmware、UI 和文档互相影响,不应把仓库当作单一应用。 这个 Topic 的核心是设备级知识不能被某一个技术栈吞掉。
Embedded device control plane
主题Embedded device control plane 表示设备把 ESP32-S3 作为正式控制面 MCU,并依赖其板载 USB 与 Wi‑Fi 同时承载本地与局域网控制入口。这里的主语不是“某一种传输协议”,而是 devd、CLI、Web App、可选 desktop/local agent、Web Serial 与 native USB 如何围绕同一设备事实、安全边界、发现机制、连接 ownership 和运行态协议协作。
ESP32 firmware
主题ESP32 firmware 表示项目把 ESP32 家族 MCU 作为正式固件目标来维护,并围绕 toolchain、烧录、板级职责、连接能力和与其他 MCU/上位机的分工建立了稳定约定。这里的重点不是“芯片型号”,而是 ESP32 在系统里承担什么角色。 这个 Topic 往往不只是单片机源码。
UI version display
主题UI version display 指产品有意识地把“当前运行的到底是哪一版”暴露给用户或操作者查看,而不是把版本号藏在构建日志或开发者工具里。它通常包含一个稳定的人类可读显示位点,以及一条由运行时或构建链提供的版本真相路径,用于支持排障、远程协作和发布确认(projects/codex-vibe-monitor.md、projects/dockrev.
Web demo
主题Web demo 表示仓库刻意提供一个可直接给 owner、评审者或潜在用户体验的 Web 演示面,而且这个演示面复用正式产品前端与正式路由,而不是单独做一套只用于截图的 demo 页面。它允许用 mock backend、simulation device、read-only seed data 或等价安全输入来稳定复现产品行为,但默认不要求接入真实生产登录、真实后端写路径或真实硬件危险写操作。