从手机上的一帧,
到屏幕里的真实颜料。
这份文档明确区分旧版应用已经证明的事实、可以按标准路径重建的能力,以及仍需 Peanup 真机闭环验证的部分。它是工程依据,不是众筹宣传承诺。
本地先完成,
更新时才连接。
V1 将拍摄、排版、六色转换和作品库留在手机。完成的一帧经近场蓝牙发送,断开后由电子纸继续保持。
E:旧版应用链接 AVFoundation、PhotosUI、CoreImage、CoreBluetooth、ActivityKit,并使用本地文件存储;核心链路不依赖云端照片处理。
R:图像渲染器与传输层必须分离。设备 profile 统一管理屏幕尺寸、颜色码、打包方式、GATT 标识和控制器能力,UI 只消费稳定的进度状态。
- 01输入
相机、相册、文字或信息卡片画布。
- 02渲染
在本地裁切、调色、量化与抖动。
- 03传输
协商 profile,分块节流并持久化待发送任务。
- 04刷新
等待设备结果后,才能将这一帧标为完成。
先锁定几何,
再接入控制器。
厂家 Tentative Specification V0.2 将 SE0368NW34-CNG-A0 定义为 3.68 英寸 AM EPD:528 × 792 pixels,有效区 51.84 × 77.76 mm,面板模组 56.24 × 86.54 × 0.87 mm。
- MATRIX
- 528 × 792 竖向像素矩阵
- ACTIVE AREA
- 51.84 × 77.76 mm 有效显示区
- MODULE
- 56.24 × 86.54 × 0.87 mm 不含 Peanup 外壳
- WHITE
- 30% min. / 35% typ. 白色反射率
- CONTRAST
- 8:1 min. / 10:1 typ. 表面反射对比
- TEMPERATURE
- 0–50°C 面板工作范围
24-pin / SPI
面板提供 24-pin FPC、只写 3-wire 或 4-wire SPI。BUSY 为低时不得中断控制器操作;命令序列仍以最终控制器资料为准。
3.0 V typical
VDD 范围 2.8–3.6 V;表中典型面板功耗 60 mW,Sleep 50 μA(保留 RAM),Deep sleep 1 μA(不保留 RAM)。这些不是 Peanup 整机功耗。
仍需真机闭环
刷新时间与面板重量仍为 TBD;规格条件标注 indoor only、最高 2000 lux。户外、刷新速度和整机续航必须另行验证。
规格表同时写有 94 μm pixel pitch 和 DPI 259,但 51.84 mm / 528 pixels 与 77.76 mm / 792 pixels 均约为 98.18 μm,即约 258.7 PPI。工程实现与产品页统一以像素矩阵和有效区的计算结果为准。
一张构图,
六种物理色码。
渲染目标固定为 528 × 792 pixels。全链路保持原始比例,并按选定的硬件 profile 裁切与渲染,禁止为了铺满而拉伸图片。
方向与裁切
规范 EXIF 方向,按有效面板 profile 裁切,并用高质量滤镜缩放。
整理画面
在分配色板前处理黑白点、局部对比度与饱和度。
量化与抖动
以感知色差匹配校准颜料,再扩散未被表示的误差。
索引与打包
根据协商后的控制器 profile 打包色彩索引;真实帧长度由量产面板像素矩阵决定。
panelWidth = 528
panelHeight = 792
pixelCount = panelWidth * panelHeight // 418,176 pixels
// 线上帧长度仍由最终色序、位深与控制器封包决定 几何边界:网站 Canvas 可以使用独立逻辑坐标,但写屏前必须渲染为 528 × 792。H:最终控制器 profile 仍需给出色序、位深、刷新波形与封包格式。
不是一层滤镜,
而是一套渲染系统。
实时预览和最终写屏的目标不同。输入应保持在线性或明确定义的色彩空间;误差扩散采用蛇形扫描、限制误差幅度,并让文字与照片使用不同策略。
四邻域扩散,在细节、速度与兼容性之间取得平衡。
只扩散部分误差,结果更清脆、对比更高。
三行大范围扩散,适合柔和的照片层次。
同样使用宽核,并比 JJN 更强调边缘保持。
两行扩散,在细节、内存与计算量之间折中。
从最终高质量输出到响应式预览的三个复杂度层级。
Ordered 4 × 4 / 8 × 8
Bayer 阈值在帧与帧之间稳定,适合需要快速反馈的相机预览。
Floyd–Steinberg / Stucki
误差扩散能保留局部细节,并把最终写屏计算量控制在合理范围。
感知量化 / Spectra Mix
面向色板的色调映射可以保护照片结构,但旧版特殊混色行为尚未完整恢复。
内容感知规则文字、二维码式几何和单像素细线应关闭或约束跨边缘扩散。照片参数必须通过固定参考图集验证,不能只对色块调优。
发现、协商、
节流、确认。
FDF0 service已恢复特征:FDF1 与 FDF2。
FEF0 service已恢复特征:FEF1 与 FEF2。
- 01扫描目标服务
- 02连接外设
- 03发现服务与特征
- 04握手并协商 profile 能力
- 05按索引分块发送并节流
- 06等待最终 ACK 与刷新结果
- 07持久化结果并断开
Write with response
默认使用可靠的 CoreBluetooth 路径。收到系统写入回调或协议层确认后再推进下一块。
Write without response
只在能力协商通过后启用,并使用 maximumWriteValueLength 与 peripheralIsReady(toSendWriteWithoutResponse:) 处理背压。
已恢复的响应解析器接受首字节 01 / 02 / 03 / 05 / 06,但其完整业务语义尚未和出站命令逐一绑定。发现 UUID 不能证明读写方向、鉴权能力或数据包安全性。
屏幕负责保持,
系统负责尽快休眠。
- IDLE
MCU 休眠,并采用边界明确的设备发现策略。
- CONNECT
临时广播,并协商适合传输的连接间隔。
- TRANSFER
提高 BLE 活动,以外设缓冲区为边界分块节流。
- REFRESH
控制器驱动屏幕波形时,停止无意义的无线吞吐。
- RETURN
记录完成状态、断开并返回最低有效功耗状态。
H:电子纸断电保持并不能直接得到整机待机电流。必须在不同温度与刷新频率下测量 MCU、BLE 广播、PMIC、充电、NFC 和漏电共同构成的整机功耗。
从证据开始,
用测量结束。
本地照片仓库与缩略图、六色模式、色码与半字节打包、FDF/FEF 服务族、普通与快速写入、索引分块、最终确认与刷新等待、QuickLZ 相关对齐检查。
拍摄与导入、按设备 profile 裁切、本地预览、标准 Ordered 与误差扩散算法、待发送任务持久化、CoreBluetooth 扫描连接骨架、背压、进度 UI 与模拟传输故障注入。
特征 properties 与方向、出站控制字节、包头与大小端、ACK 语义、校验或 CRC、QuickLZ 版本与封装、控制器色序、刷新波形、真实吞吐、温度影响、电池容量和整机功耗。
只有无人值守或远程更新被验证为核心需求后,才增加常驻网络能力。