跳转到内容

rumcake

一个基于 rust 的键盘固件。

rumcake 是一个 Rust 库,可让您轻松构建功能强大的键盘固件。 在底层, rumcake 使用 embassy-rs 作为嵌入式框架。 提供 rumcake 作为库允许您在自己的 Cargo 工作区中构建固件,而无需将代码推送到中央 rumcake 存储库。

rumcake 库:

  • 为常见键盘活动提供 embassy-executor 任务,包括矩阵轮询、主机通信、LED 渲染等。
  • 提供宏,允许您以易于理解的方式配置键盘固件。 keyberon 也用于键盘布局配置。
  • 目标是与平台无关,并在底层使用不同的 HAL(硬件抽象库),具体取决于您决定构建的芯片。

支持的最低 Rust 版本

rumcake 使用了一些只存在于 nightly 工具链的功能. 当你编译你的固件时,请使用最新的 nightly 工具链。

MCUs

请注意,构建和刷写指令可能会根据 MCU 的不同而变化。 请参阅模板了解一些常见设置的构建以及刷写说明。

已测试的MCU

  • STM32F072CBx
  • STM32F303CBx
  • nRF52840 (使用 nice!nano v2 测试)
  • RP2040

特性

可用的

以下功能 可用 ,但可能不稳定或缺少组件。

  • USB通讯
  • 蓝牙通讯 (只适用于 nRF-based 键盘)
  • 背光灯(Backlighting)
  • 轴灯(Underglow)
  • 分体键盘
  • 显示(e.g. SSD1306)
  • 存储(Storage)
  • Via/Vial
  • 媒体键(Media keys)
  • 编码器(Encoders)

为什么叫 “rumcake”

RUst MeChAnical KEyboard”

致谢

如果没有其他社区项目所做的工作,这个固件是不可能实现的。

非常感谢以下项目:

  • QMK
    • A lot of backlighting and underglow animations have been adapted from QMK.
    • WS2812 Bitbang driver is also loosely based on their implementation.
  • ZMK
    • Their existing bluetooth, and split keyboard implementations have been helpful references for rumcake’s implementation
  • TeXitoi’s keyberon crate
    • For powering the logic for keyboard matrix and layouts
  • jtroo’s keyberon fork
    • For the implementation of extra layout actions, like one shot and tap dance keys
  • riskable and borisfaure
    • For the implementation of sequences/macros in keyberon
  • simmsb’s corne firmware
    • Very helpful reference for developing a keyboard firmware using embassy-rs
  • TeXitoi’s keyseebee project
    • Another helpful reference for a rust-based keyboard firmware
  • Any dependency used by rumcake. Building this would be a lot more difficult without them!