1
1
Fork
You've already forked ork
0
Organic Rust Keyboard - Rust keyboard firmware library with layers, macros, real-time keymap editing, Bluetooth LE, and split support
  • Rust 98.8%
  • Python 1%
  • Shell 0.2%
2026年06月23日 01:34:10 +02:00
.claude/skills/test-changes doc: update documentation 2026年02月03日 16:00:50 +08:00
.devcontainer feat: add devcontainer ( #677 ) 2025年12月17日 16:55:36 +08:00
.github ci: install cargo-expand with --locked param 2026年02月06日 11:53:53 +08:00
.vscode feat: add devcontainer ( #677 ) 2025年12月17日 16:55:36 +08:00
.zed refeactor: update types used in storage 2025年11月24日 22:04:20 +08:00
docs Fixed URLs 2026年06月23日 01:34:10 +02:00
examples Fixed URLs 2026年06月23日 01:34:10 +02:00
ork Fixed URLs 2026年06月23日 01:34:10 +02:00
ork-config Fixed URLs 2026年06月23日 01:34:10 +02:00
ork-macro WIP: More renaming to ORK 2026年06月23日 00:39:19 +02:00
ork-types WIP: More renaming to ORK 2026年06月23日 00:39:19 +02:00
scripts WIP: More renaming to ORK 2026年06月23日 00:39:19 +02:00
.editorconfig feat: enforce LF on windows 2025年08月17日 09:58:29 +02:00
.gitattributes feat: enforce LF on windows 2025年08月17日 09:58:29 +02:00
.gitignore docs: replace vitepress with rspress ( #590 ) 2025年10月21日 10:09:56 +08:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2024年06月03日 14:44:38 +08:00
CONTRIBUTING.md WIP: More renaming to ORK 2026年06月23日 00:39:19 +02:00
LICENSE-APACHE chore: add LICENSE-APACHE 2024年01月22日 15:45:53 +08:00
LICENSE-MIT chore: add MIT license 2024年01月22日 15:41:22 +08:00
README.md README.md: use git for installing orkit until we publish crates 2026年06月23日 01:08:30 +02:00
rust-toolchain.toml ci: add clippy ci task 2025年09月30日 23:57:13 +08:00
rustfmt.toml chore: add rustfmt.toml 2025年03月28日 23:09:57 +08:00


ORK Logo

Organic Rust Keyboard
A feature-rich keyboard firmware written in Rust.


Project Background

ORK has a strict no-"AI" policy. Please refrain from making contributions using "AI" tools, and refrain from writing tickets or other messages using "AI". If you wish to contribute using "AI", please see the project that ORK was originally forked from: RMK.

This project was forked from RMK main as of 2026年02月22日, to remove all "AI"/LLM usage.

Status: This project is in the early stages of being renamed. It probably doesn't compile, and there are likely many broken links around, since we haven't yet pushed to crates.io or docs.rs. Please bear with us until we finish this transition.

Features

  • Broad microcontroller compatibility: Leveraging embassy, ORK supports a comprehensive range of microcontrollers, including stm32, nRF, rp2040(w), esp32, etc
  • Dynamic keymap customization: ORK offers native Vial support, enabling real-time keymap modifications. You can even edit keymaps over BLE connections wirelessly
  • Advanced keyboard functionality: ORK comes with lots of advanced keyboard features by default, including layer switching, media controls, system commands, mouse control, and more
  • Wireless connectivity: BLE wireless support with automatic reconnection and multi-device capabilities for nRF52 and esp32 microcontrollers, tested on nRF52840, esp32c3, esp32s3, Pi Pico W
  • Easy configuration: ORK simplifies keyboard development through a single keyboard.toml configuration file. For Rust enthusiasts, the firmware remains highly customizable using Rust code
  • Optimized performance: ORK achieves approximately 2ms latency in wired mode and 10ms in wireless mode. With the async_matrix feature enabled, power consumption is significantly reduced—a 2000mAh battery can power your keyboard for several months

User Documentation | API Reference | FAQs | Changelog

Real-World Implementations

dactyl-lynx-ork

Getting Started

Option 1: Start with a Template

Quickly bootstrap your project using orkit and the official ORK project template.

cargo install flip-link
cargo install --git https://codeberg.org/whitelynx/orkit.git
# If you encounter installation issues on Windows, try this alternative command:
# powershell -ExecutionPolicy ByPass -c "irm https://codeberg.org/whitelynx/orkit/releases/download/v0.0.20/orkit-installer.ps1 | iex"
orkit init

For comprehensive guidance, refer to the User Guide.

Option 2: Explore Built-in Examples

Browse the examples in the examples directory. Below are step-by-step instructions for rp2040 development. The process is similar for other microcontrollers when using a debug probe.

rp2040 Setup

  1. 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
    
  2. Build the firmware

    cd examples/use_rust/rp2040
    cargo build --release
    
  3. Flash using a debug probe

    With a debug probe connected to your rp2040 board, simply run:

    cd examples/use_rust/rp2040
    cargo run --release
    
  4. (Optional) Flash via USB

    Without a debug probe, you can use elf2uf2-rs to flash via USB:

    1. Install the tool: cargo install elf2uf2-rs
    2. Modify examples/use_rust/rp2040/.cargo/config.toml to use elf2uf2:
      - runner = "probe-rs run --chip RP2040"
      + runner = "elf2uf2-rs -d"
      
    3. Connect your rp2040 board while holding the BOOTSEL button until the USB drive appears
    4. Flash the firmware:
      cd examples/use_rust/rp2040
      cargo run --release
      
      Upon successful completion, you'll see output similar to:
      Finished release [optimized + debuginfo] target(s) in 0.21s
      Running `elf2uf2-rs -d 'target\thumbv6m-none-eabi\release\ork-rp2040'`
      Found pico uf2 disk G:\
      Transfering program to pico
      173.00 KB / 173.00 KB [=======================] 100.00 % 193.64 KB/s
      

Development Roadmap

Current roadmap of ORK can be found here.

Minimum Supported Rust Version (MSRV)

ORK is developed against the latest stable Rust release. While other versions may work, they are not fully tested.

License

ORK is licensed under either of

at your option.