A feature-rich Rust keyboard firmware.
👉 Join our Discord server if you have anything to discuss!
keyboard.toml
is all you need! For experienced Rust user, you can still customize your firmware easily using RMKasync_matrix
feature, RMK has very low power consumption, with a 2000mah battery, RMK can provide several months battery lifeYou can use rmk-template to initialize your project.
cargo install cargo-generate flip-link
cargo generate --git https://github.com/HaoboGu/rmk-template
Then follow the steps in generated README.md
. Check RMK's User Guide for details.
Example can be found at examples
. The following is a simple step-to-step instruction for rp2040. For other microcontrollers, the steps should be identical with a debug probe.
Install probe-rs
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.sh | sh
Build the firmware
cd examples/use_rust/rp2040
cargo build
Flash using debug probe
If you have a debug probe connected to your rp2040 board, flashing is quite simple: run the following command to automatically compile and flash RMK firmware to the board:
cd examples/use_rust/rp2040
cargo run
(Optional) Flash using USB
If you don't have a debug probe, you can use elf2uf2-rs
to flash your rp2040 firmware via USB. There are several additional steps you have to do:
elf2uf2-rs
: cargo install elf2uf2-rs
examples/use_rust/rp2040/.cargo/config.toml
, use elf2uf2
as the flashing tool
- runner = "probe-rs run --chip RP2040"
+ runner = "elf2uf2-rs -d"
cd examples/use_rust/rp2040
cargo run
Then, you will see logs like if everything goes right:
Finished release [optimized + debuginfo] target(s) in 0.21s
Running `elf2uf2-rs -d 'target\thumbv6m-none-eabi\release\rmk-rp2040'`
Found pico uf2 disk G:\
Transfering program to pico
173.00 KB / 173.00 KB [=======================] 100.00 % 193.64 KB/s
Current roadmap of RMK can be found here.
This crate uses latest stable. Other versions should work, but they're not tested.
RMK is licensed under either of
at your option.