Skip to content

墨印 MoInk 基线版本:R1.3.0

Choose a tag to compare

@atunverse atunverse released this 14 Oct 23:24
· 4 commits to main since this release

墨印 MoInk 基线版本:R1.3.0

⚠️ 本版新增「多图轮播图库」:设备内最多保存 8 张图,在机身上短按按键循环切换。
⚠️ 自本版起,Release 累积保留,不再删除历史版本。
⚠️ 升级不重置设置(屏型 / 风格 / GPIO 接法 / 休眠 / 唤醒 / 热点全部保留),已有的轮播图也保留。

本次更新(相对 R1.2.2)

1. ★ 多图轮播:R1.2.0 预留的 store 分区正式启用

设备内部划出 8 个 128 KB 图槽(共 1,088 KiB),每槽保存一张完整的 2bpp 帧。上电后短按机身按键即可循环切图,不需要手机、不需要联网。

  • 存图追加到末尾,不再覆盖最早那张(旧行为是 round-robin 覆盖)。
  • 每槽除主图外还可携带一张彩色缩略图,供控制页图库显示(见第 4 条)。

2. ★ 设备轮播图库(控制页新卡片)

「设置 → 设备轮播图库」:

  • 8 个格子显示设备内已有图片的彩色缩略图,当前正在显示的那张带绿框;
  • 点缩略图 → 全屏大图预览(方向与屏上一致);
  • 每个格子右上角 × → 删除这一张,后面的图自动前移补位;
  • 「清空轮播」→ 清空全部(只清索引,不擦 flash、不伤设备)。

3. ★ 上传即入轮播,另加「仅上传」

  • 「上传并刷新屏幕」= 存进轮播 + 立即刷屏;
  • 「仅上传」(新增)= 只存进轮播、不刷屏,连续加图时不用每次等刷屏。

4. 缩略图改用网页端离线生成的彩色 JPEG

2bit 抽稀缩略图在手机彩色屏上放大后必现色块,因此改为:控制页从未量化的彩色合成图离线生成 69×96 彩色 JPEG(约 2~3 KB)随帧上传,设备原样存入槽尾。老图(没有预存缩略)自动回退为固件现算。

5. 新增与变更的接口

  • GET /api/carousel/list —— 图库列表(元数据 + 每槽缩略图)
  • GET /api/carousel/full?slot=N —— 单张整帧(大图预览用)
  • POST /api/carousel/delete?slot=N —— 删除并紧凑前移
  • POST /api/carousel/clear —— 清空轮播
  • GET /api/frame 新增 save=1(存并显示)、save=1&noshow=1(只存不显示)、tlen=N(随帧携带缩略载荷)
  • GET /api/info 新增 store_count / store_cur

6. 修复:内部迭代期的严重问题

  • httpd 路由表容量不足 → 设备无限重启:注册兜底路由时触发 HANDLERS_FULL,ESP_ERROR_CHECK abort、反复重启、热点起不来。本版把上限提到 32,从根上解决。
  • 缩略图「部分成功部分回退色块」:接收侧与写库侧的缩略长度上限不一致(7,500),彩色 JPEG 普遍 7~15 KB,超限被静默丢弃。两处上限统一为 20,000。
  • 图库列表接口峰值堆内存过高(约 60 KB):改为单槽循环 + 按实际缩略大小分配 + base64 分块发送。
  • 弱信号下 httpd_req_recv 返回 0 被误判为 body 截断 —— 增加短暂等待重试。

7. 控制页细节

  • 高级设置里滑块旁的「默认」角标现在可点击,一点即恢复该项默认值(13 个滑块全部生效)。

升级须知

  • R1.2.0 / R1.2.2 的设备可直接网页 OTA:进设备页面「设置 → 系统维护与升级」,上传 moink_R1.3.0_app.bin 即可(分区表未变)。
  • R1.1.x 及更早的设备必须线刷:分区表在 R1.2.0 变更过(新增 store 存储分区),只能用数据线整包刷 moink_R1.3.0_merged.bin。
  • 升级不重置设置(沿用 R1.2.2 语义:只清 a1_mode / a11_var 两个废弃键),热点名与密码保留,已存的轮播图保留。
  • 传 .html 只热更控制页,不重启,刷新浏览器即生效。
  • 本版固件仍没有 /api/ota 与 /api/web(R1.2.0 起删除),R1.1.x 的旧页面无法升级本版设备,请使用本包内的页面。
  • 只想清空设备里的轮播图,不必刷机:控制页「设备轮播图库 → 清空轮播」即可。

兼容性

  • api 保持 2:16 字节帧头格式与语义零变动,分区表零变动 —— 可与 R1.2.x 互刷。
  • 旧分区表(没有 store 分区)的设备:store_slots 为 0,轮播自动不可用,其余功能不受影响。
  • 算法基线 B2 12/12 MATCH,色彩与几何规格未变。

资产说明

  • MoInk-FlashKit-R1.3.0.zip:Windows 一键刷机包,解压后双击 bat 即可(自动选串口、跳过蓝牙虚拟口);包内「使用说明.txt」含完整验收清单
  • moink_R1.3.0_merged.bin:固件整包(R1.1.x 及更早线刷用,0x0 整包写入,含分区表,控制页已内嵌)
  • moink_R1.3.0_app.bin:OTA 升级包(R1.2.0 起设备网页升级用)
  • page-R1.3.0.html:控制页热更包(网页上传,免刷机)

版本校验

刷完在设备页面「设置 → 设备信息」应显示:版本 R1.3.0 / 接口 2。

真机验收清单(六项)

  • V1 轮播添加(★本版重点):传第一张 → 屏幕立即显示、图库出现 1 张(彩色缩略 + 绿框);用「仅上传」传第二张 → 图库变 2 张但屏幕不变;再「上传并刷新」传第三张 → 屏幕切到第三张。设备重启后轮播仍在。
  • V2 按键切图:设备睡着后短按按键 → 唤醒并切到下一张(不是重显当前张);连续短按在已有几张之间循环;长按 5 秒仍为恢复出厂。
  • V3 图库管理:点缩略图 → 大图预览,方向 / 内容与屏上一致;点 × 删一张 → 后面的图前移、张数 −1;删掉当前显示那张后再按键不花屏;「清空轮播」→ 8 格全空、张数归 0。
  • V4 满 8 拒绝:连续加到 8 张后再传 → 页面提示「轮播已满 8 张:请先删除或清空再上传」,且原图不被覆盖。
  • V5 升级兼容:直接用 moink_R1.3.0_app.bin 网页 OTA(分区表未变);升级后已有的轮播图与设置都保留。
  • V6 回归(R1.2.2 已验收项,抽检):GPIO 四档仍能切、「保存并重启」正常、A1 屏无需留白(四个留白勾保持不勾)。