feat: I2C-Lab v0.1.0 代码入库——RP2040 PIO 被动监控 probe 固件(pico-sdk C, 250MHz 双核) + Fluent 上位机(事务流/波形快照/CSV/演示模式);release/ 交付物(exe/UF2/BIN/zip)不入库、本地保留待真机验收发布;根 README 工具表与 agent.md 登记;I2C-Inject README 标注后续并入 I2C-Lab;移除误登记的 OBI-1/ui-style-demo 相关内容

This commit is contained in:
2026-10-13 15:41:29 +08:00
parent 74469cfe66
commit 42ff258b35
25 changed files with 3292 additions and 20 deletions
+87 -9
View File
@@ -27,8 +27,14 @@
- **SerialMate**:RS485/串口调试助手,帧格式(包头/板ID/LEN/CRC)可定制,
默认兼容 DLPilot 光机协议;payload 字符串/HEX 显示、4 通道曲线、payload
自动包装发送。
- **I2C-Lab**(2026-10-02 新启,即 §3.5 三合一需求落地):I2C 总线监控调试台。
阶段一=纯被动监控:RP2040 probe 固件(pico-sdk C,PIO 边沿捕获 + 核1 实时
解码 + USB CDC `=`/`!` 命令行,250MHz)+ PC GUI(Fluent,事务流/地址过滤/
CSV/逻辑分析仪式波形快照/演示模式)。主机读写(复活 I2C-Inject 择机注入)
与从机模拟在路线图。解码语义权威 `I2C-Lab/src/i2cdec.py`。
- **I2C-Inject**:RP2040 固件 + PC GUI,demo 板 I2C 总线择机注入读写寄存器。
**2026-09-25 起暂停开发**,代码与固件保留备查。
**2026-09-25 起暂停开发**,代码与固件保留备查;**2026-10-02 起后续开发并入
I2C-Lab**(接线/回显约定与解码算法已继承过去)。
- 子模块引用:`gd32e230f8_firmware_merge_tool/`(2026-09-30 接入,git submodule 指向
`hulk/gd32e230f8_firmware_merge_tool`)——GD32E230 APP/BL 合成补齐
(`_UPDATE.bin`/`_BL.bin`)+ DAPLink Flash GUI 烧录。代码、版本与发布均在原仓库
@@ -37,6 +43,12 @@
- 镜像约定:`EDID-viewer` 主目录(`E:\Hulk-Coding\HW-Debug-Tools\EDID-viewer`)
改动后需 robocopy /MIR 同步到 `E:\Hulk-Coding\LT8619C\_Debug\_Tools\EDID-viewer`
(排除 .venv/build/__pycache__/.git,zip 不同步)。
- 图标约定(2026-10-10 立):全部工具共用 **logo 家族版式**(512 黑底 + 工具色圆角块
+ 上行域词黑字/下行角色词白字,Arial Bold 146px 基准自适应;颜色不参与家族识别,
现分配橙 `#FF9900`×4、绿 `#00C878`×2、青 `#00C8D7`×1,紫 `#A78BFA` 暂未分配);软件内按钮只用
FluentIcon 白名单、文本内用单色 Unicode 符号(→ ← ⚠ ⏳ ⚙)。**唯一权威 `icons/`**:
约定文档 `icons/README.md` + 统一生成器 `icons/make_icon.py`(含 `--check`
复现校验与 `--preview` 家族预览图;各工具内旧 make_ico 脚本保留作历史对照,不再维护)。
- 发布约定:源码与打包产物(exe、运行配置)入库;发布 zip 不入库,只上传 Gitea Release。
## 2. 开发进度(已完成功能清单)
@@ -73,8 +85,8 @@
### 2.3 SerialMate — v0.1.0(2026-09-27,首版)
- **更名**:原名 SerialAssistant(目录/exe/文档/配置同步更名;旧配置
serial_assistant.json 首次启动自动迁移为 serial_mate.json;图标与名字
无绑定为波形+RS485 母题)。用户确认 "SerialMate 吧"(2026-09-27)。
serial_assistant.json 首次启动自动迁移为 serial_mate.json;更名时的图标为
波形+RS485 母题,后统一为家族版式,见 §2.6)。用户确认 "SerialMate 吧"(2026-09-27)。
- **已发布**:commit d133906 推送 main 并打 tag `SerialMate-v0.1.0`,
Release 附件 `SerialMate-v0.1.0-win64.zip`(63.7 MB)已上传核对。
- 协议:**帧构成令牌序列可定制**(`HDR ID LEN PAYLOAD CRC` + 十六进制字面量
@@ -106,13 +118,57 @@
- 已完成:RP2040 注入器固件(MicroPython,内置 viper 总线嗅探)、PC 端 GUI、
demo 板寄存器语义实测(0x606E bit5=镜像 D[7:0]、0x606D 整组顺序,逻辑分析仪
双色交叉验证)。
- 状态:暂停开发,代码与固件保留备查,README 顶部有状态横幅。
- 状态:暂停开发,代码与固件保留备查,README 顶部有状态横幅;后续开发并入
I2C-Lab(2026-10-02,见 §2.5/§3.5)。
### 2.5 I2C-Lab — v0.1.0 已就绪(2026-10-02,待真机验收后发布)
- **定位**:I2C 总线监控调试台(原 §3.5 三合一需求的监控阶段);三区目录 +
双文档对齐全仓约定;I2C-Inject 定位为留档,本工具独立续接。
- **固件**(`firmware/`,pico-sdk C,PICO_BOARD=pico):单 PIO SM `bus_watch`
(变沿即压 FIFO,push noblock,~40ns 分辨率)+ 核1 时间戳/解码状态机(语义
与 i2cdec.py 一致,含 56 字节长事务截断)+ 核0 USB CDC CLI(?/v/mon/
stats/wave/boot);250MHz/vreg 1.15V;边沿环 16k(wave 快照,暂停换一致性)
+ 事务环 256。
- **PC 端**(`src/`):i2cdec.py(边沿→事务/T·W 行语法/CSV/参考编码器,自测
73 项全绿:100k/400k 往返+时间戳对齐、随机鲁棒、截断 L 标志)、probelink.py
(行协议链路线程)、waveview.py(QPainter 波形:滚轮缩放/拖动/双击适配/
START-STOP 刻线/事务标签)、main.py(Fluent 双栏:串口卡/监控卡/事务表/
波形卡/固件日志 + 演示模式)、theme/config 同源;selftest_gui.py 29 项全绿;
build/package/publish 三件套适配(发布 zip 含 UF2)。
- **构建链(本机打通并记录踩坑)**:pico-sdk 2.3.1(ghproxy 代理克隆)+
tinyusb 0.18.0(gitee 镜像)+ Arm GNU 13.3;pioasm 宿主编译用 ziglang
(pip 装,预置 CMakeCache 分号列表法);UF2 用自制 make_uf2.py(objcopy→bin
→UF2,往返自检 + 与真机 MicroPython UF2 逐字段核对一致),绕开 picotool
的 github 依赖。
- **产物**:I2C-Lab.exe(63.8MB)+ firmware/i2c_lab.uf2/.bin 保留本地
release/(交付物不入库,`.gitignore` 已挡,2026-10-13 起);
zip/Release 待真机验收后走流水线(tag `I2C-Lab-v0.1.0`)。
### 2.6 仓库级基础设施 — 图标家族约定与统一生成器(2026-10-10)
- **`icons/` 目录**:`README.md`(风格与内容约定 + 应用点总表 + 新工具接入清单)
+ `make_icon.py`(六工具统一生成器,吸收 DLPilot/EDID-viewer/SerialMate/
I2C-Inject/FlashTool 五份分散脚本)+ `preview.png` 家族预览图。
- **复现验证**:`--check` 逐像素比对,DLPilot/EDID-viewer/SerialMate/I2C-Inject
全 SAME(EDID 的 134/116px 历史版式以显式 override 保真)。
- **修正 I2C-Lab 图标**:第二行自 I2C-Inject 复制 SVG 后一直误为 "Inject",
已改 "Lab"(png/ico/svg 重生成;exe 为入库旧图,下次 build_exe 打包生效)。
- **发现待办(子模块内)**:FlashTool 图标 "FLASH" 146px 宽 485px 超出 436px
色块(两端黑字落黑底不可见),家族自适应规则可修正,但需在其原仓库执行并提交。
- **FilmForge 图标(2026-10-10)**:热压模具温控监视台(独立仓
`E:\Hulk-Coding\FilmForge`,GD32F4 固件 + GUI 上位机)按家族版式出图——
上行 `FILM`/下行 `Forge`、青 `#00C8D7`(取自其温度曲线/主题青,按钮 `#29F1FF`
太亮故取深一档;与其 Dark 曲线配色常量一致),产物落在其
`GUI/logos/filmforge.{png,ico,svg}`(`build_exe.py:30` 预留路径);
并在其 `GUI/app_fluent.py` 补上运行时 `setWindowIcon`(_MEIPASS/_源码双路,
此前缺失),`selftest_gui.py` 48 项 ALL PASS。图标改动需在其原仓库提交。
## 3. 开发需求与计划(已提出、尚未实现)
### 3.1 DLPilot
- 【待素材】校准图案槽位预置为空:第二排 5 个槽位为 3D 光固化测试/校准图预留
(`file: null`);素材到位后 assets/ → 生成脚本入库 → 更新 slots → 重新打包。
- ~~【待素材】校准图案~~(已完成,2026-10-13 `bcb03e2`):CeramixNano 系列 6 张
校准图(黑/白/caliPoint/circle_640p/contrast/Sharpness_XY_3)二进制直存
assets/+release/ 平铺(用户素材,无生成脚本),slots 栏位接入、
package_release 收集规则扩展;随 v0.4.3 之后的下次发布进 zip。
- 【待真机帧·低优先】M305 回归向量是按协议推演的(selftest_rs485.py:90 起,
0x8CA0=36000mW 为推演值):真机功率显示已实测对接,仅剩把自测向量换成真机抓包,
让无硬件回归更贴近真机。
@@ -141,13 +197,28 @@
### 3.3 SerialMate
- 【待真机】光机实机收发与温度曲线实测(M201 ×0.1 提取),当前仅回环验证。
- 【无图标】assets/serial-mate.ico 未生成(build_exe.py 已预留路径)。
- ~~【无图标】assets/serial-mate.ico 未生成~~(已生成并随家族统一,见 §2.6)。
- 发送批处理脚本化(延时/循环/等待应答);曲线数据导出 CSV。
### 3.4 I2C-Inject
- 暂停开发期间不列计划;恢复时以其 README 现状为准。
- 并入 I2C-Lab 路线(见 §3.5);本目录不再单列计划。
### 3.5 明确不做(决策,非待办)
### 3.5 I2C-Lab 后续阶段(2026-10-02 起续接,监控已就绪见 §2.5)
- 【下一阶段】**主机模式**:probe 作 I2C 主机——总线扫描(scan)、读写
(wr/rd),复活 I2C-Inject 择机注入语义(静置窗口避让主控轮询/重试/读回
校验);GUI 加寄存器读写卡。硬件 I2C 与嗅探 PIO 可并存(先停监控再发射,
或 PIO 分频采样回看自身发射)。
- 【规划】**从机模拟**:RP2040 硬件 I2C 从机模式 + PC 端应答表(寄存器值/
回调),顶替传感器验证主机驱动。
- 【监控增强】协议语义插件(LT8619C bank/寄存器注释)、触发抓取、长记录
落盘、SMBus PEC/10bit 地址注记、波形按事务着色。
- 【待真机验收 v0.1.0】清单见 `I2C-Lab/AGENTS.md` §3(枚举/实听/注入对照/
400kHz 波形/30min 稳定性),验收后打 tag 发布。
- 平台结论(2026-09-30 沿用):固件 pico-sdk C(MicroPython 无从机 API、
嗅探无法实时流式);硬件 2× BPI-Pico-RP2040 + 2× JI2C;GP8=SDA GP9=SCL、
USB CDC `=`/`!` 回显、挂 live 板只接 GND/SDA/SCL 不加上拉——均已落地。
### 3.6 明确不做(决策,非待办)
- **0x606E 的 0x40/0x80 位交换不再单独实测**(2026-09-25 用户确认:当前行为正常、
符合预期,bit5 实测基线已够用;原【待硬件】项关闭)。
- TI 原始 I2C 命令透传不做:GD32 网关固件只收 ASCII M 命令集(v0.2.0 显式决策)。
@@ -222,6 +293,13 @@ python selftest.py ; python selftest_loop.py # 协议回归 + 链路
python main.py --seconds 5 # GUI 冒烟
python build_exe.py ; python package_release.py 0.1.0 # 打包 + 组装 zip
python publish_gitea.py ../release/SerialMate-v0.1.0-win64.zip --insecure
# I2C-Lab(完整清单:I2C-Lab/AGENTS.md)
cd I2C-Lab/src
python selftest.py ; python selftest_gui.py # 解码回归 + GUI 结构自检(改 i2cdec/main 后必跑)
python main.py --seconds 5 --demo # GUI 冒烟(演示模式, 无硬件)
python build_exe.py ; python package_release.py 0.1.0 # 打包 + 组装 zip(含固件 UF2)
python publish_gitea.py ../release/I2C-Lab-v0.1.0-win64.zip --insecure
```
上游协议/寄存器语义问题先查上游仓 `protocols.md` 与 `doc/architecture/`;