QMK 固件中的 Plexus75:基于 XD75 改良的正交 60% 键盘配置与编译实战指南
2026/9/19 4:02:48 网站建设 项目流程

QMK 固件中的 Plexus75:基于 XD75 改良的正交 60% 键盘配置与编译实战指南

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

导读

Plexus75 是 QMK 官方仓库中收录的一款 60% 正交线性(ortholinear)键盘:它在 XD75 的全 1u 底排基础上改成了更接近常规 60% 键盘的传统底排布局,兼顾正交配列的整齐感与标准键帽的易用性。本文将围绕 Plexus75 官方 readme 展开,结合仓库内的 keyboard.json、三套官方键位映射(default / default_3u / default_7u)与底层源码,完整讲解该键盘的硬件规格、三种底排布局差异、数据驱动配置结构、三层功能键位设计以及从编译到刷写的完整流程。读完本文,你将能独立编译 Plexus75 固件、理解其矩阵与 RGB 配置,并学会如何在 QMK 数据驱动架构下按需定制键位。

Plexus75 是什么:规格与设计定位

Plexus75 是一块 60% 正交线性 PCB,由 Nasp(GitHub 用户名 npspears)设计并维护。与同样以正交著称的 XD75 相比,它的核心区别在于底排布局:XD75 的底排全部是 1u 键位,而 Plexus75 将底排重新设计为接近传统 60% 键盘的形态(包含增宽的空格、Alt/Win 等修饰键组合),让习惯了标准 60% 键盘的用户也能无痛切换到正交配列。

从 readme 中可确认的关键信息如下:

项目内容
键盘名称Plexus75
键盘维护者(Maintainer)Nasp(npspears)
硬件支持Plexus75 PCB
布局类别60% 正交线性(ortholinear),基于 XD75 改良

在 keyboard.json 中,制造商字段同样登记为"manufacturer": "Nasp",维护者为"maintainer": "npspears",与 readme 一致。USB 描述符信息为 VID0x7070、PID0x5338、设备版本0.0.1,这些数值在刷写固件后的系统识别中会直接体现。

数据驱动配置:从 keyboard.json 读懂整块板子

Plexus75 采用了 QMK 主流的数据驱动(data-driven)配置方式,硬件定义全部集中在 keyboard.json 中,无需额外的config.hrules.mk(该目录下确实没有这两个传统文件,仅有 keyboard.json、readme.md 与 keymaps 子目录)。

主控、引导加载器与矩阵

"processor": "atmega32u4", "bootloader": "atmel-dfu", "matrix_pins": { "cols": ["B2", "B0", "D1", "F7", "F6", "F5", "F4", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["D2", "B3", "B1", "F1", "F0"] }, "diode_direction": "COL2ROW"
  • 主控芯片为 Atmel ATmega32U4,这是 QMK 生态中最常见、资料最丰富的 AVR 主控之一;
  • 引导加载器atmel-dfu(即 Atmel 官方的 FLIP/DFU 方案),对应刷写工具与按键进入 DFU 的方式需要按此匹配;
  • 矩阵规模为 5 行 × 15 列,正好对应 75 键的命名(Plexus75 共 75 个按键位);
  • 二极管方向为COL2ROW(列到行),这是扫描矩阵时确定行列上拉/下拉方向的关键参数,若与 PCB 实际走线不符,整块键盘的扫描将完全错乱。

功能特性开关

"features": { "bootmagic": true, "command": true, "extrakey": true, "mousekey": false, "nkro": true, "rgblight": true, "unicode": true }, "qmk": { "locking": { "enabled": true, "resync": true } }
  • bootmagic:支持 Bootmagic,可在开机时通过按住指定键进入刷写模式或调整配置;
  • command:启用 QMK 内置的 Command 调试功能;
  • extrakey:启用媒体/系统按键支持(音量、播放控制等),这也是默认键位中KC_MUTEKC_VOLDKC_VOLU可用的前提;
  • nkro:开启 N 键无冲突(NKRO),适合对多键同时输入敏感的场景;
  • rgblight:启用 RGB 背光功能;
  • unicode:启用 Unicode 输入支持;
  • qmk.locking:启用并启用重同步(resync)的按键锁定功能(Caps Lock 等 Locking 键在状态丢失时自动重新同步)。

板载 RGB:WS2812 灯带与 14 颗 LED

"rgblight": { "hue_steps": 12, "saturation_steps": 25, "brightness_steps": 12, "led_count": 14, "animations": { "breathing": true, "rainbow_mood": true, "rainbow_swirl": true, "snake": true, "knight": true, "christmas": true, "static_gradient": true, "rgb_test": true, "alternating": true, "twinkle": true } }, "ws2812": { "pin": "D3" }
  • 灯带通过 WS2812 协议挂在D3引脚上,共14 颗 LED
  • 默认启用了 10 种官方动画(呼吸、彩虹情绪、彩虹旋转、贪吃蛇、骑士、圣诞、静态渐变、RGB 测试、交替、闪烁),色彩调节的步进精度分别为色相 12 档、饱和度 25 档、亮度 12 档;
  • 这些配置直接决定了默认键位中UG_TOGGUG_HUEUUG_HUEDUG_SATUUG_SATD等 RGB 控制键的行为。

三种底排布局:2x2u、2x3u 与 7u 空格

Plexus75 最大的特色在于官方提供了三种底排物理布局,对应 keyboard.json 中的三个 layout 宏,也对应仓库中的三套官方键位:

布局宏空格键代表键位文件
LAYOUT_2x2u两颗 2u 空格 + 中央 1ukeymaps/default/keymap.c
LAYOUT_2x3u一颗 3u 空格 + 左右 2ukeymaps/default_3u/keymap.c
LAYOUT_7u一颗 7u 大空格keymaps/default_7u/keymap.c

从 keyboard.json 的 layout 定义可以精确读出各布局的底排结构:

  • LAYOUT_2x2u 底排1.5u 1u 1.5u 1u 2u 1u 2u 1u 1.5u 1u 1.5u,即两颗 2u 空格夹在中央,两侧是对称的 1.5u 键;
  • LAYOUT_2x3u 底排1.5u 1u 1.5u 3u 1u 3u 1.5u 1u 1.5u,中央为两颗 3u 空格,中间夹一个 1u 键;
  • LAYOUT_7u 底排1.5u 1u 1.5u 7u 1.5u 1u 1.5u,中央是一颗 7u 大空格,接近标准 60% 键盘的底排观感。

值得注意的是,三种布局的前四行完全一致(15 键 × 4 行 = 60 键),差异仅体现在底排的键位宽度与数量上;并且这三种布局共用同一套 5×15 矩阵,物理键位在矩阵中的坐标一一对应,只是底排部分键位被合并为宽键(体现在"w"字段)。这正是 readme 所述“更接近常规 60% 底排”的物理实现。

官方键位设计详解

默认键位(default,LAYOUT_2x2u)

default/keymap.c 定义了三个层:_BASE_FN_FN1,并通过TT()(Tap-Toggle)键在层之间切换。

第一层(Base)设计亮点

  • 字母区中央嵌入了小键盘数字:右手区的7 8 9 / 4 5 6 / 1 2 3位置分别映射为KC_P7..KC_P9KC_P4..KC_P6KC_P1..KC_P3,方便单手输入数字;
  • CTL_T(KC_ESC):Esc 与 Ctrl 的按键组合(按住为 Ctrl、点按为 Esc),是 QMK Mod-Tap 特性的典型应用;
  • 顶部数字键上方第 1 键为KC_EQL,第 6/7 键为KC_LBRC/KC_RBRC,整体接近 60% 键盘 + 额外符号列的排布;
  • 底排中央为TT(_FN)TT(_FN1)两个层切换键,双空格设计便于拇指分别触发不同层。

第二层(FN):提供F1~F13DeleteMenuPrint ScreenQK_BOOT(刷写模式)、KC_MUTE/KC_VOLD/KC_VOLU(媒体音量)等。QK_BOOT被放在多个位置(包括底排),方便在不拆键盘的情况下快速进入 DFU 刷写模式。

第三层(FN1):集中了 RGB 控制键UG_TOGG/UG_HUEU/UG_HUED/UG_SATU/UG_SATD以及符号输入键(KC_TILDKC_EXLMKC_ATKC_HASHKC_DLRKC_PERCKC_CIRCKC_AMPRKC_ASTRKC_LPRNKC_RPRN等)。

在 default/config.h 中还有一处关键定义:

#define TAPPING_TOGGLE 2

它将TT()键的“点按切换”触发次数设为 2——即连点两次才切换层,避免单次误触导致层意外锁定,这是使用TT()键时重要的手感调优参数。

三颗 3u 空格(default_3u)

default_3u/keymap.c 与默认键位内容基本一致,同样包含三层结构与CTL_T(KC_ESC)、数字键盘嵌入等设计,差异在于使用LAYOUT_2x3u宏,底排改为TT(_FN)TT(_FN1)与一颗 3u 空格并排,适合喜欢在双空格之外再保留一颗中央 3u 空格的用户。

7u 大空格(default_7u)

default_7u/keymap.c 面向最接近传统 60% 键盘的底排(7u 空格)。该键位只定义了两层(_BASE_FN),底排为LCTRL、LGUI、LALT、SPACE(7u)、RALT、MO(_FN)、MENU,将层切换改为按住式MO(_FN)而非TT()。这体现了同一块 PCB 在不同底排配键下的灵活适配能力。

编译与刷写:完整实操流程

环境准备

Plexus75 属于 AVR 键盘(ATmega32U4),编译前需要按 QMK 官方指南完成构建环境搭建:

  • 构建环境搭建说明见 getting_started_build_tools.md;
  • 编译命令详解见 getting_started_make_guide.md;
  • 全新上手建议先阅读 newbs.md(Complete Newbs Guide);
  • 刷写步骤可参考 flashing.md(适用于 atmel-dfu 引导加载器)。

编译命令

readme 给出的标准编译命令为:

make checkerboards/plexus75:default

其通用形式是:

make <键盘路径>:<键位名>

其中键盘路径为checkerboards/plexus75,键位名可选:

键位名对应目录
defaultkeymaps/default
default_3ukeymaps/default_3u
default_7ukeymaps/default_7u

例如编译 7u 大空格版本:

make checkerboards/plexus75:default_7u

编译产物即为atmega32u4对应的.hex固件文件。

刷写方式

由于引导加载器为atmel-dfu,可采用如下方式之一:

# 编译并直接刷写(需键盘已进入 DFU 模式) make checkerboards/plexus75:default:flash

进入 DFU 模式的方法包括:使用 Bootmagic(按住指定键插入 USB)、或触发键位中定义的QK_BOOT(默认键位在 FN/FN1 层与底排均放置了QK_BOOT,刷写非常方便)。刷写工具方面,QMK 官方支持dfu-programmer等烧录工具,详细说明见 flashing.md 与 driver_installation_zadig.md(Windows 下驱动安装)。

定制你自己的 Plexus75 键位

从仓库结构可以推断,Plexus75 的定制方式与 QMK 标准流程一致:

  1. 复制一份官方键位目录,例如将 keymaps/default 复制为keymaps/mykeymap
  2. keymap.c中按LAYOUT_2x2u(或你实际 PCB 使用的 2x3u / 7u 布局宏)重排键位;
  3. 可选地在键位目录中添加config.h做键位级配置(如 default/config.h 中的TAPPING_TOGGLE);
  4. 编译并刷写:
make checkerboards/plexus75:mykeymap:flash

需要说明的是:本仓库为只读,上述定制流程应在你自己 fork 或克隆的副本中进行。若需本地使用,可执行:

git clone https://gitcode.com/GitHub_Trending/qm/qmk_firmware

小结

Plexus75 是理解“正交配列 + 传统底排”设计思路的优秀范例。通过本文,你应该已经掌握了:

  • 它的硬件规格(ATmega32U4、5×15 矩阵、COL2ROW、14 颗 WS2812 RGB);
  • 三种底排布局(2x2u / 2x3u / 7u)的物理结构与对应宏定义;
  • 官方三层键位的功能组织(数字键盘嵌入、Mod-Tap、TT 层切换、RGB 控制、QK_BOOT);
  • make checkerboards/plexus75:default到刷写 DFU 的完整流程,以及按需定制键位的标准方法。

如果你想深入源码验证上述机制,建议继续阅读 keyboard.json 的完整布局定义、三份官方 keymap.c,以及 QMK 核心文档中关于 数据驱动配置、键位编写 与 层切换 的说明。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询