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:
@@ -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/`;
|
||||
|
||||
Reference in New Issue
Block a user