【免费下载链接】LightInkESP-IDF project that build LightMyInk Binaries项目地址https://gitcode.com/gh_mirrors/lig/LightInk点击查看免费下载LightInk 是一款基于 ESP32 与电子墨水屏E-Ink的开源太阳能手表固件项目通过 Deep Sleep、RTC 唤醒 Stub、自研 uSPI 驱动等硬核手段把整表日常耗电压到约 2µA实现0.5mAh/天 的超低功耗——一块 200mAh 电池理论上可用约 400 天甚至仅靠太阳板就能无限续航。本文为你完整拆解它是如何做到的。为什么是电子墨水屏低功耗的地基来自屏幕本身。传统 LCD/OLED 需要持续供电刷新而 E-Ink 只在更新瞬间耗电显示内容时几乎不消耗能量。LightInk 使用 1.54 英寸 200x200 黑白屏SSD1681 驱动配合一颗 50mAh 左右的扁平 LiPo 电池与 4.5~5.2V 的小型太阳能板Panasonic Amorton 5815硬件文档见 hardware/HARDWARE.md。硬件级省电双电压 超低静态电流 DC-DC ⚡这是很多人忽略的一点电源芯片本身也是耗电大户。LightInk 选用了 TI 的 TPS63900Buck-Boost 转换器静态电流仅75nA远低于普通 LDO。更妙的是固件实现了双电压切换平时看时间整板工作在2.7V低压DC-DC、RTC、ESP32 和屏幕的功耗同步降低实测约-15%需要 WiFi、刷新屏幕等高功耗操作时自动切到3.0V高压完成后再降回 2.7V切换逻辑通过 GPIO 控制电压选择引脚实现代码位于 firmware/main/power.cpp锁/解锁机制让每个耗电模块WiFi、显示、GPS、LoRa 等独立申请高电压时段Power::lock(Power::Flag::Wifi); // 进入高电压 ... 做 WiFi 的事 ... Power::unlock(Power::Flag::Wifi); // 释放降回低压相关电源配置定义在 firmware/main/power.h完整 BOM 可参考 hardware/pcb/PCB.md。核心大招不启动系统也能刷新屏幕 这是 LightInk 最硬核的一招。普通固件每分钟唤醒 ESP32 → 跑完整操作系统 → 刷新屏幕 → 再睡下光是启动本身就吃掉大量电量。LightInk 的思路是每分钟唤醒根本不需要启动固件。ESP32 进入Deep Sleep深睡模式到点后由 RTC 定时器唤醒跳进一段存放在 RTC 内存里的Wake Up Stub唤醒桩代码Stub 用纯寄存器级代码直接驱动屏幕只更新分钟数字刷新完毕立刻重新深睡——全程不到 1 毫秒作者回忆这段经历时写道手写 SPI 寄存器驱动、没有调试器、没有日志靠示波器逐信号验证第一次从 RTC 刷新屏幕后我测了功耗直接少了 60%。这段代码的核心在 firmware/main/deep_sleep.cpp。自研 uSPI为 RTC 环境量身定做的 SPI 驱动 Deep Sleep 环境下没有操作系统、没有 Flash 访问、不能打日志标准 SPI 库完全用不了。LightInk 因此手写了一个微型 SPI 驱动uSPI代码见 firmware/main/uspi.h 与 firmware/main/uspi.cpp直接操作 SPI 外设寄存器在 RTC IRAM 中运行时钟频率设为 20MHz甚至留了 26MHz 超频选项。它负责writeArea()只把变化的数字区域写入屏幕 RAMrefresh()触发局部刷新hibernate()刷新完成后让屏幕进入休眠等待下一次唤醒局部刷新 缓存表盘每只数字都算过账 配合 uSPI固件把表盘渲染结果提前缓存每个数字 0~9 的像素位图在 RAM 中各存一份。每分钟只需要把变化的个位/十位分钟两个小区域推给屏幕而不是重刷整屏。再看刷新速率——固件会根据电池电量动态调整更新频率firmware/main/core.cpp电池电量刷新间隔100% 满电每 1 分钟50%~100%每 2 分钟20%~50%每 4 分钟 20%每 5 分钟另外开启夜间模式后凌晨 0~7 点自动降为 5 分钟刷新一次——反正睡着了没人看。显示刷新LUT 也做低功耗优化 E-Ink 的刷新波形LUT越长越黑越干净但也越耗电。LightInk 重写了显示驱动自定义了多档 LUT 模式FULL / FAST / GOOD / QUICK手表默认使用极短的QUICK波形只刷新分钟数字时足够清晰配置定义见 firmware/main/display.h。作者还在驱动层面缩短了 Booster电荷泵加压时间省下约 200ms 的刷新电流。其他抠出来的细节 砍掉加速度计即使禁用也有 1µA 待机功耗直接不装GPS / LoRa 默认断电只在需要收发信号时短暂开启触摸唤醒亮灯深睡中点按表壳触发电容感应Stub 直接点亮 LED 照明再睡回去不需要启动系统firmware/main/deep_sleep.cpp显示完成等待用轮询代替忙等等待屏幕 BUSY 信号时用分段微睡眠 自适应退避而非全速空转firmware/main/deep_sleep.cpp太阳能直连电池白天光照下电池电压足够太阳板不消耗任何能量夜间实测 0.1µA见 hardware/pcb/PCB.md一张表看懂省电链路 层级手段效果屏幕E-Ink 局部刷新 短 LUT刷新时间短、电流低供电TPS63900 双电压2.7V/3.0V常态约 -15% 功耗CPUDeep Sleep RTC Wake Stub每分钟唤醒不启动系统功耗 -60%通信uSPI 寄存器级驱动1ms 完成驱动初始化策略按电量/夜间动态降频电量越低越省完整的探索历程从 1 个月续航做到 200 天记录在 docs/HISTORY.md非常值得一读。总结LightInk 的 0.5mAh/天不是靠某一个黑科技而是电子墨水屏 超低静态电源 深睡桩刷新 局部更新 动态策略层层叠加的结果。对于做 ESP32 低功耗设备的同学这个项目堪称教科书先选对硬件电源芯片、屏幕再把能不进系统就不进系统做到极致。固件代码位于 firmware/main/硬件资料位于 hardware/clone 后即可自行编译git clone https://gitcode.com/gh_mirrors/lig/LightInk cd LightInk/firmware ./setup.sh idf.py build flash monitor赞分享【免费下载链接】LightInkESP-IDF project that build LightMyInk Binaries项目地址https://gitcode.com/gh_mirrors/lig/LightInk点击查看免费下载相关推荐蜂鸟E203两级流水线架构揭秘如何实现超低功耗设计蜂鸟E203两级流水线架构揭秘如何实现超低功耗设计 蜂鸟E203作为SiFive公司开源的RISC V处理器内核以其创新的 两级流水线架构 在嵌入式领域脱颖嵌入式指令集硬件开发物联网如何用BGE-M3终极嵌入模型实现多语言文本检索完整指南如何用BGE M3终极嵌入模型实现多语言文本检索完整指南 前言 在当今多语言AI应用快速发展的时代开发者们面临着一个共同的挑战如何高效处理跨语言文本检索任3大核心技巧tiny-gpu如何用极简设计实现超低功耗GPU3大核心技巧tiny gpu如何用极简设计实现超低功耗GPU tiny gpu是一个采用Verilog语言实现的极简GPU设计项目旨在帮助开发者从底层了解G硬件开发高性能计算指令集上一篇modern-js/create 完全指南Modern.js 项目脚手架、模板渲染与 AI Agent 知识供给机制下一篇点下清理前必看流氓软件克星的8条安全原则如何做到宁愿少删不乱删创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考