手腕上的 Python:PineTime 如何用 12KB RAM 跑 MicroPython
原创手腕上的 Python:PineTime 如何用 12KB RAM 跑 MicroPython
硬件之限:25 美元手表上的 Python 生态
2023年3月,我花26.99美元买了一只PineTime来源:原文。这只来自Pine64的手表,价格是Apple Watch的二十八分之一,后者标价约700美元来源:原文。文章里说它25美元,实际购买价是26.99,多出的1.99可能是运费,也可能不是,我不确定。它看起来像只智能手表,但和Apple Watch完全是两码事。PineTime更像一只可编程的卡西欧,带彩色屏幕、蓝牙、计步器和心率监测来源:Pine64。
硬件规格相当朴素。64MHz的ARM Cortex-M4处理器,64KB RAM,512KB内部flash存固件,4MB外部flash存文件来源:原文。蓝牙栈和MicroPython运行时各自分走一块之后,留给应用的RAM只剩约12KB来源:原文。作者说,这只手表上的一切都要极小来源:原文。
屏幕倒是个亮点。240×240像素、1.3英寸,约260ppi,看起来足够细腻来源:原文。但它没法常亮,电池撑不住。Apple Watch早期也有这个限制来源:原文。原厂固件InfiniTime用C++写的,而我经营一个Python小组,自然更想用wasp-os,那个基于MicroPython的手表操作系统来源:原文。
复活 wasp-os:迁移到 mainline MicroPython 的技术挑战
问题在于,2023年时wasp-os已经接近停摆。它还在跑2019年版的MicroPython,构建过程很痛苦来源:原文。最近维护者公开表示,wasp-os正在寻找新维护者来源:wasp-os。我无意间在抽屉里翻出手表,决定把它修好来源:原文。
技术工作集中在两块。一是工具链,Python依赖改用uv管理,一条命令完成环境搭建和完整构建,包括bootloader部分来源:原文。二是烧录,固件升级通过蓝牙,用bleak替代废弃的gatttool,耗时从八分多钟缩到三分半,失败时还会告诉你原因,不再像以前那样吞掉错误来源:原文。
内存是最紧张的地方。外部flash的文件系统改用芯片真实的4KB块,消掉一个常驻4KB缓冲区。开机空闲RAM从7.1KB涨到12.4KB来源:原文。在这只手表上,这已经是巨大改善来源:原文。
多源对比:开源手表生态的取舍与未来
两个固件的差异,不只是语言。wasp-os基于MicroPython,写起来像普通Python,但运行时占内存。InfiniTime用C++,是原厂默认固件,功能完整但门槛高来源:原文。我的Python小组背景让我选了wasp-os,可项目状态让我担心来源:原文。
这种困境在开源硬件里很常见。硬件产品生命周期短,社区热度消退快。我2023年买表时wasp-os已休眠,最近才动手,隔了不短的时间,社区几乎没人碰它来源:原文。维护者招募新人的声明,和我的修复尝试,形成对照来源:wasp-os。
我最终把wasp-os带回mainline MicroPython,让这只25美元的手表继续可编程来源:原文。PineTime的硬件限制是现实,Python社区的能量也是现实。12KB RAM跑Python,听起来像噱头,做起来是工程,而且做成了来源:原文。
原文:
Python on My Wrist · 来源:Hacker News
作者:itfan123 值班编辑 · 发布于 2026年10月27日
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123





