Sofle v2を組み立てて、BLE+LPME-IO化してみた #DIYキーボード

Posted by johtani on Monday, February 1, 2021

目次

Corne使ってましたが、数字キーがあるとどうなのかな?というのがやはり気になって。 そこに、Kochi KeyboardさんからSofle Keyboard v2というのが発売されたので組み立ててみました(去年末に)。また、先日Corne Light v2のBLE化に成功したので、Sofle keyboard v2のBLE Pro Micro + LPME-IO化にもチャレンジしてみました。

Sofle keyboard v2 ビルドログ

自分で書くよりもすごくよくできたビルドログがKochi Keyboardさんで公開されているので、そちらを参考にしてください。

すごく詳しく書いてあります。なので、こちらを見ていただければ問題ないかなと。 ただ、自分ではいくつか失敗したので自戒を込めてログを残しておきます。

OLED用のジャンパをはんだ付けし忘れ

単にビルドログを流し読みしたツケが。。。 Sofleは同じ基盤を左右で利用します。なので、右手と左手で、同じ基盤の表と裏を利用します。 OLED用のジャンパする部分は両面に用意されていますが、はんだでジャンプするのはPro Microが実装される面となります。

両面にジャンプ用のランドがあるとは気づかないで、左手の裏面をジャンプしてすべて実装し終わってから、OLEDが表示されないことに気づいてしまいました(ビルドログ用にと思って撮った写真に証拠が残ってますねw)。。。

ということで、またはんダッシュ太郎くんのお世話になりました(Pro Microを外してジャンプしました)。本当に有能ですよ彼は。。。

ソケットのはんだ付け甘すぎ

あとは、慣れてきたなぁと思っていたところに天罰が。 キースイッチのソケットを付けるの慣れてきたなーと思って、サクサクとつけていたのですが、 いざキースイッチをはめるときにボロボロとはがれていきましたw 半分くらいは外れたんじゃないかな?ちゃんとはんだ付けした後にピンセットなどで軽くいじってみるべきですね。。。

滑り止め

利用しているキーキャップがOEMプロファイルということもあり、数字キー側を少し高くしたほうが入力しやすいです。そのために、少し大きめのソフトクッションを購入しました。

上の左右の角に貼り付けると、がたつきがあったので少しずらして貼り付けて安定させています。 OLEDのプレートの部分を押すと手前が浮き上がってしまいますが、そこにはキーはないので問題ないかと。

ということで、毎回気づきがあって面白いですね。。。

Sofle keyboardのBLE化

Corne LightのBLE化がうまくいったので、もうひとセットのぎけす屋さんから購入しました。 BLE Micro ProやLPME-IO、電池基盤などについては前回のCorneのBLE化の記事を参照してください。

ハードウェア編

Sofle keyboard v2は残念ながらせきごんさんの公式ページの対応キーボード一覧には掲載されていません。 が、Sofle KeyboardのGitHubのページには次のような記載があります。

Sofle is 6×4+5 keys column-staggered split keyboard with encoder support. Based on Lily58, Corne and Helix keyboards.

基盤の写真のPro Micro周りもCorneに似ています。 ということで、おそらくBLE + LPME-IO化が行けるのでは?と予測して作業に取り掛かりました。

PCBの確認

Sofle Keyboardの基盤の設計図はGitHub上に公開されています。 この設計図を見る方法をまずは探しました。

自作キーボードについて探すにはまずはサリチル酸さんのブログ「自作キーボード温泉街の歩き方」です。 回路図なので、設計ノウハウあたりのカテゴリーにあるだろうと探したところ見つかりました。

配線のテクニックというブログですが、回路図を書くためのツールKiCadについて記載があります。 このブログにある以下の記事をもとに、KiCadのインストールや使い方をちょっとだけ勉強しました。

KiCadの中の回路図エディタ「Eeschema」でSofle keyboardのPCBのフォルダを開くと回路図が開きます。 実際の基盤になる前に、Pro Microのどの足と何がつながっているのか?などが見て取れます。 前回のCorneのBLE化でLPME-IO対応したときに、学習しましたが、 TRRSの足とPro MicroのSDASCLをつなぐことで、LPME-IOを使うことができるようになるというのがわかっています。 それをもとに回路図を見たところ、以下のような記述がありました。

どうも、JP9とJP10というはんだでジャンプする場所を用意してくれていそうです。 先を見越した設計本当にありがたいですね。

JP9とJP10のはんだ付け

今ついているPro Microを外し(またはんダッシュ太郎が活躍)、基板を確認したところ対象の個所がありました。下の写真は左手の裏側です。

これらをはんだでジャンプします。

右手は表側にあるので、Pro Microを外した後にジャンプしました。

左手は裏側です。

Corne Lightでは、Pro Microの足から導線を使ってTRRSの足につなぎましたが、今回はすっきり実装できました。 ジャンプした後はBLE Micro Proをはんだ付けします(はんだ付けせずに動作確認しようとしましたが、うまく通電しなくてちゃんと動かなかったです)。

LPME-IOのジャンパ

LPME-IOのGitHubページにあるように、利用するキーボードによって、いくつかはんだでジャンプする必要があります。 これは、BLE Micro Pro用のConfigファイルを見て、対象を決める必要があります。 が、Sofleは事前に用意されたものがありません。

Configファイルの生成

用意されていないConfigファイルが、QMKの設定ファイルから生成することができるようななっています(本当に感謝しかないですね)。 手順はBLE Micro Proのドキュメントにありました。

この変換スクリプトで3種類のconfig(右手用、左手用、LPME-IO用)が生成されます。 私の場合はLPMEを利用するので、lpmeという名前の入ったconfigを利用します。 中を見るとcol以下の記載が以下の通りだったので、8からDをジャンプします。

"col_pins":[18, 17, 16, 15, 14, 13, 18, 17, 16, 15, 14, 13],

ここまででハードウェア側が終了です。

ファームウェア・設定編

ハードウェアの実装が終わったので、ファームウェアおよびアプリの設定です。

ファームウェアのセットアップ

キーボードをUSBで接続し、BLE Micro Pro Web Configuratorのページにアクセスすると、 セットアップ初期画面が出てきます。

公式ページの「キーボードを選ぶ」を参考にファームウェア、アプリのアップデートを行います。 「設定ファイルの書き込み」のタイミングでupload your ownを選択すると、ファイル選択画面が出てくるので、変換スクリプトで生成したJSONファイルを選択します。 このとき、Mas Storage Classとしてキーボードが認識されている状態だとうまく書き込めなかったので、キーボードのドライブを「取り出し」してからファイルをアップロードしました。

キーマップの設定

BLE Micro Proのアプリが設定をきちんと認識すれば、あとはWeb Configuratorでキーマップの設定が可能になります。 これまた、残念なことに、BLE化する前のキーマップをJSONファイルで保存してなかったので(泣きそうw)、QMKのkeymap.cのファイルをもとに、ブラウザ上でがんばって設定しましたw また、新しい設定ではBLE関連のキーをマッピングとして追加しています。

Bluetooth接続

あとは、接続確認です。 MacとWin2台と接続するのですが、Win→Mac→Winの順番でBluetoothの接続をやっていたら、なぜか3つ目のWindowsで接続候補に出てくるけど、接続しようとするとタイムアウトをするという現象に遭遇しました。 MacのBluetoothの設定を一旦削除してから、Win→Win→Macの順番でペアリングしたところ問題なく接続できました。ただ、これが本当の対処なのかどうかは不明です。3番目だと接続できなかったWindowsマシンは再起動もしてみたのですがダメでした。この辺よくわかってないなぁ。

まとめ

ということで、Corne Lightに引き続き、Sofle Keyboard v2もBLE+LPME化に成功しました。 導線なども使わずにLPME対応ができたので見た目もすっきりしています。 これで、KVMスイッチだと2台までしか切り替えできなかったのが、3台をひとつのキーボードで操ることができるようになりました。 だいぶ楽になりそうな予感がしています。

まだ、完ぺきではないので、次のような対応をやっていく予定です。

  • ロータリーエンコーダー対応:BLE以前はQMKのkeymap.cの中でロータリーエンコーダーの動作を記述していたので、BLE Micro Proでどうやるのかを調べたい。encorder.jsonというファイルがあったのでその辺ではないかな?
  • OLED対応:Corne Lightの時と同様に、OLEDが点かなくなったのでこの辺りを調べたい。

ということで、とりあえずキー入力するのには困らない程度にはできたので、より便利にする方法を時間を見つけて模索する感じになりそうです。 あと、KiCadも面白そうなのでこっちもちょっと触ってみたくなってきたかも?


comments powered by Disqus

See Also by Hugo


Related by prelims-cli