尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

TKM-2021 镜像左手数字键盘固件指南:QMK 数据驱动配置、编译刷写与 PCB 列交换缺陷修复

TKM-2021 镜像左手数字键盘固件指南:QMK 数据驱动配置、编译刷写与 PCB 列交换缺陷修复 TKM-2021 镜像左手数字键盘固件指南QMK 数据驱动配置、编译刷写与 PCB 列交换缺陷修复【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware导读TKM-2021Ten Key Mirrored - 2021是一块把数字小键盘搬到键盘左侧、并做镜像排布的开源机械键盘 PCB旨在为惯用鼠标的右手腾出更大的桌面空间。本文以 QMK 仓库中该键盘的完整支持文件为主体逐层讲解其数据驱动配置keyboard.json、三种官方布局、编译与刷写流程并重点剖析该键盘第一批 PCBR1.03上6/7 列被交换的硬件缺陷如何在固件侧被轻量修复。读完本文你将掌握如何为这块子板编译刷写固件、三种布局全键位 / ANSI 分裂退格 / ISO 分裂退格的差异、官方两层键位的构成以及PCB 布线错误用矩阵重映射兜底这一类移植问题的排查思路。TKM-2021 是什么左手镜像数字小键盘根据 keyboards/cest73/tkm/readme.md 的官方说明TKM-2021 是Another take on left side numpad——即对左侧数字小键盘思路的又一次尝试并且这次还做了镜像mirrored处理从而为鼠标游走提供更开阔的右半桌面空间。关键信息摘要键盘维护者cest73aka fire-h0und硬件支持TKM-2021支持多种布局与开关选项包括 ALPS 轴、ISO 布局、BAE——即Big Ass Enter大回车键主控方案使用 Teensy 2.0 作为子板daughter board因此固件刷写走 Teensy 的引导流程值得注意的历史背景首批R1.03PCB 在设计过程中把6 与 7 两列意外交换了作者在软件侧轻松修正这也是本文后面单独成节讲解的重点。数据驱动配置解读keyboard.json该键盘采用 QMK 的>qmk compile -kb cest73/tkm -km default其中-kb cest73/tkm指定键盘路径-km default指定键位映射。若要直接编译并烧录可改用qmk flash -kb cest73/tkm -km default因为这块板以Teensy 2.0 为子板进入刷写模式的方式非常直接按下 Teensy 上的复位按钮即可让 MCU 进入 HalfKay 引导状态bootloader: halfkay随后即可烧写固件。这也是 readme 原文强调press the button present on the Teensy的原因——无需短接任何额外引脚。详细刷写流程还可参考 docs/newbs_flashing.md。官方键位解析BASE 层与 FN 层仓库自带三套键位均在各自 keymaps 目录下keymaps/default/keymap.c使用LAYOUT_allkeymaps/default_ansi_split_bs/keymap.c使用LAYOUT_ansi_split_bskeymaps/default_iso_split_bs/keymap.c使用LAYOUT_iso_split_bs三套键位逻辑一致均定义两个层enum layer_names { _BASE, _FN };BASE 层默认层BASE 层的布局思路是一块完整 108 键键盘的镜像拆分左侧 4 列是镜像数字小键盘从上到下依次为- * / Num、 9 8 7、 6 5 4、Tab(左区) 3 2 1、Enter . , 0即数字从右上往左下镜像排列中间是标准字母区Tab/QWERTY 行、Caps 行、Shift 行、Ctrl/GUI/Alt 6.25u 空格键位与普通 104 键一致顶部是功能键行F1–F12与PrtSc/Scroll Lock/Pause、Esc、Home/PgUp/PgDn/End/Delete/Insert等编辑键右下角布置方向键← ↓ →与↑。BASE 层大量使用KC_PMNS小键盘减、KC_PPLS、KC_PEQL、KC_PAST、KC_PSLS、KC_PENT、KC_PDOT、KC_PCMM、KC_P0–KC_P9等独立小键盘键码确保 Num Lock 状态下数字区行为与标准小键盘一致。FN 层功能层FN 层由 BASE 层左上角第一个键MO(1)临时触发按住生效其设计要点键位功能说明EscQK_BOOT一键进入引导/刷写模式无需按 Teensy 按钮F1–F12 位置KC_F13–KC_F24映射 F13–F24 扩展功能键字母区HJKL附近KC_LEFT/UP/DOWN/RGHT提供 vim 风格方向键其余键均为KC_TRNS透传保持 BASE 层行为。FN 层的QK_BOOT是最实用的设计之一日常使用中想刷固件时只需按住Fn再按Esc即可软重置进引导区与 readme 中按 Teensy 按钮互为补充。核心缺陷剖析6/7 列交换与固件级修复这是 readme 最有价值的一段经验首批R1.03PCB 尽管作者反复核对原理图仍把6 与 7 两列在布线阶段交换了。幸运的是这类列交换缺陷在 QMK 里几乎零成本修复——不需要改板子只需在固件的矩阵映射中修正坐标。仓库为此单独提供了一份 matrix_diagram.md用 ASCII 图完整记录了 R1.03 修正后的矩阵坐标分布。对照该图与 keyboard.json 中的matrix坐标可以看到数字行与数字区的6键被映射到矩阵第 5 列如LAYOUT_all中6的matrix: [3, 5]、7的matrix: [2, 5]8/9落在第 6 列后续键位依次前移从而把物理上被错位的两列重新对齐到键帽的视觉位置。换句话说硬件事实R1.03 PCB 上标称 6、7 的两列信号在走线时被交换固件修复布局定义不再按想当然的列序分配矩阵坐标而是按matrix_diagram.md标注的真实接线逐键重排使固件读到按键后输出的键码与键帽印刷一致用户体感官方键位中只需照常写KC_6、KC_7最终行为与正常键盘无异——修复被完全封装在布局层。这一案例给自设计键盘hand-wired 或打样的移植者提供了一个通用方法论当按键错乱时优先怀疑矩阵行列映射而非键位代码QMK 的LAYOUT_*宏本质上是物理位置 ↔ 矩阵坐标的翻译层布线错误完全可以也应该在布局宏里消化。可结合 docs/hardware_keyboard_guidelines.md 与 docs/custom_matrix.md 进一步理解矩阵扫描原理。如何自定义这套固件在 QMK 中自定义 TKM-2021 的常规流程如下复制键位目录以keymaps/default为模板复制出一份自己的键位目录例如keymaps/mine编辑 keymap.c修改keymaps[mine]中的键码。注意三个官方键位分别使用LAYOUT_all/LAYOUT_ansi_split_bs/LAYOUT_iso_split_bs宏自定义时需与自己的键帽配列匹配宏的键位顺序可从 keyboard.json 的layouts中按matrix坐标核对编译验证执行qmk compile -kb cest73/tkm -km mine确认无错误后再qmk flash烧录刷写方式按住FnEsc软重置或直接按 Teensy 2.0 板载按钮进入 HalfKay 引导然后写入新固件。层layer、键位键码与临时层键如MO(1)、LT()、TG()的完整语法可查阅 docs/keymap.md 与 docs/feature_layers.md。小结TKM-2021 是左手镜像数字键盘这一小众却实用的设计方向的完整落地硬件上以 ATmega32U4Teensy 2.0为子板通过数据驱动的 keyboard.json 一次支持全键位、ANSI 分裂退格、ISO 分裂退格三种配列固件侧则以两层键位BASE FN提供完整 108 键功能与一键刷写入口而首批 PCB 的 6/7 列交换缺陷被巧妙地收敛在 matrix_diagram.md 所记录的矩阵重映射中成为布线有误、固件兜底的教科书式案例。无论是这块子板的使用者还是正在移植自设计键盘的开发者都能从这套小巧而完整的支持文件中获得直接可用的实践经验。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表