202510
hardware-hacking

卡西欧 F-91W 终极改造:从 ATtiny85 到 SAM L22 的自定义固件工程实践

本文深入探讨如何通过更换微控制器(从 ATtiny85 的概念验证到 SAM L22 的成熟方案)来彻底改造卡西欧 F-91W,实现自定义固件与功能扩展,分析其中的 PCB 设计、LCD 驱动和功耗管理等关键工程挑战。

卡西欧 F-91W,一款诞生于 1989 年的数字手表,以其极简设计、可靠性和惊人的性价比,成为了全球范围内的文化符号。然而,对于今天的硬件工程师和创客而言,F-91W 不仅仅是一件计时工具,更是一个近乎完美的硬件改装平台。虽然网络上流传着许多关于其外观的美学改造(如屏幕反向偏光、清除丝印等),但真正的“终极改造”,在于深入其核心,用一颗现代、可编程的“心脏”——微控制器(MCU)——来替换其原始电路,从而赋予它无限的可能性。

本文将深入探讨替换 F-91W 原厂机芯、实现自定义固件的硬件工程实践,从入门级的 ATtiny85 概念验证,到以“Sensor Watch”项目为代表的、基于 ARM Cortex-M0+ (Microchip SAM L22) 的成熟方案,分析其中的关键技术挑战与落地参数。

核心理念:赋予经典硬件一颗可编程的大脑

F-91W 的原厂电路是一个高度集成的专用集成电路 (ASIC),功能固定,无法修改。硬件改装的核心思想,就是设计一块全新的印刷电路板 (PCB),使其在物理尺寸上能完美替代原始机芯,并搭载一颗通用微控制器。这颗 MCU 将负责三项核心任务:

  1. 读取输入:监测三个物理按键的按压状态。
  2. 驱动显示:控制原始的段式 LCD 屏幕,显示时间、日期及自定义信息。
  3. 运行逻辑:执行我们自己编写的固件代码,实现超越原版的功能。

这个过程将一款功能单一的消费电子产品,转变为一个完全可定制的嵌入式系统开发平台。

概念验证:使用 ATtiny85 的可能性与局限

对于初次接触此类改造的工程师来说,8位的 ATtiny85 是一款极具吸引力的入门级 MCU。它体积小、功耗低、拥有活跃的社区支持,并且可以使用 Arduino IDE 进行编程,大大降低了开发门槛。

一个基于 ATtiny85 的改造方案,其工程链路大致如下:

  1. 硬件连接:使用 Arduino Uno 作为在系统编程器 (ISP),将编译好的固件烧录到 ATtiny85 中。
  2. PCB 设计:设计一块极简的 PCB,板载 ATtiny85、连接 LCD 的导电斑马条触点、按键触点以及 CR2016 电池座。
  3. 固件开发:编写代码来扫描按键、管理时间(可能需要外部 RTC 或利用内部时钟校准),并通过 GPIO 口“位敲击” (Bit-Banging) 的方式驱动 LCD。

然而,ATtiny85 在此应用中存在几个严峻的工程挑战:

  • I/O 引脚限制:ATtiny85 只有 6 个可用的 I/O 引脚。F-91W 的 LCD 屏幕拥有多个公共引脚 (COM) 和段引脚 (SEG),直接驱动所需的引脚数量远超 ATtiny85 的能力范围。虽然可以采用查理复用 (Charlieplexing) 等技术扩展,但这会显著增加软件复杂度和功耗。
  • LCD 驱动的复杂性:段式 LCD 需要交流信号来驱动,以防止电化学效应导致液晶材料过早老化。直接用 MCU 的 GPIO 输出直流高低电平是不可行的。开发者必须在软件中模拟特定频率的交流波形,这不仅消耗大量的 CPU 周期,还难以做到精确和低功耗。
  • 功耗管理:要实现原厂手表长达数年的续航,MCU 必须在绝大多数时间处于深度睡眠模式。频繁唤醒以模拟 LCD 驱动信号,会使得功耗控制变得极其困难。

因此,尽管 ATtiny85 是一个很好的教学工具,可以用来理解项目基本原理,但对于构建一个功能完整且续航可靠的 F-91W 替代机芯而言,它并非理想选择。

成熟方案:以 Sensor Watch (SAM L22) 为例的工程实践

Joey Castillo 的开源项目“Sensor Watch”是 F-91W 固件改装领域的一个标杆。它没有选择 ATtiny85,而是采用了一款功能强大得多的 32 位 ARM Cortex-M0+ 微控制器——Microchip SAM L22。这个选择完美地解决了 ATtiny85 面临的所有痛点。

关键技术参数与优势

  1. 内置段式 LCD 控制器:SAM L22 最核心的优势在于其片上集成的段式 LCD (SLCD) 控制器。开发者不再需要手动模拟交流波形,只需将 MCU 的引脚连接到 LCD 的 COM 和 SEG 端,然后通过配置相关寄存器,即可让硬件自动处理所有低层驱动任务。这不仅极大简化了软件开发,更重要的是,它能在 MCU 内核睡眠时自主工作,实现极致的低功耗。
  2. 丰富的 I/O 和外设:SAM L22 提供了充足的 I/O 引脚,可以轻松直连 F-91W 的全部 LCD 接口和按键,无需任何复用技巧。此外,它还集成了实时时钟 (RTC)、I2C/SPI 接口等,为后续功能扩展(如添加传感器)打下了坚实基础。
  3. 超低功耗架构:作为一款专为低功耗应用设计的 MCU,SAM L22 拥有多种睡眠模式,其在包含 RTC 运行和 LCD 显示的最低功耗模式下,电流消耗仅为几微安级别,完全有能力在单颗 CR2016 电池下实现超过一年的续航。
  4. UF2 引导加载程序:Sensor Watch 项目为主板集成了对 UF2 (USB Flashing Format) 引导加载程序的支持。这意味着用户只需通过板载的 USB-C 或 Micro-B 接口将手表连接到电脑,双击复位按钮,手表就会模拟成一个 U 盘。将编译好的固件文件拖入这个“U 盘”,即可完成烧录,整个过程无需外部编程器,极为便捷。

工程化落地清单

想要复刻或开发类似的 F-91W 改装项目,需要关注以下可落地的工程要点:

关键环节 技术参数与策略
MCU 选型 首选:集成 SLCD 控制器的低功耗 MCU (如 SAM L22/L21, 部分 STM32L 系列)。次选:I/O 数量充足,具备精确 RTC 和深度睡眠模式的 MCU,但需自行承担 LCD 驱动的软件复杂性。
PCB 设计 必须使用卡尺精确测量原始机芯尺寸(厚度、外形轮廓、螺丝孔位),确保 1:1 替换。LCD 和按键的弹簧触点位置必须精确对齐。优先选用 4 层板设计,以便更好地进行电源和信号布线。
电源管理 严格控制物料清单 (BOM) 中每个元件的静态与动态功耗。固件设计必须以“默认睡眠”为原则,仅在必要时(如按键中断)唤醒 CPU 内核进行处理。
LCD 逆向工程 在驱动自定义 LCD 之前,需要逆向工程出原厂 LCD 的引脚布局。通过万用表或示波器,可以确定每个段 (Segment) 由哪个 COM/SEG 引脚组合点亮,并绘制出完整的引脚映射表。
固件框架 建立一个事件驱动的固件框架。核心是一个低功耗的定时器中断(如每秒一次)用于更新时间,以及外部中断服务程序用于响应按键。所有非核心任务都应在事件循环中处理,并在完成后立即返回睡眠模式。

结论

将卡西欧 F-91W 从一个简单的计时器,转变为一个可编程的、功能可扩展的个性化设备,是一项极具挑战性但回报丰厚的硬件工程项目。它完美融合了逆向工程、PCB 设计、低功耗固件开发和嵌入式系统知识。虽然使用 ATtiny85 这样的基础 MCU 可以帮助我们理解其核心概念,但要打造一款真正实用、可靠的日常佩戴设备,选用像 SAM L22 这样带有专用外设的现代微控制器才是明智之道。

正如 Sensor Watch 项目所展示的,通过精心的工程设计,我们可以站在经典的肩膀上,用代码为这些标志性产品注入新的灵魂,这正是硬件 hacking 文化的魅力所在。