# 软硬件架构总述(4.2寸墨水屏设备) > 证据:docs/protocol.md、analysis/web/protocol-raw.md、analysis/apk/apk-analysis.md、docs/firmware-analysis.md(固件部分) ## 1. 系统全景 ``` ┌──────────────┐ BLE GATT ┌──────────────────────┐ SPI ┌─────────────┐ │ 上位机 │ ◄──────────► │ DA14585 (Cortex-M0) │ ──────► │ 4.2" 墨水屏 │ │ Web/App/CLI │ │ 固件 PP_da14585_4.2 │ │ 400x300 BWR │ └──────────────┘ └──────────────────────┘ └─────────────┘ ``` - **SoC**:Dialog DA14585(ARM Cortex-M0,96KB SysRAM @0x07FC0000,外置 SPI Flash 存固件与图片) - **屏**:4.2" 400×300 黑/白/红三色电子纸(1bpp 双平面:bw + red) - **广播名**:`NRF-XXXXXX`(固件内模板字符串,地址后缀填充) ## 2. 软件生态(厂商) | 组件 | 技术 | 云依赖 | |---|---|---| | Web 上位机 mspppclock.tech | Web Bluetooth JS | 激活 key_generator.php、固件 file_down.php(qicp.vip:8889) | | Android App client-qbsg | Kotlin Compose Multiplatform + Rust native | qbsg.top 全家桶(激活/固件/字体/图库/社区/账号) | | 固件 PP_da14585_4.2 | Dialog SDK(ble_app_profile 衍生) | 无(WiFi 天气功能经手机中继) | 两代协议并存:本设备固件属"平平"家族(Web 协议);APK 另支持"扫地/轻舞/时光"家族(帧格式分叉,见 apk-analysis §g)。 ## 3. BLE 协议架构(本设备) 双通道: - **EPD 通道**(service 13187b10…/char 4b646063…):图像块(`03|04`+`ff|00`+2B偏移+240B)、刷屏 `00xx/01`、小图结束 `AA` - **RXTX 通道**(service 00001f10/char 00001f1f):全部控制命令(dd 时间、e1xx 模式、EF 族、FB/e901/EA0x、倒计时族、E2 提交)+ notify(设备 ID 应答) - **SUOTA**(service 0000fef5 + 5 自定义 UUID):固件升级(protocol.md §9) ## 4. 图像数据流 图片 → 调整(亮度/对比度/饱和度)→ 抖动量化(6 算法 × 黑白/三色)→ 1bpp MSB-first 行主序双平面(各 15000B)→ 240B 块 ×63×2 → `01` 刷新上屏。 ## 5. 本项目交付物在架构中的位置 | 交付物 | 替代的厂商组件 | 去云效果 | |---|---|---| | `src/ppclock` CLI | Web 上位机 + App 全部设备功能 | 零网络(仅 BLE) | | `tools/fw*.py` | file_down.php 固件分发 | 本地解析/修改/重打包 | | `ppclock ota` | App 的 SUOTA 客户端 | 本地固件升级 | 详见 docs/protocol.md(协议规范)与 docs/firmware-analysis.md(固件 internals)。