与Claude一起破解一个27美元的智能手表
Pine Time是一款27美元的智能手表,运行开源固件。我在抽屉的后面放了一两年。在看到@steveruizok关于与Claude一起破解ESP32设备的推文后,我找到了灵感,把我的PineTime从抽屉里拿出来,看看Claude能做到什么!如果你知道什么是“编码代理”,那么去买这个或类似的东西(不是赞助,但它们在亚马逊、树莓派商店、阿里巴巴等地方都有)。我知道我想开始制作一个手表界面,因为手表自带的默认表盘非常简单而且无聊。我还最近看到@levelsio关于为Apple Watch制作自定义卡西欧手表界面的推文。我想知道是否可以为PineTime制作类似的东西(在Claude的帮助下)。结果证明,PineTime是一款与Claude一起破解的绝佳手表!它便宜(27美元)。它运行开源固件(InfiniTime或你想要的任何其他RTOS)。其文档非常完善。Claude在这种条件下茁壮成长。它有一个很好的模拟器(InfiniSim)。这给了Claude一个快速的反馈循环,可以在你的电脑上运行。固件很简单,所以你需要添加你想要的内容。虽然我一直在提到“Claude”,但实际上我在OpenCode中大部分工作是与一些我最喜欢的开源权重模型合作完成的。Kimi K3和K2.6,以及DeepSeek v4 Pro和Flash。我开始克隆InfiniSim仓库(其中有一个用于InfiniTime的git子模块),并请Claude使一个构建工作。它在Ubuntu上既快又简单!然后我变得比较雄心勃勃:我给Claude发送了@levelsio推文中的照片,并请Claude复制手表界面,以现有InfiniTime手表界面的代码作为起点。我要求它根据需要协调并使用子代理来完成明确的开发任务。它构建了一个相当不错的粗略近似,但非常粗糙。它似乎只是猜测文本的大小和位置,这导致内容虽然基本在正确的位置,但彼此重叠且难以阅读。尽管如此,这仍然是一个我们可以不断迭代的良好起点。我认为Fable可能能够在没有监督的情况下完成工作并达到像素级完美,如果我给它一个反馈循环来截取模拟器的屏幕。但是由于我是在OpenCode上使用开源权重模型,且预算有限,所以我选择自己参与更多,以节省一些代币,并给它具体反馈和明确的下一步任务。我一次修正一件事情——在进行下一步之前,让每个文本元素都正确。我发现我们花费了很多精力试图构建一些静态屏幕部分,意识到这可能不是必要的。我想知道是否可以仅制作一个全屏背景图像,其中包含所有静态部分,这样我们只需编程动态部分的屏幕。我们尝试了这个,它在模拟器上成功了!在真实手表上安装固件后,我发现我们正在挑战这款小手表的能力极限。通过蓝牙传输240x240的图像以安装到设备上大约需要10分钟,滑动时刷新整块屏幕需要1-2秒。手表无法一次性在内存中保存整个图像;它必须从文件系统中流式传输。但对于我在几个小时内构建的手表界面来说,这完全没问题!我可能会在某个时候回去用代码构建更多的背景,以便它能够立即更新。但今天,我对我的工作原型感到满意!我把所有代码上传到GitHub,你可以直接使用它,或者如果你愿意,可以将其作为你自己项目的起点。我还请Claude将我们在这个过程中学到的东西总结成一个AGENTS.md。这应该能帮助你快速入门,并避免我遇到的一些障碍,如果你想尝试使用自己的手表!我喜欢与AI一起进行这个项目!低风险的环境(不是我日常工作中的生产代码)让我觉得我可以尝试任何我想做的事情,并快速迭代,在我完成构建后能持有并使用的物理设备上进行固件开发真的很有成就感!几年前,当我买下这款PineTime时,我没时间和动力去学习如何在InfiniTime代码库中工作,手表在抽屉里躺了几年的时间。但今天,我能够在几个小时内构建一个新的手表界面,并乐在其中!未来是光明的!
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡