GitHub - nazo6/keyball-rs: Keyball firmware made with rust and embassy
github.com
elf2uf2-rs
をインストールしてProMicroを接続しcargo run
をすれば実行できます。分割キーボードとして使いたれば両側に行う必要があります。src/constants.rs
を適切に変更すれば恐らく動くと思いますが持っていないので検証はできません。Duplex-Matrixを自作キーボードで使う方法
e3w2q.github.io
自作キーボードのDuplex Matrixとはなにか調べてみた - ウチの方舟
voyage4bliss.com
keyball-rs/src/driver/common/keyboard/mod.rs at master · nazo6/keyball-rs
github.com
std
featureを外すことができたり、heapless
などの様々なno_std
用便利クレートもあります。embedded-hal
に対応しているクレートならEmbassyと一緒に使うことも容易です。embedded-hal
とembedded-hal-async
の両方を実装するといった工夫が成されています。embassy-time
やembassy-sync
など便利なクレートが沢山用意されています。また、embassy-usb
にはUSBやUSB HIDの実装が含まれていて非常に便利です。実際、USB関連のコードは今回ほとんど何も書いていません。embassy-rp
には先述したPIOも含め必要な機能が網羅されており、「あれができない…」みたいなことは今回は特にありませんでした。keyball-rs/src/task/core_task/master/main_loop.rs at eed7ac8103418663ac86ae51a1064946e56b02c9 · nazo6/keyball-rs
github.com
embassy_futures
のjoinやselect、embassy_sync
のchannelやsignalを使うことでstd環境に近い開発体験を得ることができています。