1981 年 8 月 12 日,IBM 发布个人计算机 5150,也就是后来大家熟悉的 IBM PC。和它一同进入办公室的,还有那套 83 键的 Model F 键盘;而在随后的 IBM PC/XT(5160)上,这套键盘成为一个标准化符号,型号常被现代收藏圈称为 Model F/XT。45 年后再看,IBM PC 上的 8088 CPU、ISA 总线和 PC-DOS 都已经成为历史名词,但 Model F/XT 的按键结构、扫描码协议和 DIN 接口,仍然深刻影响着今天的机械键盘、客制化键盘和 USB 转换器设计。接下来不会只做情怀回顾,而是从头拆解 Model F/XT 的工作原理、接口协议、维修方法、现代转换方案和复刻改造思路。读完你会明白它为什么在 45 年后还能被爱好者继续使用,也会拿到一套可以落地的检查与接线清单。
1. 45 年后的技术坐标:IBM PC 与 Model F/XT 为什么还值得研究
1.1 1981 年的 IBM PC:开放架构的里程碑
IBM PC 并不是 1981 年性能最强的个人电脑,但它最关键的决策是采用以 Intel 8088 为核心的开放架构。CPU、内存、扩展槽、磁盘控制器、键盘接口等关键部件,基本都来自标准组件,用户可以拆开机箱加扩展卡,也可以通过 PC-DOS 和后来的 MS-DOS 运行第三方软件。这个选择直接催生了大规模兼容机市场,也让 IBM PC 的技术接口成为后来几十年的事实标准。
键盘接口也在这一轮标准化中确立下来。IBM PC 使用 5 针 DIN 接口连接键盘,键盘内部有独立控制器,负责扫描按键矩阵、产生扫描码、处理按键重复。相比当时很多 8 位机直接把键盘矩阵接在 CPU 总线上,IBM PC 这种“键盘自带智能控制器”的做法更可靠,也为后来的 AT 键盘、PS/2 键盘和 USB 键盘留下了清晰的演进路径。
对开发者和玩家来说,研究 IBM PC 的价值不在于继续使用 8088,而在于理解一套极其成功的分层设计:CPU 不必关心键盘矩阵怎么扫描,BIOS 只需要按约定读取扫描码,操作系统再把扫描码解释成字符或功能键。Model F/XT 正是这套分层中最早、最典型的键盘外设之一。
1.2 Model F/XT:一个键盘如何成为标准符号
Model F 是 IBM 在 1981 年到 1985 年左右使用的电容式屈膝弹簧键盘系列,和后来的 Model M 薄膜屈膝弹簧键盘相比,手感更硬朗、触发结构更精细。IBM PC 5150 随机配备的键盘和 IBM PC/XT 5160 随机配备的键盘外观接近,都是 83 键,布局左侧有功能键区,右侧有数字键盘区,键帽高度和现代键盘差异明显。
现代收藏圈为了区分,常把随 XT 销售、使用 XT 键盘协议、5 针 DIN 接口的这款 83 键 Model F 称为 Model F/XT。严格来说,Model F/XT 的发布年份和 IBM PC 并不完全重合,IBM PC/XT 是在 1983 年推出的,但它是 IBM PC 生态中标志性外设,所以在 IBM PC 45 周年时被一并纪念很自然。
Model F/XT 值得研究,不只是因为怀旧。它在机械结构上采用了“屈膝弹簧 + 电容感应”,在电子协议上采用 XT 串行接口,在可维修性上又保留了相当多的手工处理空间。这三种特性叠加在一起,让它成为学习老键盘原理、练习嵌入式接口改造和进行现代固件适配的极好样本。
2. Model F/XT 为什么按起来那么不一样:按键结构与电容感应
2.1 从弹簧屈曲到段落感
Model F/XT 的核心手感来自屈膝弹簧,英文通常叫 buckling spring。每一颗按键下面都有一根螺旋弹簧,自然状态下,弹簧保持竖直。按压键帽时,弹簧逐渐受压;当按到某个临界点时,弹簧不再稳定,会向侧面发生一次明显的屈曲,也就是“屈膝”。这个屈曲瞬间会产生清晰的手感反馈,使用者会明显感到“咔哒”一下。
这个机制和普通机械轴完全不同。普通机械轴大多依靠金属弹片变形来获得手感,段落感来自弹片触点的接通或断开;而屈膝弹簧的段落感来自弹簧本身的失稳,是一种纯机械的力反馈。按键释放后,弹簧复位,重新变直,准备下一次按压。
理解这一点对维修很重要。Model F/XT 的手感如果变差,很多时候不是电气问题,而是弹簧位置偏移、键帽卡涩、或者键盘内部积累灰尘导致弹簧不能顺畅屈曲。很多玩家第一次拆开老键盘时会发现,部分按键按压时没有段落感,但用万用表测试矩阵又正常,原因往往是弹簧没有正确安装在桶体和键帽之间。
2.2 电容矩阵:Model F 与 Model M 的本质差异
Model F 系列使用电容感应来检测按键状态,而不是直接短路触点。按键下方有一块 PCB,PCB 上对应每个键位有电极焊盘。弹簧本身是金属,它在被按下、屈曲的过程中会改变与电极之间的相对位置和面积,从而改变电极间的电容值。键盘控制器持续检测这些微小电容变化,当变化量超过阈值时,就认为按键被按下。
这个设计的天然优势是没有机械触点磨损。普通导电橡胶、金属簧片和薄膜触点在使用多年后都会氧化或磨损,而电容感应结构中的电流不经过物理开关接触,因此寿命通常更长。代价是电路复杂度更高,控制器需要能精确测量电容,PCB 和弹簧的组合对距离、湿度、灰尘也更加敏感。
Model M 系列则改用了薄膜开关。它仍然保留屈膝弹簧,但弹簧的屈曲不再引起电容变化,而是推动一块塑料片让两层薄膜触点接触。Model M 成本更低、批量制造更容易,取代了 Model F。从手感上看,Model M 比 Model F 稍软,声音也钝一些;从电气原理上看,Model M 就是触点开关,所以后续维修和改造的复杂度反而更低。
可以用一张表对比两者的关键差异。
| 对比项 | Model F | Model M |
|---|---|---|
| 触发方式 | 电容值变化 | 薄膜触点接触 |
| 按键结构 | 屈膝弹簧 | 屈膝弹簧 |
| 触点磨损 | 无直接机械触点 | 薄膜触点会氧化磨损 |
| 电路复杂度 | 需要电容检测电路 | 简单矩阵扫描 |
| 手感风格 | 硬朗、利落 | 相对软、声音钝 |
| 可维修性 | 需要处理电容板与弹簧 | 薄膜更换更常见 |
| 现代转换 | 需要专用电容控制器或协议转换 | 常见 PS/2/USB 方案较多 |
2.3 键盘控制器如何识别一次按键
Model F/XT 的按键矩阵并不是每颗按键单独一根线连到 CPU,而是按行和列组成矩阵。控制器给矩阵的某一行加扫描信号,然后读取各列的电平或电容变化;如果某一键被按下,其所在行和列就会有一次“命中”。控制器逐行扫描,就能在几毫秒内完成整个键盘的扫描。
扫描到按键变化后,控制器会生成扫描码。XT 键盘的扫描码是一字节的 make code,按下时发送;释放时,先发送 0xF0,再发送该键的 make code。这个 0xF0 前缀就是 break code 的标志。
对使用者来说,这个机制意味着键盘本身会区分“按下”和“释放”。现代 HID 键盘同样会报告按键的按下和释放状态,这个思想从 IBM PC 时代一直延续到现在。如果你要把 Model F/XT 接入现代系统,最核心的工作就是把这些老扫描码翻译成主机能理解的 HID 用法码。
3. XT 协议、5 针 DIN 与 USB 转换
3.1 老接口的电气定义
Model F/XT 使用 5 针 DIN 插座,常见约定定义如下。注意不同资料对引脚编号可能略有差异,接线前一定要对照键盘原厂图纸或用万用表量出实际连接关系。
| 引脚 | 常见 XT 键盘定义 | 说明 |
|---|---|---|
| 1 | Clock | 键盘产生的时钟信号 |
| 2 | Data | 键盘发送数据 |
| 3 | Reset | 主机向键盘发复位信号 |
| 4 | Ground | 电源地 |
| 5 | +5V | 键盘供电 |
XT 键盘接口以键盘为主动设备,数据方向和时钟都由键盘控制。主机通过 Reset 引脚可以复位键盘,但主机并不同步发送数据给键盘。这和后来 AT/PS/2 的双向协议有明显区别。做转换器时,如果直接把 Model F/XT 接到 PS/2 或 USB 接口,不能只看针脚数量,还要在电气层面和处理逻辑上做适配。
3.2 扫描码:make code、break code 和 Set 1
XT 键盘的扫描码通常被看成 Scan Code Set 1 的前身。按下某键,键盘发送该键的 make code;释放该键,键盘先发送 0xF0,再发送同一个 make code。下面是几个常见键位的示例,实际扫描码要以键盘型号和布局为准。
| 按键 | make code | break code |
|---|---|---|
| A | 0x1E | 0xF0 0x1E |
| B | 0x30 | 0xF0 0x30 |
| Enter | 0x1C | 0xF0 0x1C |
| Space | 0x39 | 0xF0 0x39 |
这里要特别注意,XT 键盘发送的扫描码和现代 USB HID 键盘的键位扫描码不是一回事。现代键盘在主机端收到的是 HID Usage ID,例如 A 键在 HID 规范中对应0x04,而不是0x1E。因此,转换器不仅要读取 XT 扫描码,还要建立一张“XT 扫描码到 HID Usage ID”的映射表。
重复率也是一个容易出错的地方。老键盘在没有数据输入时会周期性自动重发按住键的 make code。转换器需要把连续的 make code 间隔情况转换成现代主机能接受的重复逻辑,否则可能出现输入文字时重复字符数量不对、按住方向键时移动速度异常等问题。具体重复延迟和重复速率,可以在转换器固件中配置。
3.3 用最小程序把 XT 键盘读出来
如果你想在单片机或单板计算机上读取 Model F/XT,最直接的方法是监听 Clock 引脚,在时钟沿采样 Data 引脚。下面这段代码只表示最核心的读取思路,不能直接编译运行。真正的实现需要根据单片机型号选择外部中断、定时器,并且用逻辑分析仪核实时序。
// 示意代码:读取 XT 键盘扫描码的核心流程 #define CLK_PIN 2 #define DATA_PIN 3 uint8_t read_xt_scancode(void) { uint8_t code = 0; int bit; // XT 键盘发送数据时,时钟线上会产生脉冲。 // 每个时钟周期采样一位数据,先收到的为最低位。 for (bit = 0; bit < 8; bit++) { while (digital_read(CLK_PIN) == 1) { // 等待时钟线拉到可采样的电平 } code |= digital_read(DATA_PIN) << bit; while (digital_read(CLK_PIN) == 0) { // 等待本次时钟脉冲结束 } } // 如果后续还有 0xF0 前缀,则需要继续读取下一字节, // 并在扫描码映射表中做 break code 判断。 return code; }这段逻辑的核心是“等时钟、读数据、移位、拼字节”,但真实工程中不能这么简单。XT 键盘的时钟信号是键盘自己产生的,频率并不高,但上升沿、下降沿和数据的有效时间都需要精确处理;如果采样时刻选错了,整个扫描码都会错位。最稳妥的做法是用外部中断捕获时钟沿,在数据稳定时读取,并用示波器或逻辑分析仪记录波形,确认每一位的时序。
注意:不要只验证转换器能读出 0x1E 这样的原始扫描码,还要验证 break code、重复发送、组合键和上电复位这几个分支。老键盘最容易让转换器出问题的恰恰是这些边界行为。
4. 一台 45 岁键盘的维修流程:从检查、清洗到飞线
4.1 通电前先做安全与完整性检查
老键盘的 PCB、弹簧和线缆都有老化风险。收到 Model F/XT 后不要立刻插电,先做几项基本检查。
首先检查线缆外皮是否开裂、DIN 插头是否松动。然后用万用表测量键盘电源引脚和地之间的电阻,如果阻值接近 0,说明内部存在短路,不能直接上电。接着打开外壳检查 PCB 是否有电池漏液、焊盘氧化、电容鼓包等痕迹。Model F/XT 内部结构并不复杂,但弹簧和电容板之间如果落满灰尘,会影响电容检测的灵敏度。
通电前还要准备一套防静电措施。老键盘里的 CMOS 芯片虽然远不如现代高集成芯片敏感,但焊接和拆装时仍可能产生静电损伤。桌面铺防静电垫、焊接工具接地、拿板子时先接触金属机箱,都是低成本保护措施。
4.2 常见故障的排查顺序
Model F/XT 的故障通常从两个方面看:单个按键失灵,还是整片区域失灵。单个按键失灵,问题往往出在弹簧位置、键帽、对应焊盘或二极管;整行或整列失灵,问题往往出在矩阵扫描线、连接器或控制器。
排查时按这个顺序推进:
- 先确认基础供电和时钟。用万用表量 +5V 是否正常,用逻辑分析仪或示波器观察 Clock 引脚是否有脉冲。如果没有时钟,键盘控制器可能没有工作。
- 再确认 Data 引脚是否有数据。有些老键盘上电后会先发送一个自检结果或复位码,如果 Data 完全静默,问题可能出在控制器或晶振。
- 然后检查矩阵。在断电状态下测量行线和列线的导通性,重点看线缆连接位置、导电胶或插接端子是否老化。
- 最后才动焊点。老键盘的焊盘容易在反复拆装中脱落,飞线时不要直接拉扯断线,要先刮开附近焊点,用短飞线连接。
这里要避免一个误区:看到某个按键失灵就直接换弹簧。弹簧本身很少坏,更多时候是键帽没有卡稳、桶体里有异物,或者 PCB 焊盘与弹簧之间的电容耦合被灰尘或锈蚀干扰。先清灰,再测量,最后才考虑更换弹簧。
4.3 清洗、弹簧与润滑注意事项
清洗 Model F/XT 的键帽时,建议使用温水加少量中性洗涤剂,不要用高温水或强溶剂。键帽长时间使用后表面的字符可能使用特殊印刷工艺,强溶剂会加速字符脱落。清洗后要充分晾干,不要让水渗入弹簧桶体。
弹簧和桶体部分不建议常规上油。Model F 的手感依靠金属弹簧屈曲时的力反馈,过多润滑会改变摩擦力和回弹速度,让手感变得黏滞。如果某个按键弹出不畅,最可能的原因是弹簧变形、桶体变形或键帽柱有毛刺,而不是需要润滑。只有在确认弹簧本身和桶体都没有问题时,才可以在键帽与桶壁的接触部位做极少量润滑,但绝对不要涂在弹簧中段。
清洁电容板时要特别小心。PCB 上的电极焊盘和走线间距很小,如果用金属刷或硬质清洁工具,很容易划伤焊盘。推荐使用软毛刷、无水酒精和洗板水,清洁后等待挥发完毕再装回。装回弹簧时,每根弹簧必须笔直地落在桶体和 PCB 电极之间的正确位置,否则扫描时电容变化量不足,按键会间歇性失灵。
提示:拆解 Model F/XT 前,先给每个键位编号并拍照。83 颗按键的弹簧和桶体虽然看起来一样,但不同位置的安装方向、键帽高度和固定方式可能不同,盲目拆装会在恢复阶段多花很多时间。
5. 从原版到复刻:现代工具链让 Model F/XT 继续进入日常工作
5.1 原版键盘与现代复刻/改造方案的差异
原版 Model F/XT 的存量越来越少,但它的结构设计已经成为很多现代复刻项目的参考。一些社区项目会重新制造电容式屈膝弹簧键盘,使用现代 PCB、现代控制器和新加工的弹簧桶体,外形上接近原版,但内部已经变成“现代硬件 + 老手感”的结合体。
对这种复刻键盘,最大的优势是电气上更容易接入现代系统。很多复刻品直接支持 USB 键鼠协议,甚至支持 QMK 固件,不需要再做 XT 协议转换;而原版 Model F/XT 必须经过转换器才能连接到没有 DIN 接口的电脑。购买复刻品时要确认内部是电容感应还是薄膜触点,两者维修思路完全不同。
键帽兼容性也需要提前确认。Model F/XT 的键帽柱、高度和布局并不一定与现代 Model M 键帽完全通用。很多复刻品会单独提供适配的键帽,或者明确标注兼容哪些标准键帽。不要只看图片相似就下手,最好先确认键帽接口和键位数量。
5.2 固件方案:Soarer's Converter、TMK/QMK 与控制器替换
在原版键盘上,最常用的转换方案之一是 Soarer's Converter。它运行在 Teensy 等小开发板上,能够读取 XT、AT、PS/2 键盘协议,并将扫描码转换为 USB HID 键盘数据。对玩家来说,它解决了最关键的问题:老键盘能直接在现代系统上使用,并且可以自定义键位映射。
如果原版键盘的控制器已经损坏,或者你想进一步改造手感,可以考虑替换控制器。对于电容式 Model F,替换控制器需要先连接每一行、每一列的电容检测电路,再用现代单片机测量电容变化并把结果映射成按键事件。这个思路比普通矩阵扫描复杂,但让老键盘获得了更大的可编程空间。
用表格对比常见的几种现代接入方式:
| 接入方式 | 适合场景 | 优点 | 需要关注的点 |
|---|---|---|---|
| Soarer's Converter | 原版 Model F/XT 转 USB | 成熟、稳定、可映射 | 需要自行制作或购买转换板,固件配置较老 |
| TMK/QMK 转换固件 | 喜欢自定义布局和层的玩家 | 支持宏、组合键、自定义层 | 需要理解键盘固件编译流程 |
| 替换控制器 | 原控制器损坏或要改造内部结构 | 完全可编程,可抛弃老协议 | 涉及电容检测电路,复杂度高 |
| 直接购买现代复刻 | 想获得接近原版手感但不想折腾 | USB 直连,现代固件 | 价格较高,手感和原版仍有差异 |
TMK 和 QMK 的适用场景并不完全一样。TMK 是较早的键盘固件项目,QMK 可以看成其衍生发展,社区更活跃,支持的键盘和控制器更多。如果你已经有现代机械键盘的 QMK 经验,从 QMK 版转换方案入手会更容易。
5.3 在现代系统上使用的键位适配
把 Model F/XT 接入现代系统后,第一件事不是急着打字,而是确认主机的键位映射是否正确。因为老键盘的布局是 83 键,没有 Windows 徽标键,也没有标准的 104 键键盘中的某些功能键区。需要在系统里或固件层做一些键位适配:
- 把右侧 Alt 或右侧 Ctrl 映射成 Meta / Command。
- 把缺失的 Windows 键映射到不常用键位,例如右侧 Alt 或右侧 Super 位置。
- 把 F1 到 F10 老式功能键区通过图层变成多媒体键。
- 如果是 Linux 系统,合理设置
evdev或 XKB 映射,避免组合键冲突。 - 如果是 macOS,在“修饰键”偏好设置中统一 Option 和 Command 的位置。
对日常打字来说,Model F/XT 的键帽高度和现代键盘差别较大,刚开始使用会明显感觉需要适应。建议先用一周作为普通输入工具,不急于做复杂键位编排;等手指习惯了屈膝弹簧的触发位置后,再设置改动量比较大的图层和宏。
6. 故障速查表与入手检查清单
6.1 常见问题速查表
下面的表格把 Model F/XT 最常见的故障现象、可能原因、检查方式和处理建议列在一起。实际维修时,先按“通电检查、接口检查、矩阵检查、元件检查”的顺序执行,不要一上来就拆弹簧。
| 问题现象 | 常见原因 | 检查方式 | 处理建议 |
|---|---|---|---|
| 整机无任何反应 | 供电线断开、DIN 插头接触不良 | 万用表量 +5V 和 GND | 重新焊接或更换线缆 |
| 时钟线没有脉冲 | 键盘控制器未工作 | 示波器/逻辑分析仪看 CLK | 检查晶振、复位和供电 |
| 单个按键不触发 | 弹簧位置偏移、桶体异物、焊盘脏 | 测量对应焊盘与矩阵线 | 清灰、重装弹簧、必要时飞线 |
| 某个按键连击 | 电容检测阈值漂移或焊盘氧化 | 用逻辑分析仪观察数据流 | 清洁焊盘,校准阈值 |
| 整行或整列失灵 | 矩阵扫描线断裂 | 断电后测行线和列线通断 | 找出断线处飞线修复 |
| 按键按下无段落感 | 弹簧变形或键帽卡涩 | 拆下键帽,观察弹簧屈曲 | 更换弹簧或重装桶体 |
| 连接转换器后字符乱 | 扫描码映射表错误 | 对比 XT 扫描码与 HID 码表 | 修正映射表中的错误项 |
| 按住按键后重复过快 | 重复率配置未适配 | 观察连续 make code 间隔 | 在固件中设置去重和间隔 |
这个表并不能覆盖所有情况,但已经覆盖了维修中最常见的 80% 问题。遇到表中没有的故障时,仍然要回到“观察现象、测量电平、分析数据帧”的基本方法,不要靠猜测换零件。
6.2 从收到老键盘到稳定运行的基础检查清单
如果你刚从二手市场收到一台 Model F/XT,或者准备把收藏多年的键盘重新投入使用,建议按下面的清单走一遍。每一项都可以在 10 分钟内完成。
- 拍照记录整机外观、键帽布局、背面标签和线缆状态。
- 用万用表测量 +5V 与 GND 之间是否有短路。
- 打开外壳后检查 PCB 有无腐蚀、氧化、断线和维修痕迹。
- 清理弹簧桶和 PCB 上的灰尘,使用软毛刷和压缩空气。
- 检查每颗弹簧是否垂直,是否有明显锈蚀或变形。
- 检查插头针脚是否氧化,用无水酒精清洁后晾干。
- 在未连接主机的情况下测量 CLK 和 DATA 到 GND 的静态阻值。
- 连接试验电源或转换器,确认 CLK 有脉冲、DATA 能输出数据。
- 使用逻辑分析仪记录一小段数据,确认扫描码格式符合 XT 协议。
- 安装转换器驱动和映射工具,逐个测试 83 颗按键和组合键。
这套检查清单适合在第一次通电前执行,也适合在每次大规模拆装后复查。养成“先测量、再通电、后拆装”的习惯,能大幅减少老键盘维修中的二次损坏。
7. 45 周年纪念之外的工程启发
7.1 可维修性是一种长期价值
Model F/XT 能活到今天,除了用料扎实,更关键的是它结构上保留了维修和改造的可能。钢板、弹簧、桶体、PCB 和控制器之间的连接方式相对清晰,玩家可以拆开、清灰、飞线、甚至更换控制器。这种可维修性在现代高度集成的键盘上越来越少见。
从工程实践角度看,这给我们一个提醒:设计产品时,应把“是否能在 10 年后仍然被维修”作为一个可选设计目标。至少可以做到结构模块化、接口标准化、关键元件可替换。Model F/XT 的很多经验并不需要复制到所有现代设备,但它证明了“耐用”并不等同于“简单”,而是结构、材料、协议和文档共同作用的结果。
7.2 对键盘爱好者和开发者的下一步建议
如果你对 Model F/XT 产生了兴趣,下一步不是直接买一台老键盘,而是先把手头的开发板和逻辑分析仪用起来。试着读取一个 PS/2 键盘的扫描码,再看 XT 协议的波形差异;然后设计一个最简单的转换器,把老键盘接到现代电脑上。这个过程比单纯收藏更能帮助你理解键盘的工作原理。
如果已经是键盘玩家,不妨从键位映射开始,把一张老布局改造成适合自己工作的布局。你不需要立即替换控制器,可以先做 Soarer's Converter 的配置映射,熟悉扫描码到 HID 键码的转换关系。之后再逐步引入 QMK 层、宏和组合键,让老键盘在现代工作流中找到位置。
对开发者来说,最有价值的学习路线是:先读懂 XT 协议的数据帧结构,再写一个最小协议解析器,然后用逻辑分析仪验证自己的解析结果,最后把协议解析器嵌入到成熟的固件工程中。这条路线可以同时训练嵌入式编程、调试仪器使用和硬件排错能力。
7.3 参考资料方向
想深入 Model F/XT 和 IBM PC 键盘体系,可以从几个方向找资料。首先是 IBM 官方当年的技术参考手册,里面包含键盘接口时序、扫描码表和电气定义,是判断很多细节问题的最终依据;然后是现代开源项目,如 Soarer's Converter、TMK/QMK 的键盘方案和各类电容键盘控制器项目,可以帮助理解如何把老硬件接入现代协议;最后是硬件维修社区中大量关于屈膝弹簧键盘拆解、清洗、飞线和复刻的帖子,这些经验往往比理论文档更接近真实故障。
需要特别提醒的是,老设备和现代固件的资料会随时间变化,版本和引脚定义在不同项目中可能存在差异。落地前不要只依赖某一篇文章或某一份图纸,而应该把原厂资料、开源代码和实物测量三者交叉验证。Model F/XT 的价值不只是情怀,它还是一扇通往键盘协议、嵌入式接口和硬件维修世界的门。用严谨的方式打开它,你得到的东西会比“又一把老键盘”更多。