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

资讯详情

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

QMK 固件实战:Acheron Austin 1800 键盘(STM32F072)的编译与键位配置全指南

QMK 固件实战:Acheron Austin 1800 键盘(STM32F072)的编译与键位配置全指南 QMK 固件实战Acheron Austin 1800 键盘STM32F072的编译与键位配置全指南【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware本篇技术指南围绕 QMK Firmware 仓库中 keyboards/acheron/austin 目录下的 Austin代号Austin键盘固件展开系统讲解这款 1800 布局客制化键盘的固件结构、硬件配置、编译命令与全部默认键位方案。读完本文你将掌握如何为本仓库内的 Austin 键盘编译默认固件、按 ANSI/ISO/WKL 等变体选择键位布局并理解 keyboard.json 数据驱动配置背后的矩阵、背光、指示灯与 Bootloader 实现细节。键盘背景Acheron Austin 是什么Austin 是由 Gondolindrim 设计、与 DriftMechanicsDriftingBunnies和 Nightingale StudiosPheonixStarr合作推出的客制化键盘 PCB其官方名称为Acheron Aχξρων 1800CP-SM-S-STM32-MX-TH-WI代号 Austin。从名称可拆解出关键规格1800CP1800 紧凑全尺寸布局在传统全尺寸基础上压缩了功能区宽度SM支持 SMD 元件STM32主控为 STM32 系列 MCUMX兼容 Cherry MX 类轴体TH支持通孔Through-Hole元件WI支持 Windows 键位相关布局变体。Austin PCB 遵循Open-Hardware 指南Open-Hardware guidelines设计硬件文件由设计者 Gondolindrim 维护固件支持更新至 revision Alpha。该键盘通过官方组织的团购GB渠道发售。在 readme.md 中可以找到完整的来源说明与 PCB 文档入口硬件工程文件KiCad与 Acheron Open-Hardware License V1.2 的相关说明也在该文件中列出个人或商业使用前需阅读许可条款。固件目录结构与数据驱动配置Austin 的固件位于 keyboards/acheron/austin 目录采用 QMK 的数据驱动data-driven配置模式核心配置文件为 keyboard.json其余文件包括文件作用keyboard.json键盘的硬件与布局声明USB ID、矩阵、背光、指示灯、8 套布局config.h背光 PWM 驱动配置与可选的功能裁剪宏mcuconf.hChibiOS 外设使能I2C1、PWM TIM3、SPI2matrix_diagram.md矩阵接线图展示每个按键对应的行列坐标keymaps/8 套默认键位方案chconf.h / halconf.hChibiOS 内核与 HAL 配置硬件核心参数keyboard.json从 keyboard.json 可以直接读出该键盘的硬件事实键盘名称Austin厂商为 DriftMechanicsUSB 标识VID0xAC11PID0x4175设备版本0.0.1主控STM32F072Cortex-M0 系列STM32F072xBBootloaderstm32-dfu通过 USB DFU 模式烧录矩阵规模6 行 × 19 列rows 6、cols 19二极管方向为COL2ROW背光引脚 A66 级亮度支持呼吸breathing指示灯Caps Lock 接 A0、Num Lock 接 A2、Scroll Lock 接 A1默认启用功能backlight、bootmagic、command、console、extrakey、mousekey、nkroQMK 锁定键支持qmk.locking启用并开启 resyncNum Lock 状态失步时自动重同步。矩阵行列引脚对应关系来自 keyboard.json列19 个B10, B11, B12, B13, B14, B15, A8, A9, A10, A5, A15, B3, B4, B5, B8, A3, C15, C14, F1行6 个C13, A4, A7, B0, B1, B2背光与 MCU 外设配置config.h / mcuconf.hconfig.h 中声明了背光 PWM 的底层绑定#define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 #define BACKLIGHT_PAL_MODE 1即背光由 PWM 驱动 PWMD3对应定时器 TIM3的第 1 通道驱动PAL 复用模式为 1。该文件尾部还保留了 QMK 常见的功能裁剪宏NO_DEBUG、NO_PRINT、NO_ACTION_LAYER、NO_ACTION_TAPPING、NO_ACTION_ONESHOT默认均被注释掉用于在固件体积紧张时按需启用。mcuconf.h 由qmk chibios-confmigrate自动生成显式使能了三个外设#define STM32_I2C_USE_I2C1 TRUE #define STM32_PWM_USE_TIM3 TRUE #define STM32_SPI_USE_SPI2 TRUE其中STM32_PWM_USE_TIM3与 config.h 中背光使用的 PWMD3TIM3 对应的 PWM 驱动直接对应可以推断背光功能正是依赖 TIM3 的 PWM 输出实现。如何编译从构建环境到烧录官方 readme 给出了最核心的编译命令先搭建 QMK 构建环境qmk setup然后进入仓库根目录执行make acheron/austin:default该命令的含义是编译目标键盘acheron/austin使用default键位方案即 keymaps/default/keymap.c。编译产物默认生成在qmk_firmware/.build目录下。由于 Bootloader 为stm32-dfu刷写时需将键盘置于 DFU 模式可通过 Bootmagic 或物理复位键进入之后可结合qmk flash或make acheron/austin:default:flash完成烧录。可用的全部键位目标Austin 固件内置了 8 套默认键位方案对应不同的配列变体编译时只需替换命令中的 keymap 名键位名配列说明default全配列LAYOUT_all含分离 Backspace、左侧第二 Shift 等完整按键default_ansi标准 ANSI 配列2u Backspacedefault_ansi_split_bsANSI 分离 Backspacedefault_ansi_wklANSI WKL 底部一行无 Windows 键default_ansi_wkl_split_bsANSI WKL 分离 Backspacedefault_iso标准 ISO 配列含 ISO Enter 与 NuHS 键default_iso_split_bsISO 分离 Backspacedefault_iso_wklISO WKL 底部一行default_iso_wkl_split_bsISO WKL 分离 Backspace例如编译 ISO 配列默认键位make acheron/austin:default_iso这 8 个方案在 keyboard.json 中对应 8 个 layout 宏LAYOUT_all、LAYOUT_ansi、LAYOUT_ansi_split_bs、LAYOUT_ansi_wkl、LAYOUT_ansi_wkl_split_bs、LAYOUT_iso、LAYOUT_iso_split_bs、LAYOUT_iso_wkl、LAYOUT_iso_wkl_split_bs每个键位文件通过对应的 LAYOUT 宏组织键值数组。1800 布局与矩阵坐标解读默认键位LAYOUT_alldefault 键位文件使用LAYOUT_all宏完整映射了全部矩阵位置const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] { [0] LAYOUT_all( KC_ESC , KC_F1 , ... , KC_PSCR, KC_SCRL, KC_PAUS, KC_HOME, KC_END , KC_DEL , KC_GRV , KC_1 , ... , KC_BSPC, KC_BSPC, KC_INS , KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, ... KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, ... ) };从代码可以观察到 1800 布局的典型特征顶行功能区Esc F1–F12随后是 Print Screen、Scroll Lock、Pause、Home、End、Delete右区数字键盘Num Lock、/、*、-、7/8/9、纵向双高、4/5/6、1/2/3、Enter纵向双高、0/0/.其中 0 键在矩阵中占两个位置5F、5G.为 5H主键区数字行、QWERTY 字母区Backspace 支持 2u矩阵位置 1D、1E 两个 Backspace 位对应 2u 键帽或分离 Backspace方向键↑位于主键区右侧4D←、↓、→位于底行5B、5C、5E底行非 WKL 时为 1.25u Ctrl / GUI / Alt 6.25u Space 1.5u Alt / CtrlWKL 变体则省略 GUI 键改为 1.5u Ctrl / Alt 7u Space。矩阵图matrix_diagram.mdkeyboards/acheron/austin/matrix_diagram.md 提供了完整的矩阵接线图用两位十六进制坐标行 列标出每个按键的位置例如00表示第 0 行第 0 列Esc5I表示第 5 行第 18 列小键盘-。图注还标注了几种常见键帽规格1E第 1 行 E 列为2u Backspace位置3C为ISO Enter位置纵向双高40为2.25u 左 Shift5F为2u 小键盘 0底部另附WKL底行示意图50/51/55/59/5A。在自行编写或修改 keymap 时这张矩阵图是核对矩阵坐标的第一手资料。ISO 与 WKL 变体的键值差异对比不同键位文件可以直观看出布局差异ISO 变体default_iso在回车行使用KC_NUHSISO#键、左 Shift 行使用KC_NUBSISO\键且 Enter 为纵向双高的 ISO EnterANSI 变体的\位于回车键右侧矩阵 2D 位置1.5uWKL 变体default_ansi_wkl底行去掉 GUI 键左 Ctrl 变为 1.5u、左 Alt 变为 1.5u、Space 加宽为 7u分离 Backspace 变体在 LAYOUT_all 与 LAYOUT_ansi_split_bs 等宏中把 2u Backspace 拆为两个独立矩阵位1D、1E 均映射为 Backspace。自定义键位的起点如需自定义键位推荐在 keymaps 目录下新建一个子目录如keymaps/mine/keymap.c参考 default 的结构#include QMK_KEYBOARD_H后定义keymaps[][MATRIX_ROWS][MATRIX_COLS]使用LAYOUT_all或其他与你的配列匹配的 LAYOUT 宏填充键值。编译时指定自定义键位名make acheron/austin:mineQMK 的键值宏如KC_TAB、KC_LSFT在QMK_KEYBOARD_H中统一提供键位文件中无需额外声明。小结Acheron Austin 是典型的 1800 紧凑全尺寸客制化键盘其 QMK 固件在本仓库中具备完整的数据驱动配置keyboard.json声明了 STM32F072 主控、19 列 × 6 行矩阵、PWM 背光与三枚指示灯8 套默认键位覆盖 ANSI / ISO / WKL / 分离 Backspace 的常见组合。通过make acheron/austin:keymap即可编译任意一套方案并结合stm32-dfuBootloader 完成烧录。无论你是 Austin 用户还是对 1800 配列移植感兴趣的开发者都可以从 keyboard.json、matrix_diagram.md 与各 keymaps 出发快速理解并定制这套固件。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表