客制化键盘有个好处, 是可以自定义键盘按键映射,切换层,设置宏等非常强大的功能。
缘起
我已经习惯了 HHKB 键盘,家里和公司都使用的是 HHKB 键盘,一个 HHKB Pro2 一个 HHKB Pro Classic, 手感很好,但是没有自定义功能。
HHKB 没有方向键,使用 MacOS 的时候系统的快捷键, 使用 Command + P, Command + N, Command + B,Command + F 来实现上下左右操作光标。
现在的主要工作系统重新切换回 Windows 后,就变得不是很方便,试了几个软件的键盘映射都不好用,偶然间发现了有 U2U 的小东西,有一个 USB 插座和一个 USB 插头, 把键盘插到上面,再插到电脑上, 就能使用改键软件 vial 来修改配置了。

我买的是 EasyLink U2U, 这个牌子的,用起来整体不错,不过有个 Bug, HHKB Pro2 上面自带了 USB Hub, 导致键盘每次都识别不出来。因为是闭源的,也找不到作者,得不到修复。
探索
然后就发现了 TMK 和 QMK 固件里,都有 USB to USB 这个键盘,应该现在市面上卖的这种转换器都是基于这个固件来的。他是基于 Arduino Leonardo 和 USB Host Shield 这两个开源硬件做的。
链接地址:
TMK: https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb
QMK: https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/usb_usb
并且在这个固件的说明里,明确说明了,支持 HHKB Pro2 这款键盘,并且 USB Hub 的问题是作为 Bug 修复了的。
这里也有了把这两个独立的 Arduino 电路板整合到一起的设计, 其实主要是有2个芯片, 一个是 MCU: ATMEGA32U4, 另一个是 USB Host 芯片: MAX3421E。
制作
看了下这两个芯片的价格,这个方案已经完全没有性价比了, 不算其他电路,光这两个芯片加起来就将近 RMB 100块了,应该主要还是进口芯片现在用的人少了,又比较冷门了。
有开源固件的支持,贵也得整啊, 把电路板导入 JLC EDA, 简单修改了下, 打板开整,提示不是 JLC EDA 设计的电路板,不免费了啊!!!
原理图

PCB


实物照片


固件烧录
我选择使用 QMK, 他的配套软件比较好用。
在这里键盘选择 converter/usb_usb/leonardo
配置后,编译下载固件。

将模块插入 USB 接口,全新的 ATMEGA32U4 会自动进入 DFU 模式,如果是已经刷入过固件的,按下电路板上的按钮, 就会进入 DFU 模式,使用 qmk toolbox 刷入固件。
好了,大功告成,虽然比买的那款成本要高,不过有了开源固件的加持,可以有更多的玩法和可能。
测试完美支持了 HHKB Pro2。
额外探索
VIAL
本来还探索使用 VIAL 实现动态编辑配置,尝试编译,提示 EEPROM 空间过小,然后作罢, 因为修改键盘配置非常不频繁,刷写固件也比较方便了。
本地编译环境
如果是 Windows 系统,可以下载 QMK 的本地编译环境, 叫做 QMK MSYS。
安装后,就具备了 qmk 完整的编译环境,无需其他设置,就可以使用,并且提供了一个命令行工具 qmk。
