Caravelle BLEのビルドメモ

Keyboard

メインのキーボードはやっぱり一体型。60%でも40%でもやっぱり一体型なんだけど、それでも物欲に強く訴えてくるキーボードを知ってしまった…。

Caravelle BLEは、その名の通りBluetooth接続の分割型キーボード。そして40%サイズながら48キーあるので、コンパクトなボディだけど一般的な40%よりもキーが多く、Vortex Coreの47キーよりも多いっていうこと。練習も兼ねてこの投稿もCaravelleを使って書いているのだけども、縦の列が非Staggeredだけど、横のラインは段差ありとう配列。頭で考えても打ちやすいのか、難しいのか分からない。もうこれは打ってみるしかないよねっていうことで、在庫が補充された時点で速攻ゲットしたわけです。

Caravelle-BLE 自作キーボードキット - SatT Keyboards - BOOTH
自作キーボード「Caravelle BLE」のキットです。 トップマウント方式のケースによって心地の良い打鍵感を実現した左右分離型の無線通信対応キーボードです。 ケースの色は全6色から選択いただけます。 ・Matte Black ・Marble White ・Deepsea Blue ・Galaxy Black ・Cr...

以前にAttack25に載せたBLE Micro Proと同じ様に別途チップを購入して使用するものだと思いこんで、今回もガッツリと別途2枚購入していたのだ。実はCaravelleには最初からBLE Micro Proが実装されているのだったていうさ… orz

いや、ちゃんと買う前に読めよっていうだけの話なのと、余ったBLEで何かまた何か作るだろうからまぁいいんじゃないかなと納得しておこう。うむ。

そんなわけなので、ビルドはサクサクと進む。ビルドについては非常にていねいなビルドガイドが用意されているので悩む部分はほぼないのだけど、今回自分が引っかかったところをメモに残しておこうかと思う。

ちなみに内容はこんな感じ。

↑この消音フォーム。偉すぎるわけなんですが、プレートと共に一緒に梱包されていました。で、てっきり自分でカットするもんだと思いこんでいたため、同梱されてないと確信して作者様に「入ってないっす!」ってメールしちゃった…。えっとプレートと一緒に入ってますのでよく見てねとのご返信。顔が真っ赤になるっていうのはこういう状態だろうか。細かいパーツは全部開封して並べたのにプレートだけそのままにしていたため超恥ずかしいことをしてしまった。ほんとーにゴメンナサイ!これだからオヤジはだめなんだと心に刻む。

さあビルドしよう
  • 電池基盤を完成させる
  • スイッチをハンダ付けする
  • ケースを完成させる
  • ファームウェアをいじる

やることはこの4つ。

電池基盤は表面実装が細かいので気を使う以外は特に悩むことはなく、ケースにはめながら配線の向きを間違えないようにハンダ付けすればOK。

注意点その1 電源を入れちゃう前にやっとかないと後悔

ここテストに出ます。人の10倍くらい不注意なことで定評のある私なので当然ダメな方を踏んじゃったけども、ビルドガイドに沿ってバッテリーのモジュールを接続する前に、必ずバッテリー側もチップ側もスイッチをOFFにしておくこと。なんでかというと、両側が共に通電した時点で左右がペアリングしちゃうから。一度ペアリングされてしまうと、ハードリセットしないと動作確認ができなくなるからなの。

必ずスレーブ(右手側)の電源のみをONにしてWindows 10などでBluetoothデバイスの追加をしようとして「Nordic UART」がアドバタイズされている状態になっていることを確認する。

もし、私のように先に両側がペアリングされてしまっちゃうとペアリング解除をする必要がある。そのためには右側「UIO」のキーを押しながら電源をONにする必要があるのだけど、動作確認のこの時点ではスイッチがハンダ付けされていないのでちょっと面倒。結局ピンセット3本を差し込んだ状態を片手で指がつりそうになりつつ保持しつつ、もう一方の手で電源をオンにするっていう芸当を達成。うん、慣れたからもう誰に頼まれてもできそう。無事に「Nordic UART」が表示された。左手側も再び通電させて「Caravelle-BLE」がWindowsで認識されたので、この段階はここで終わり。ふーっ。

いや待てそうだった。さらに電源を押しながらDFUモードに入れることも確認しておく。そしてマスター側も同じことをしてやっと、ふーっ。

プレートを付けてスイッチをハンダ付け

スイッチはハンダ付け以外の方法はなくて、ソケットを付けてスワップ可能にできるかなと思ったけども、残念ながらスイッチ足の穴のサイズが小さくて入らなかった。ので直接ハンダ付け。また、打鍵音がさらにソフトになるということでオプションのPOMプレートも購入したのだけど、こちらはなぜか片方だけ装着後にどうしてもプレートが基盤側に落ちてしまう。一度装着したもののスッポンして全部やり直しをしても同様の症状だったので、何か私が悪いんだろう。結局オリジナルのプレートに戻して何事もなかったかのように解決。

その後の補足です。POMプレートが落ちてしまう件にについて作者の方に情報をいただきました。テスト時にAlpacaやGateron黄軸で丁度よく、BoxやCreamがきつめ、Zeal系がゆるめ(特にスイッチフィルムを挟んだ場合)があったとのことでした。もちろん個体によって差があるわけですが、私の場合はZealPC系のTealios V2でしたので、結果ゆるめということになったのかなと思われます。手元にあるのはZeal系ばかりのため、結局もう一方も付け直して現在は両手ともにPOMではないオリジナルのプレートとしました。
https://www.digikey.jp/product-detail/ja/mill-max-manufacturing-corp/0305-2-15-80-47-80-10-0/ED90584-ND/2639493

現在、左手オリジナルプレート、右手POMプレートっていう妙な状態になってしまっているのだけど、左右の打鍵感は気にならなかった。というか後で分かったのだけど、私はデスクマットを使っていてその上にキーボードを置いているから感覚の差がわからないだけだった。デスクマットなしで直接木製のデスクの上だと明らかに音に差があった。やっぱり右手も時間があるときにスッポンしよう…。

そうそう、BLEのチップが見えるのはこれが最後で、プレートを付けると直接触ることができなくなる。ので、指で触っておきたいとか写真を撮っておきたいと思ったら、この時点でやっておくこと。

ケースを準備する

ケースはネジ穴パーツを3Dプリントのケースに熱しながらねじ込む必要があり、それ自体は温調ハンダごてがあれば230度くらいで特に困ることはないのだけど、最初に位置決めをするときにどうしても斜めになってしまって、結果実際の位置よりも少しずれて入り込んでしまうことがあった。位置決めをする前にほんの僅かに穴をテーパーさせてからやった方がよかったのかも知れない。ただあまり削っちゃうとせっかく融解させて固定する質量が減っちゃうのかもだけど。

ちなみに練習用のブロックと予備のネジ穴スロットが付属しているので、これを使って溶解させながらの圧入の練習が可能になっている。なんていう作者様の優しさなんだろう…。

そしてケースを完成させれば、あとは組み上げてキーキャップをはめれば、ハード面の組み立ては完了。

少し心配していた背の高さだけど、Tofu60を使っている状態からの移行では何の違和感もなかった。特にリストレストも必要なさそうだ。

ファームウェアをいじる

ファームウェアをいじるといっても、ほとんどキーマップ以外いじる必要もない。これもビルドガイドにしっかりやり方が書いてあるので迷うことなくいける。チップ単体でのBLE Micro Proの場合にはUSB端子があるので、Windowsに接続してマスストレージとして認識させた状態でドラッグ&ドロップすればファームウェアを書き換えられたり、キーマップも直接書き込むことが可能なので楽なのだけど、CaravelleにはUSBポートがないためちょっと面倒になる。(直接PCから書くためにはデバッガーを使う方法もあるけど逆に面倒になるのでやってない)

そしてスマホがあればBluetooth経由でのファームウェアの書き込みができるのが楽だった。

msys2などを使ってファームウェアをビルドする。ビルドガイドをちゃんと読めばこれも特に問題なし。ちゃんとね。注意が必要なのはBMPとは別バージョンのSDKをインストールしておくこと。自分は当然のように斜め読みしたので最初に斜め読みした結果エラーになった。

必要なのはNRFSDK v12.3.0の方。BMPでは「nRF5_SDK v15.0.0」なのでここが勘違いしたところ。正しいSDKを入れれば問題なくビルドできるはず。

パスを通しておく。

export NRFSDK12_ROOT=<path to sdk> #例 /c/dev/nRF5_SDK_12.3.0_d7731ad

私の場合はcドライブ直下の「dev」ディレクトリに解凍したSDKフォルダ「nRF5_SDK_12.3.0_d7731ad」を入れたのでこのようになる。

export NRFSDK12_ROOT=/c/dev/nRF5_SDK_12.3.0_d7731ad

これを打っておく。

nrfutil.exeをダウンロードして「~/qmk_util」に入れておくのも忘れないように。BMPを以前に使っていればすでに入っているはず。

で、keymapディレクトリのdefaultをコピーして自分専用のディレクトリにした状態でキーマップをいじる。デフォルトのままだと自分には厳しかったので結構変更した。そして「Alt-`」でのIME切り替えがしたかったのでキーマップのレイヤーもひとつ増やした。

そしてもうひとつ。後になって感じたのは入力時のラグ。デフォルトのままだとどうしてもワンテンポ置くような感じ。これについては気になったら調整してねと書かれていたので、以下の数値をいじった。なんかまるっとコピっちゃってすみません。ビルドガイドの一番下に書かれているものです。

パラメータ定義
BLE_NUS_MIN_INTERVAL左右間の通信間隔の最小値(ms) 下げるとマスタとスレーブ間の遅延が減るものの、消費電力が増える。デフォルトは30
BLE_NUS_MAX_INTERVAL左右間の通信間隔の最大値(ms) 下げるとマスタとスレーブ間の遅延が減るものの、消費電力が増える。デフォルトは60
BLE_HID_MAX_INTERVAL端末との通信間隔の最大値(ms) 下げると端末とマスタ間の遅延が減るものの、消費電力が増える。デフォルトは90
BLE_HID_SLAVE_LATENCY端末との通信パラメータ 下げると消費電力が増える。HID_INTERVALに反比例させると良い? デフォルトは4

ラグに反比例して電力消費が上がるようです。デフォルトで常時点けっぱなしで3ヶ月は持つようなので全体的に少し下げて現在様子見。結局今のところは特にラグを感じることは無くなって快適に入力が可能になっている。ただ普段遣いではいいのだけど、まだ少しだけスレーブ側が遅延しているような気もしないでもないので、追々調整していきたいと思う。

で、これはcaravelle_ble/config.hに修正を入れるので、調整したい場合にはビルド前に一緒にやっておく。

マスター、スレーブそれぞれにビルドしたら、次はスマフォ経由でCaravelleへ書き込む。その前に両側共にスイッチをOFFにしておく。

ここでも思いっきりアホなことをした。組み立て済みのケースの裏からはバッテリー基盤のON/OFFができるけども、ファームウェアを書き込むためにはリセットスイッチを押しっぱなししておく必要がある。はーっと思いつつ全分解してから気づいたのだけど、実は左右ともに一番遠い下のキーの直下にPCBのスイッチにアクセスできる小窓がついていた… orz…

ええ、いいんです。きっと人はこういうことを経て賢くなっていくんです。ちょっと写真で見づらいかも知れないですが、キーボードを逆さまに見ている図。ON/OFFのスライドスイッチ、その隣にリセットボタンが見えています。ここを細いピンセットなどで同時にやればいいわけです。

ファームウェア書き込みの準備

まずは先程コンパイルしたファームウェアを左右で2つの.zipファイルをメールで自分に送っておく。Dropbox経由でもいいみたいだけど、なぜかGoogle Driveだとうまくいかなかったので私はメールにした。届いたメールをスマホで開いて添付をそれぞれスマホのローカルにダウンロードしておく。

スマフォにnRF Toolboxをインストール。

起動したらDFUアイコンを選んで以下の画面になったら「SELECT FILE」でダウンロードしておいたファイルを選択する。このとき、Distribution packet (ZIP)が最初から選択されていると思うのでそのまま。まずはマスターから。

iOSやAndoirdの環境によって異なると思うけど、ファイルの選択画面になったら、ダウンロードしておいたZIPファイルを選択する。この場合はマスター。「All」を選ぶ。

この時点でCaravelleのマスター側がDFUモード(リセットボタンを押しながらON)になっていれば、「Dfu Targ」というデバイスが表示されるはずなので、それを選択するとファームウェアの書き込みが開始する。20~30秒くらいで完了する。

マスターの電源を切って、同じことをスレーブ側にもやって書き込めば完了。一旦両側の原電を入れ直せばうまく動作するかと思います。

まとめ

そんなわけで無事に作業が完了。まだまだ慣れないながらもすでに10回くらいファームウェアを書き直している。少しキーマップをいじりたいときに丸ごとファームウェアを両側書き込むのは面倒くさいなぁと思いつつも、有線だったらやりますよねっていうことなのでそんなに苦ではないかと思います。一旦できてしまえばほぼ触ること無いしね。

通常のStaggeredじゃないレイアウトが一番慣れるのに苦労しているところです。40%とという小さな中で色々苦労するのも楽しいですね。思っていた以上に満足度が高くて幸せそのものですが、スイッチのON/OFFに毎回ピンセットがなくても裏面で指だけでできるようになっていたらうれしかったなぁと思ったりします。少し削っちゃおうかしらなんて。

あ、そうだ。スッポンしなきゃ!

そんなわけで今回はおしまいです。

コメント

  1. さくら より:

    POMプレートのこの件ですが
    >こちらはなぜか片方だけ装着後にどうしてもプレートが基盤側に落ちてしまう。一度装着したもののスッポンして全部やり直しをしても同様の症状だったので、何か私が悪いんだろう。
    私も左手側で全く同じ症状が発生しました。キースイッチの爪がなぜかうまく噛まないようで、キースイッチとPOMプレートの爪に瞬間接着剤を流し込むことで強引に解決しましたが他の人でもおこっているとは思わず、、、どなたかが今後作るときの参考にと思いコメントを残しておきます!

    • bigobigo より:

      コメント感謝です!こちらは作者の方と連絡が取れまして、使用しているスイッチによってキツイ、ユルイがあるとのことでした。こちらの件、本文の方に補足を入れておきました。

  2. さくら より:

    なるほど。スイッチの種類によるものだったんですね。私もZeal系のZilent V2でした。
    気になっていたポイントであったためすっきりしました。補足などありがとうございます!!

タイトルとURLをコピーしました