YBK-firmware
YBK-firmware copied to clipboard
Keyboard Firmware for nRF52840 board
YBK ( Yswallow|Ysni_pub Bluetooth Keyboard ) Firmware
docs/
もご覧ください。
実装済みの機能
- WebHIDでの初期設定
- マトリックスキーボードのCOL_PINSとROW_PINSの設定
- USBキーボード
- BLEキーボード
- 無線分割キーボード
- Peripheral側だけでもUSBキーボードとして使用できる
- Remapでのキー設定(一部)
- 長押しと短押しで異なる機能を割り当てる
- マウスキー
- 実装済みのキー 参照
- Bluetooth経由でのRemapの利用
- USB経由とはPIDが異なるため,JSONの書き換えが必要です。
- 音量調整などのConsumerControl機能(一部)
- NeoPixel機能
書き込み方法
-
Adafruit_nRF52_Bootloaderが導入されたボードをパソコンに接続し,リセットボタンを2連打する
-
表示されたドライブにReleasesのUF2ファイルをコピーする
- 分割キーボードの左手側は
CentralRelease.uf2
を, 右手側はPeripheralRelease.uf2
を, 一体型キーボードではIntegratedRelease.uf2
を書き込んでください。
- 分割キーボードの左手側は
-
ドライブが自動で接続解除されたらリセットボタンを押し,再度ドライブとして認識されなければ書き込み成功
- 書き込みに失敗する場合,ファイルが壊れている可能性があります。
初期設定方法
- 設定ページを開く
- [Connect keyboard]を押す
- 必要項目を埋める
- Keyboard Rows: キーボードの行数
- Keyboard Cols: キーボードの列数
- keyboard Central Cols: キーボードの左手側の列数(分割キーボード用の設定)
- Row Pins: マトリックススキャンの行ピンの番号(0~47)をカンマ区切りで記入
- Col Pins: マトリックススキャンの列ピンの番号(0~47)をカンマ区切りで記入
- [Send]を押す
- 電源LEDやNeoPixelを使用する場合:
- Enable Power LEDにチェックを入れる
- Pin Number of Power LEDを入力する
- NeoPixel信号を出力するピンの番号
Pin Number of NeoPixel
に入力する - NeoPixelの数を
LEDs count of NeoPixel
に入力する。NeoPixelを使用しない場合は0 - [Send Additional Data]を押す
- 下の欄に正しく表示されればキーボードのリセットボタンを押す。
- 再度[Connect keyboard]を押す。
- 下の欄に正しく表示されれば完了。
- 表示が正しくなければ3.から繰り返す。
キーマップ設定方法
- Remapを開く。
- 設定ファイルを作る
- サリチル酸さんの記事を参考にしてください
- 本家VIAと違って、分割型キーボードは右手側のキーが左手側のcolの右に並ぶようになっています。(QMKは左手のROWのあとに右手のROWが左右反転して続く)
- VID/PIDはRemapでキーボードを接続したときに左上に表示されるのをコピペしてください。
- Remapに設定ファイルを適用する
- Remapで設定する
NeoPixelパターンの設定
https://yswallow.github.io/YBK-firmware/NeoPixel_Setting.html
バグ
-
キー入力が止まらなくなる -
元のレイヤーに戻らなくなる -
特定のキーを打てなくなる -
左右間の接続が切れて復帰しない -
初期設定後に文字が入力され続ける -
Bluetoothが切断・再接続を無限に繰り返す
わかっている問題と解決策
LinuxでWebHIDを利用できない
sudo chmod 666 /dev/hidraw*
してください
Windows上でBLE経由でRemapを利用する際,Unknown Deviceと表示される
Windowsの仕様です。
左右接続がうまくいかない
右手側の電源を先に入れるとうまくいきやすい気がします。
Bluetoothが切断・再接続を無限に繰り返す
キーボードの電源を切り, コンピュータやスマートフォンでペアリングを解除し, 再度ペアリングしてください。
BLEで新たに実装された機能を利用できない
コンピュータやスマートフォンでペアリングを解除し, 再度ペアリングしてください。