待补充
HaoboGu/rmk
ESP32
3/5
🧩 软硬件结合
已发布
项目简介
Rust keyboard firmware library with layers, macros, real-time keymap editing, wireless(BLE) and split support
RMK 是一个用 Rust 语言编写的功能丰富的键盘固件项目,旨在为机械键盘爱好者、DIY 玩家和嵌入式开发者提供一套现代化、高性能且易于定制的键盘固件解决方案。该项目基于 embassy 异步运行时框架,实现了对多种主流微控制器的广泛支持,包括 stm32、nRF、rp2040(w) 和 esp32 等,让用户能够自由选择硬件平台进行开发。
标签
项目特点
**多平台支持**:兼容 stm32、nRF、rp2040(w)、esp32 等多种主流微控制器,硬件选择灵活。
**Rust 语言驱动**:基于 Rust 和 embassy 异步运行时,提供高性能、内存安全的固件体验。
**丰富功能**:支持全键无冲、多层键位、旋钮编码器、RGB 灯光、VIA 实时配置等。
**易于定制**:通过简单的配置文件即可自定义键位映射、灯光效果和键盘布局。
**现代化架构**:采用异步编程模型,支持低功耗模式和 USB HID 协议,适合嵌入式开发场景。
**活跃社区**:开源项目,持续更新,有详细的文档和示例代码。
技术规格
| 编程语言 | Rust |
|---|---|
| 运行时框架 | embassy 异步运行时 |
| 支持 MCU | stm32、nRF、rp2040(w)、esp32 |
| 键盘功能 | 全键无冲、多层键位、旋钮编码器、RGB 灯光 |
| 配置方式 | VIA 实时配置、配置文件自定义 |
| 通信协议 | USB HID |
| 功耗管理 | 支持低功耗模式 |
| 开发环境 | Rust 工具链、cargo、probe-rs |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| stm32/nRF/rp2040/esp32 开发板 | 1 | — | 根据所选平台选择 |
| 机械轴体 | 按键盘布局 | — | 如 Cherry MX、Gateron 等 |
| 1N4148 或类似 | 按按键数量 | — | 用于矩阵扫描 |
| 10kΩ 电阻 | 若干 | — | 上拉电阻 |
| 100nF 电容 | 若干 | — | 去耦电容 |
| USB-C 接口 | 1 | — | 用于供电和数据传输 |
| 旋钮编码器 | 可选 | — | 用于音量控制等 |
| RGB LED | 可选 | — | 如 WS2812B,用于灯光效果 |
能力画像
**记忆与知识检索**:3/5 — 需要查阅 Rust 和 embassy 文档,以及键盘固件相关技术资料。
**动手与操作**:4/5 — 需要焊接电路板、组装键盘硬件,以及使用烧录工具。
**编程与算法**:4/5 — 需要编写和修改 Rust 代码,理解异步编程和键盘扫描算法。
**设计与建模**:2/5 — 如果自制外壳,需要 3D 建模能力,但非必需。
**实验与调试**:4/5 — 需要调试固件问题、测试硬件连接,使用 probe-rs 等工具。
**协作与分享**:3/5 — 可以参与开源社区,提交 issue 或 PR,分享自己的键盘配置。
**学习与研究**:4/5 — 需要学习 Rust 语言、embassy 框架和键盘固件原理。
**系统集成**:3/5 — 需要将硬件、固件和配置集成到一个完整的键盘系统中。
项目图库
所需技能
Rust 编程基础
嵌入式开发基础(了解微控制器和 GPIO)
电路焊接和硬件组装能力
使用命令行工具(cargo、probe-rs)
阅读英文技术文档的能力
基本的电子电路知识(二极管、电阻、电容)
适用场景
机械键盘 DIY 爱好者想要打造自定义键盘
嵌入式开发者学习 Rust 和异步编程
需要高性能、低延迟键盘固件的游戏玩家
想要实现复杂键盘功能(如宏、多层键位)的用户
开源硬件和固件项目的贡献者和学习者
需要低功耗无线键盘方案的物联网项目