拙作のrktkというフレームワークを用いたRust製のKeyballファームウェアです。現在Keyball61のみをサポートしています。
動作のためにはRP2040を搭載したProMicroが必要です。AliExpressなどで互換品がお安く買えます。通常のAVR ProMicroでは動かないので注意してください。
また、BLEに対応しておりnRF52840を搭載ボードでも動作しますが、BLE Micro Proでの動作は現状確認していません。 ピンの設定を適切に変更すれば動作するはずですが、本ファームウェアでは過去フラッシュの書き込みにバグがあり書き換えてはいけない領域を書き換えてブートローダが起動しなくなることがあったため自己責任でお願いします。
詳しくはrktkのページを参照してください。キーマップについてはQMKの機能のメジャーな所は大体実装してありますが、ディスプレイ、バックライトなどは現状カスタマイズすることができません。
- 左右間の通信が安定しない
- フラッシュの書き込み・読み込みがうまくいかないことがある
ビルドには以下のツールが必要です。予めインストールしておいてください。
- Nightly Rust: Rustupからインストール可能
- flip-link:
cargo install flip-link
- rktk-cli:
cargo +nightly install --git https://github.com/nazo6/rktk rktk-cli
- arm-none-eabi-objcopy (uf2生成に必要)
- Python (uf2生成に必要)
-
このリポジトリをクローンします。
git clone https://github.com/nazo6/keyball-rs
-
rktk
をクローンします。現在rktkは絶賛開発中のためkeyball-rs内でpath dependencyとして指定されており、keyball-rsの隣に置く必要があります。git clone https://github.com/nazo6/rktk
-
ビルドするディレクトリに移動してビルドします。
cargo build -p
は機能しないので注意してください。cd keyball-rs/keyball61/keyball61-rp2040 rktk-cli build
-
ビルドが完了すると
target/thumbv6m-none-eabi/min-size
にuf2ファイルが生成されているはずです。ProMicroをブートローダーモードで起動(BOOTを押しながらリセット)し、表れたドライブにuf2ファイルをコピーすれば書き込み完了です。
キーマップはkeymap.rsで定義されています。これを編集することでキーマップを変更することができます。
rktkは上のようにソースコードでキーを変更する以外にも、以下のWebアプリを使うことでキーマップや設定を変更することができます。
Zennの記事で紹介した際のkeyball-rs
のコードはlegacy
ブランチにあります。
このコードをライブラリ化したものがrktkです。