Giter Club home page Giter Club logo

rmk's Introduction

RMK

Crates.io Docs Build

A feature-rich Rust keyboard firmware.

Features

  • Support a wide range of microcontrollers: Powered by embassy, RMK supports a wide range of microcontrollers, such as stm32/nrf/esp32/rp2040
  • Real-time keymap editing: Keyboard layout can be customized at the compile-time with real-time keymap editing using vial
  • Advanced keyboard features: Many advanced keyboard features are available by default in RMK, such as layer switch, media control, system control, mouse control, etc
  • Wireless: (Experimental) BLE wireless support with auto-reconnection/multiple devices feature for nrf52 microcontrollers, tested on nrf52840

News

  • [2024.03.07] BLE support with auto-reconnection/multiple devices feature for nrf52840 has beed added to RMK! Checkout boards/nrf52840_ble for details.

  • [2024.02.18] Version 0.1.4 is just released! This release contains a new build script for generating vial config, minor API update and a brand new user documentation page.

Click to checkout more news
  • [2024.01.26] ๐ŸŽ‰rmk-template is released! Now you can create your own keyboard firmware with a single command: cargo generate --git https://github.com/HaoboGu/rmk-template

  • [2024.01.18] RMK just released version 0.1.0! By migrating to Embassy, RMK now has better async support, more supported MCUs and much easier usages than before. For examples using Embassy, check boards folder!

Usage

Option 1: Initialize from template

You can use rmk-template to initialize your project.

cargo install cargo-generate
cargo generate --git https://github.com/HaoboGu/rmk-template

Then follow the steps in generated README.md. Check RMK's User Guide for details.

Option 2: Try built-in examples

Example can be found at boards. The following is a simple step-to-step instruction for rp2040 and stm32h7

rp2040

  1. Install probe-rs

    cargo install probe-rs --features cli
  2. Build the firmware

    cd boards/rp2040
    cargo build
  3. Flash

    cd boards/rp2040
    cargo run

stm32h7

  1. Install openocd

  2. Build the firmware

    cd boards/stm32h7
    cargo build
  3. Flash

    You can use both probe-rs and openocd to flash the firmware:

    # Use openocd
    openocd -f openocd.cfg -c "program target/thumbv7em-none-eabihf/debug/rmk-stm32h7 preverify verify reset exit"
    
    # Use probe-rs
    cd boards/stm32h7
    cargo run
  4. (Optional) Debug firmware using CMSIS-DAP

    Open the project using VSCode, choose Cortex-Debug - stm32h7 debug profile, then press F5, the firmware will be automatically compiled and flashed. A debug session is started after flashing. Check .vscode/tasks.json and .vscode/launch.json for details.

Current roadmap of RMK can be found here.

Minimum Supported Rust Version (MSRV)

This crate requires stable Rust 1.75 and up.

License

RMK is licensed under either of

at your option.

rmk's People

Contributors

haobogu avatar lonesometraveler avatar szabgab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.