news 2026/9/17 0:34:26

Artemis Paragon Hotswap 矩阵坐标图全解:从 PCB 物理矩阵到 QMK 布局映射

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Artemis Paragon Hotswap 矩阵坐标图全解:从 PCB 物理矩阵到 QMK 布局映射

Artemis Paragon Hotswap 矩阵坐标图全解:从 PCB 物理矩阵到 QMK 布局映射

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

本指南以 QMK 仓库中 Artemis Paragon Hotswap 键盘的矩阵图文档为核心,逐一解读图中每个矩阵坐标(如001E3D)的含义,并结合keyboard.json中的引脚配置、四种 ANSI 布局定义、旋转编码器设置与默认键位实现,帮你建立"PCB 走线 → 矩阵坐标 → 布局宏 → 键位功能"的完整映射认知。读完本文,你既能准确读懂这类矩阵图,也能据此排查键位错乱、自定义布局与接入旋转编码器。

矩阵图:PCB 物理布局坐标总览

原文档以纯 ASCII 图的形式呈现了 Paragon Hotswap 板子的完整矩阵布局,是理解该键盘物理走线的第一手资料。图中每个格子内的两位数即矩阵坐标,格式为"行 + 列"(十六进制列号),原图完整继承如下:

┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │Rot│ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1E │ 2u Backspace ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └───────┘ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2F │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3F │ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4F │ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤ │50 │52 │53 │56 │5A │5B │5C │5D │5F │ └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ ┌─────┬─────┬───────────────────────────┬─────┬─────┐ │50 │52 │56 │5A │5B │ WKL └─────┴─────┴───────────────────────────┴─────┴─────┘

从图上看,Paragon Hotswap 采用6 行(row 0~5)× 16 列(col 0~15)的矩阵规模,物理上位于右上角的旋转编码器(Rot)不占用矩阵行列,而是独立接入。

解读矩阵图:行列坐标约定

矩阵图中每个格子内的坐标是两位十六进制数,遵循"第一位是行号,第二位是列号"的约定:

  • 行号取十进制数字05,对应 6 个行索引;
  • 列号取十六进制0F,对应 16 个列索引,因此0A0B0C0D实际是列 10~13,1F是第 1 行第 15 列。

对照图中各行的实际键位可以看到典型的 75% / 紧凑全尺寸布局形态:

图中坐标对应功能区块
row 00002~0D(缺01功能键 F1~F12 及右上角编码器位Rot
row 110~1F(共 16 键)数字区 + 字母首行,1E可作 2u 退格
row 220~2D2F(缺2ETab 与字母 QWER 行
row 330~3B3D3F(缺3C3ECaps 与字母 ASDF 行,3D为 2.25u 回车
row 440~4C4D4F(缺4EShift 与字母 ZXCV 行
row 5505253565A~5F底行(含大空格56

图中特意用合并格子与注释标注了两个特殊键:右侧1E可装配2u Backspace(对应注释),3D为加宽的回车键;底行下方还单独画了一行WKL变体,说明同一块 PCB 支持两种不同的底行配列(详见后文)。

从矩阵图到引脚:matrix_pins 硬件对应

矩阵坐标只是逻辑编号,真正把坐标落到 MCU 引脚上的配置位于 hotswap/keyboard.json:

"matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"], "rows": ["D2", "D1", "D0", "B2", "B1", "C6"] }

数组下标即矩阵索引:rows[0] = D2对应 row 0,cols[0] = F7对应 col 0,以此类推。例如图中00(Esc 键)就是 row 0 / col 0,由D2F7两个引脚构成的交叉点检测。结合 info.json 中的"diode_direction": "COL2ROW"可知,该 PCB 二极管方向为列→行,QMK 会在每个扫描周期内拉低行、读列。

以下是完整的行列引脚对照(下标即坐标中的行列号):

行列0123456789101112131415
colsF7F6F5F4F1F0C7E6B0B3B6B5B4D7D4D6
rowsD2D1D0B2B1C6----------

主控为atmega32u4(见 info.json),因此全部引脚均为 AVR 平台命名。排查"某个键无反应"或"键位错乱"时,即可用这张表反向定位到具体 MCU 引脚进行硬件测量。

布局族:四种 ANSI 布局与 LAYOUT_all

矩阵图描述的是物理存在性,而 hotswap/keyboard.json 的layouts字段则定义了逻辑上可用的键位排列。Hotswap 版一共声明了四种 ANSI 布局:

布局名特点
LAYOUT_ansi_rwklANSI + 右上角编码器(rotary WKL)
LAYOUT_ansi_rwkl_split_bs同上,但退格键拆分为两个 1u 键
LAYOUT_ansi_wklANSI + WKL 底行 + 一体式退格
LAYOUT_ansi_wkl_split_bsANSI + WKL 底行 + 拆分退格

布局名中的rwkl指 rotary + WKL,即带旋转编码器且支持 WKL 底行的含义。每种布局的layout数组中,"matrix": [r, c]即矩阵坐标,x/y为可视化坐标,w为键宽(1 单位 = 1u):

{ "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2 } // LAYOUT_ansi_rwkl 中的 2u Backspace { "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25 } // 2.25u 回车

LAYOUT_ansi_rwkl[1,14](即图中1E)被声明为w: 2的 2u 键,与矩阵图右侧 "2u Backspace" 注释一一对应;而split_bs变体则把1D1E分别声明为两个 1u 退格键。同级目录的 info.json 还定义了一个容量最大的LAYOUT_all,并设置别名LAYOUT → LAYOUT_all(见 info.json),它额外包含了矩阵图中未标注的[3,12][5,4][5,8]等坐标,用于支撑更复杂的底行/回车拆分配置。

旋转编码器:Rot 位与 encoder 配置

矩阵图右上角的Rot是唯一的旋转编码器位。硬件接线定义在 hotswap/keyboard.json:

"encoder": { "rotary": [ { "pin_a": "D3", "pin_b": "D5", "resolution": 2 } ] }

即编码器 A、B 相分别接D3D5resolution: 2表示每 2 个脉冲计为一步。软件侧,默认键位通过 rules.mk 开启ENCODER_MAP_ENABLE = yes,并在 keymap.c 中定义映射:

#if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } }; #endif

ENCODER_CCW_CW(KC_VOLU, KC_VOLD)分别绑定逆时针(CCW)与顺时针(CW)动作,默认配置为旋钮控制系统音量增减。若想改成页面滚动或自定义功能,直接替换这两个键码即可。

底行变体:标准布局与 WKL 布局

矩阵图最下方单独绘制了一行 WKL 底行,这是理解该键盘底行灵活性最直观的片段。对照两种底行的坐标差异:

键位标准底行WKL 底行
左 Ctrl5050
左 Win/GUI5252
左 Alt53—(合并进 WKL 对称边)
空格56(6.25u)56(7u)
右 Alt/菜单等5A5B5A5B

WKL(Win Key Less,无 Windows 键)底行只有 5 个键位:5052565A5B,对应 LAYOUT_ansi_wkl 中[5,0](w:1.5)、[5,2](w:1.5)、[5,6](w:7)、[5,10](w:1.5)、[5,11](w:1.5);而标准底行则在其基础上多出535C5D等键位。硬件同一块 PCB 通过不同的轴体安装即可切换两种风格,软件侧只需选用对应布局名。

与 Soldered 版矩阵图的对照

同一键盘的焊接版(Soldered)也维护了一份矩阵图 soldered/matrix_diagram.md,与本文主题直接相关,对照阅读可以更清楚地看出热插拔板省略掉的矩阵坐标:

  • Soldered 版底行绘制了5052535456585A5B5C5D5F共 11 个键位,比 Hotswap 版图多出5458两个坐标,分别对应LAYOUT_all中的[5,4](2.25u)与[5,8](2.75u),可用于拆分布局;
  • Soldered 版在回车行标注了3C/3D的 ISO Enter 示意,而 Hotswap 版图未标注3C(即[3,12])。

两版图与 info.json 的LAYOUT_all相互印证,可以推断:Paragon PCB 物理上保留了比 Hotswap 矩阵图展示的更多可选矩阵点,LAYOUT_all是这些可能性的"全集"。

实战:如何用矩阵图排查问题与自定义键位

1. Bootmagic 复位与坐标00

readme.md 中说明的第一种进 bootloader 方式是 Bootmagic:按住矩阵 (0,0) 键(即图中00,物理左上角 Esc)再插入 USB。这正是矩阵图最直接的应用——用坐标定位复位键。

2. 编译与烧录

仓库 readme.md 给出了标准构建命令:

make artemis/paragon/hotswap:default # 编译默认键位 make artemis/paragon/hotswap:default:flash # 编译并烧录

3. 自定义键位时对照坐标

默认键位 keymap.c 使用LAYOUT_all宏,按"行分组、坐标从左到右"的顺序填键码。例如首行KC_ESC, KC_F1, ..., KC_F12对应 row 0 的00020DKC_GRV, KC_1, ...对应 row 1 的10起。当你想修改某个按键时,先在矩阵图中找到它的坐标,再去LAYOUT_all的对应槽位(或改用的LAYOUT_ansi_*布局)替换键码即可;若矩阵图与LAYOUT_all坐标不一致(如3C5458),说明该位仅在拆分配列下可用,需同步选用split_bs等对应布局。

总而言之,这份矩阵图是打通 Paragon Hotswap "电路走线—矩阵坐标—QMK 布局"三层的钥匙:读懂它,你就能熟练地在四种 ANSI 布局间切换、自由调整旋转编码器功能,并快速定位键位异常。

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 0:33:50

Java游戏服务网站高并发后端架构:Spring Boot与Redis实践

简介:这是一份基于Spring Boot的游戏服务网站Java源码包,专为计算机、电子信息等专业的学生打造,适用于毕业设计、课程设计或期末大作业。项目采用B/S架构与MVC分层,整合SpringBoot、Mybatis、Ajax、Vue等技术栈,前端与…

作者头像 李华
网站建设 2026/9/17 0:29:50

卡尔曼滤波入门:从概率统计与高斯分布理解状态估计

做RM电控这几年,最绕不开的算法就是卡尔曼滤波。不管是云台自瞄的陀螺仪数据融合,还是步兵车上的测距模块、弹道解算,甚至底盘里程计定位,到处都能看到它的影子。但很多队员第一次接触卡尔曼滤波,抄了一版代码、调了几…

作者头像 李华
网站建设 2026/9/17 0:25:58

SpringBoot+MyBatis实现企业员工信息管理系统开发实践

1. 项目概述与背景作为一名经历过多次企业信息化改造的Java开发者,我深知传统纸质化员工管理的痛点。去年参与某中型制造企业HR系统升级时,亲眼目睹人事部门用Excel表格管理300多名员工信息的混乱场景——考勤数据分散在5个不同文件,请假审批…

作者头像 李华
网站建设 2026/9/17 0:22:14

电力系统自适应控制:转动惯量与阻尼系数动态调节技术

1. 项目背景与核心价值在电力系统稳定性研究中,同步发电机的动态特性直接影响整个电网的暂态响应。传统固定参数的转动惯量(H)和阻尼系数(D)控制策略难以应对现代电网中日益复杂的运行工况。这个问题在新能源高比例接入的电力系统中尤为突出——风电、光伏等间歇性能…

作者头像 李华
网站建设 2026/9/17 0:21:27

LabVIEW实时水声采集系统:深海高压舱中的声发射检测实战

1. 项目概述:为什么深海高压舱里需要“顺风耳”LabVIEW 实时水声采集,这个标题乍看是软件工具和信号处理的组合词,但真正让它立住脚、值得被冠以“深海高压舱里的顺风耳”这个绰号的,是它背后一整套严苛到近乎偏执的工程逻辑。我第…

作者头像 李华
网站建设 2026/9/17 0:20:12

PC+USB-CAN上位机实战:CAN总线监控与调试系统全解析

做过嵌入式或工控的朋友应该都有体会:设备调通只是第一步,真正让系统可维护、可复现、可交付的,往往是那台连着总线盯数据的PC。P4这个项目,做的就是“PC USB-CAN适配器 上位机”这套经典的监控与控制组合:PC通过USB…

作者头像 李华