#keyboard #firmware #rp2040 #rmk #embedded #mcu #layer

nightly app rmk-rp2040

用Rust编写的键盘固件

1个不稳定版本

0.1.0 2024年1月18日

#1793硬件支持

MIT/Apache

365KB
6K SLoC

RMK

Crates.io Docs Build

基于cortex-m的键盘固件,具有层/动态键盘映射/vial支持,用Rust编写并在stm32和rp2040上测试。

新闻

Rmk刚刚发布了版本0.1.0,迁移到Embassy!通过迁移到Embassy,Rmk现在拥有更好的异步支持,比以前更容易支持更多MCU,API也更加丰富。有关使用Embassy的示例,请查看boards文件夹!

先决条件

此crate需要nightly Rust。使用openocd(stm32)或probe-rs(rp2040)进行烧录和调试。

用法

您可以使用RMK构建自己的键盘固件,或者尝试stm32h7和rp2040的内置固件示例。

构建自己的固件

示例可在boards中找到。以下是一个创建自己的固件的简单步骤指南

  1. 创建一个rust嵌入式项目,使用cargo add rmk将rmk添加到您的项目中
  2. 选择您的目标,使用rustup target add <your-target-name>安装目标。有关目标选择的文档,请参阅此处。例如,rp2040是Cortex-M0+,因此其目标为thumbv6m-none-eabi
  3. 在项目的根目录中创建.cargo/config.toml,在此处指定您的目标。请参阅boards/stm32h7/.cargo/config.toml
  4. 创建main.rs,在rtic的mod app中初始化您的MCU,创建usb轮询任务和键盘任务。请参阅boards/stm32h7/src/main.rs

使用内置示例

rp2040

  1. 安装 probe-rs
       cargo install probe-rs --features cli
    
  2. 构建固件
    cd boards/rp2040
    cargo build
    
  3. 擦写固件
    cd boards/rp2040
    cargo run
    

stm32h7

  1. 安装 openocd

  2. 构建固件

    cd boards/stm32h7
    cargo build
    
  3. 擦写

    openocd -f openocd.cfg -c "program target/thumbv7em-none-eabihf/debug/rmk-stm32h7 preverify verify reset exit"
    
  4. (可选) 使用 CMSIS-DAP 调试固件

    使用 VSCode 打开项目,按 F5,固件将自动编译和擦写。擦写后开始调试会话。查看 .vscode/tasks.json.vscode/launch.json 获取详细信息。

路线图

列表中有许多待办事项,欢迎任何贡献 :)

  • 支持 rp2040
  • 基本键盘功能
  • 层级
  • 系统/媒体键
  • Viola 支持
  • eeprom
  • 键盘宏
  • 编码器
  • RGB
  • cli 工具

许可证

Rmk 采用以下任一许可证:

任选其一。

依赖项

~15–25MB
~370K SLoC