Files
qianbian/docs/field-test-result.md
T

3.8 KiB
Raw Blame History

全链路测试结果(第一轮 · 2026-07-28)

执行方式:bridge 模式(host-win 原生 BLE)+ ppclock batch 单连接。 计划:docs/field-test-plan.md。结论先行:核心链路全部实机验证通过。

基础设施

项 结果
本机 usbip 蓝牙 ❌ 大 MTU GATT 断流(DECISIONS 2026-07-28),弃用
bridge(host-win 原生) ✅ 部署于 C:\yi\ble-bridge(build 4,PID 23776,0.0.0.0:8971)
设备 NRF-5DBF28 @ 18:BC:5A:5D:BF:28

协议验证(实机)

# 项 结果 证据
1 扫描/连接 ✅ bridge scan/connect,build 2 后稳定
2 GATT 结构 ✅(有修正) 实机全表抓取:EPD h=48;1f1f(h=53) 仅 write 不执行命令;331f(h=57) 为活命令通道;fef5 SUOTA 六特征在线
3 取设备 ID(EFEF) ✅ 81233F3C267112(经 331f 写+notify)
4 MAC 反解 ✅ ID → 28:bf:5d:5a:bc:18 = 广播地址反转(参数序 MAC5 在前,实机校正)
5 keygen 离线激活 ✅ activate --auto 下发 2564550c1b2d 成功
6 对时 dd ✅ batch line 3 ok
7 传图(126×244B 双平面) ✅ 屏显确认 棋盘+中央红块上屏(曾杀死 usbip 的流量)
8 显示图一 e10000 ✅ 屏显确认 切到图片
9 模式切换 e102xx/e101xx ✅ 屏显确认 331f 通道下 clock 画面出现;1f1f 通道无效(实锤对比)
10 倒计时+前缀 ✅ 命令 ok 屏显待二次确认(序列中停留 8s,见下)
11 停车牌 ⚠ 一次传输中断 WinError -2147023673(设备睡眠间隙断连,非协议问题)
12 刷屏 00/01 ✅ 屏显刷新

待第二轮确认/执行

  1. 慢速目视序列 已完成(见 #10-12 行)
  2. G4 SUOTA 首刷:已推进至设备内部产品头门禁(见下"SUOTA 排障全记录"),用户决策安全收尾(2026-07-29),后续解法见遗留项
  3. 固件 no-op 验证:rotation/wifi 应无屏效
  4. 六抖动算法屏显差异、模板 6 种屏显

SUOTA 排障全记录(2026-07-29)

层 问题 根因与处置
传输 三轮"首块前静默停滞" asyncio StreamReader 64KiB 行限制,144KB 镜像请求永不到达(build 9: limit=4MiB)
协议 状态码 16 误杀 固件反汇编实证 = MEM_DEV type 0x13 信息应答(0x07FCB770),build 10 按信息码处理
引脚 块1 状态 22(0x38000 读失败) GPIO_MAP 字节序错误;探针实证 BE 序 {05,06,00,40} 电气有效(已固化为服务端默认)
门禁 状态 20(产品头无效) 设备 0x38000 无有效 'pR' 产品头(裸 'pQ' 直启),固件中止首缓冲处理——vendor 级设计,强推有砖险,用户决策安全收尾

设备全程零风险(探针均 max_blocks=2 安全模式,不发 END)。

已知问题

# 问题 状态
K1 停车牌 EF+双写号码:命令 ACK 但屏不显(含 11 位号码、去 e2 变体均试) 待查:疑似固件家族格式分叉(d8 hex-concat)或渲染与模式联动;协议帧与 web 证据一致
K2 设备睡眠快(广播窗 30-60s,无唤醒按钮、自动周期醒) 已有工作法:batch 单连接 + 守候循环
K3 多次命令间隔断连(WinError -2147023673)1 次 瞬态(睡眠间隙),重连即恢复
K4 SUOTA 产品头门禁:0x38000 无 'pR' 解法案:①逆向 vendor 镜像目录是否含产品头镜像 ②研究裸启设备的产品头自举写入路径 ③评估 JTAG/UART 写头

环境备注

  • 设备睡眠:广播窗口 30-60s,连接态清醒;现场统一 batch 单连接+守候循环
  • bridge_server build 4:write alt=331f、notify 三订阅、EFEF 走 331f