1 个不稳定版本

0.0.1 2024年6月30日

#66#rp2040

MIT 许可证

78KB
2K SLoC

rktk

Rust 键盘工具包。

目前,固件是为Keyball61设计的,但通过将核心功能与驱动程序分离,核心功能是架构和硬件独立的,可以很容易地扩展。

我们的当前目标是将其移植到NRF52840芯片并通过蓝牙连接。

功能

  • ✅ : 已完成
  • 🟡 : 进行中,部分实现。
  • 🔴 : 进行中,尚未工作。
  • ❌ : 计划中。尚未实现。
  • 空:未计划/不需要。

核心功能

功能 状态
按键扫描
媒体按键支持
鼠标
层系统 🟡
分割键盘
非分割键盘 🟡
显示 🟡
背光LED 🟡
USB
蓝牙
VIA/Vial 支持
双击重置

驱动程序

按键扫描器

驱动程序 RP2040 NRF52840
全双工矩阵扫描器 🔴

鼠标

驱动程序 RP2040 NRF52840
PMW3360 🔴

显示

驱动程序 RP2040 NRF52840
SSD1306 🔴

分割

驱动程序 RP2040 NRF52840
半双工pio
位带

背光

驱动程序 RP2040 NRF52840
ws2812 pio
位带

USB

RP2040 NRF52840
🔴

蓝牙

RP2040 NRF52840

双击重置

RP2040 NRF52840

架构

rktkrktk-drivers-commonrktk-drivers-{rp2040,nrf52} 和每个键盘的crate。

rktk crate 完全与硬件无关,并提供键盘的核心功能。

rktk-drivers-common 使用嵌入式-hal 和嵌入式-hal-async 的抽象,为可以在各种芯片上通用的驱动程序提供基础。这使得将驱动程序移植到各种芯片变得非常容易。

rktk-drivers-* crate 为每个芯片提供驱动程序。大多数驱动程序是 rktk-drivers-common 的封装,但也有一些是专有实现,如 ws2812-pio

每个键盘箱可以创建适用于相应芯片的驱动程序,并将其传递给 rktk::task::start 来配置实际工作的键盘固件。目前唯一工作的键盘是 keyball61-rp2040,但根据 keyboards/keyball61-rp2040 目录创建自己的键盘并不困难。

致谢

  • rumcake(rp2040 双击进入引导加载程序驱动程序)
  • uf2(uf2conv.py,uf2families.json)
  • ARM GNU 工具链(arm-none-eabi-objcopy)
  • rusty-dilemmaqmk 用于 pio 半双工

依赖关系

~11MB
~184K SLoC