花生片 Peanup
目录
PEANUP / ENGINEERINGREV. 0.2

从手机上的一帧,
到屏幕里的真实颜料。

这份文档明确区分旧版应用已经证明的事实、可以按标准路径重建的能力,以及仍需 Peanup 真机闭环验证的部分。它是工程依据,不是众筹宣传承诺。

EEvidence二进制、资源或已恢复常量中的直接证据 RRebuild可用标准平台技术重新实现 HHardware需要控制器手册、抓包或实机测量
02 / ARCHITECTURE

本地先完成,
更新时才连接。

V1 将拍摄、排版、六色转换和作品库留在手机。完成的一帧经近场蓝牙发送,断开后由电子纸继续保持。

E:旧版应用链接 AVFoundation、PhotosUI、CoreImage、CoreBluetooth、ActivityKit,并使用本地文件存储;核心链路不依赖云端照片处理。

R:图像渲染器与传输层必须分离。设备 profile 统一管理屏幕尺寸、颜色码、打包方式、GATT 标识和控制器能力,UI 只消费稳定的进度状态。

  1. 01输入

    相机、相册、文字或信息卡片画布。

  2. 02渲染

    在本地裁切、调色、量化与抖动。

  3. 03传输

    协商 profile,分块节流并持久化待发送任务。

  4. 04刷新

    等待设备结果后,才能将这一帧标为完成。

03 / PANEL PROFILE

先锁定几何,
再接入控制器。

厂家 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
面板工作范围
BUS

24-pin / SPI

面板提供 24-pin FPC、只写 3-wire 或 4-wire SPI。BUSY 为低时不得中断控制器操作;命令序列仍以最终控制器资料为准。

PANEL POWER

3.0 V typical

VDD 范围 2.8–3.6 V;表中典型面板功耗 60 mW,Sleep 50 μA(保留 RAM),Deep sleep 1 μA(不保留 RAM)。这些不是 Peanup 整机功耗。

PROVISIONAL LIMITS

仍需真机闭环

刷新时间与面板重量仍为 TBD;规格条件标注 indoor only、最高 2000 lux。户外、刷新速度和整机续航必须另行验证。

SPEC CONSISTENCY

规格表同时写有 94 μm pixel pitch 和 DPI 259,但 51.84 mm / 528 pixels 与 77.76 mm / 792 pixels 均约为 98.18 μm,即约 258.7 PPI。工程实现与产品页统一以像素矩阵和有效区的计算结果为准。

04 / IMAGE PIPELINE

一张构图,
六种物理色码。

渲染目标固定为 528 × 792 pixels。全链路保持原始比例,并按选定的硬件 profile 裁切与渲染,禁止为了铺满而拉伸图片。

01 / GEOMETRY

方向与裁切

规范 EXIF 方向,按有效面板 profile 裁切,并用高质量滤镜缩放。

02 / TONE

整理画面

在分配色板前处理黑白点、局部对比度与饱和度。

03 / COLOR

量化与抖动

以感知色差匹配校准颜料,再扩散未被表示的误差。

04 / WIRE

索引与打包

根据协商后的控制器 profile 打包色彩索引;真实帧长度由量产面板像素矩阵决定。

0x00x10x20x30x50x6绿
panelWidth = 528
panelHeight = 792
pixelCount = panelWidth * panelHeight  // 418,176 pixels
// 线上帧长度仍由最终色序、位深与控制器封包决定

几何边界:网站 Canvas 可以使用独立逻辑坐标,但写屏前必须渲染为 528 × 792。H:最终控制器 profile 仍需给出色序、位深、刷新波形与封包格式。

05 / DITHER ENGINE

不是一层滤镜,
而是一套渲染系统。

实时预览和最终写屏的目标不同。输入应保持在线性或明确定义的色彩空间;误差扩散采用蛇形扫描、限制误差幅度,并让文字与照片使用不同策略。

Floyd–SteinbergDIV / 16

四邻域扩散,在细节、速度与兼容性之间取得平衡。

AtkinsonDIV / 8

只扩散部分误差,结果更清脆、对比更高。

Jarvis–Judice–NinkeDIV / 48

三行大范围扩散,适合柔和的照片层次。

StuckiDIV / 42

同样使用宽核,并比 JJN 更强调边缘保持。

BurkesDIV / 32

两行扩散,在细节、内存与计算量之间折中。

Sierra 3 / 2 / LiteDIV / 32 / 16 / 4

从最终高质量输出到响应式预览的三个复杂度层级。

REALTIME

Ordered 4 × 4 / 8 × 8

Bayer 阈值在帧与帧之间稳定,适合需要快速反馈的相机预览。

BALANCED

Floyd–Steinberg / Stucki

误差扩散能保留局部细节,并把最终写屏计算量控制在合理范围。

PHOTO

感知量化 / Spectra Mix

面向色板的色调映射可以保护照片结构,但旧版特殊混色行为尚未完整恢复。

内容感知规则文字、二维码式几何和单像素细线应关闭或约束跨边缘扩散。照片参数必须通过固定参考图集验证,不能只对色块调优。

06 / CORE BLUETOOTH

发现、协商、
节流、确认。

FDF PROFILEFDF0 service

已恢复特征:FDF1FDF2

FEF PROFILEFEF0 service

已恢复特征:FEF1FEF2

  1. 01扫描目标服务
  2. 02连接外设
  3. 03发现服务与特征
  4. 04握手并协商 profile 能力
  5. 05按索引分块发送并节流
  6. 06等待最终 ACK 与刷新结果
  7. 07持久化结果并断开
NORMAL PATH

Write with response

默认使用可靠的 CoreBluetooth 路径。收到系统写入回调或协议层确认后再推进下一块。

FAST PATH

Write without response

只在能力协商通过后启用,并使用 maximumWriteValueLengthperipheralIsReady(toSendWriteWithoutResponse:) 处理背压。

已恢复的响应解析器接受首字节 01 / 02 / 03 / 05 / 06,但其完整业务语义尚未和出站命令逐一绑定。发现 UUID 不能证明读写方向、鉴权能力或数据包安全性。

07 / POWER MODEL

屏幕负责保持,
系统负责尽快休眠。

  1. IDLE

    MCU 休眠,并采用边界明确的设备发现策略。

  2. CONNECT

    临时广播,并协商适合传输的连接间隔。

  3. TRANSFER

    提高 BLE 活动,以外设缓冲区为边界分块节流。

  4. REFRESH

    控制器驱动屏幕波形时,停止无意义的无线吞吐。

  5. RETURN

    记录完成状态、断开并返回最低有效功耗状态。

H:电子纸断电保持并不能直接得到整机待机电流。必须在不同温度与刷新频率下测量 MCU、BLE 广播、PMIC、充电、NFC 和漏电共同构成的整机功耗。

08 / VALIDATION BOUNDARIES

从证据开始,
用测量结束。

E / 已确认的旧版证据

本地照片仓库与缩略图、六色模式、色码与半字节打包、FDF/FEF 服务族、普通与快速写入、索引分块、最终确认与刷新等待、QuickLZ 相关对齐检查。

R / 现在可以重建

拍摄与导入、按设备 profile 裁切、本地预览、标准 Ordered 与误差扩散算法、待发送任务持久化、CoreBluetooth 扫描连接骨架、背压、进度 UI 与模拟传输故障注入。

H / 必须依赖真机

特征 properties 与方向、出站控制字节、包头与大小端、ACK 语义、校验或 CRC、QuickLZ 版本与封装、控制器色序、刷新波形、真实吞吐、温度影响、电池容量和整机功耗。

V1 ARCHITECTURE DECISION手机本地渲染 + BLE 近场传输 + 电子纸断电保持

只有无人值守或远程更新被验证为核心需求后,才增加常驻网络能力。