Ambi-GL Ver2(トラックボールモジュール対応)について

0.はじめに

今回は、サリチル酸(@Salicylic_acid3)さんが設計された”GL516ケース"に対応した自作キーボードの”Ambi-GL"が、今度はaki27(@aki27kbd)さんが設計された”トラックボールモジュール”へ対応させたぞ、というお話です。とはいっても設計秘話的なことは全然なく、運よく先行して手に入れたことをきっかけに作っただけであります。宜しければ最後までご覧ください。

1.Ambi-GLとは?

Ambi-GL”は、Alice配列、中央に45度角に配置された6つのキーが特徴的なAlice配列の自作キーボードです。”ambidextrous(両手利きという意味の英語)"からAmbi、GL516ケースからGLを取って”Ambi-GL”と名付けました。

cerbekos00.hatenablog.com

2.トラックボールモジュールとは?

"cocot46plus"でお馴染みのaki27さんが設計された自作トラックボールキットです。

booth.pm

なんとこちら、中央の2u×2u(約38mm四方)のプレートは切り離すことでトラックボールモジュールとして扱うことが可能で、ProMicroの空きピンに接続したり、対応する基板を作ることでオリジナルのトラックボール付き自作キーボードが簡単にできてしまいます。

前からトラックボールを自作キーボードに乗せたいなぁなんて思っていたのですが、設計難易度の高さから諦めていました。まさかこんな夢のようなモジュールが出るなんて!

3.設計

運よくトラックボールモジュールを手に入れることができた私は、さっそく実物を組み立て、大きさや操作を体感しながら自分のキーボードへの取り付けについて検討していきました。そして目を付けたのが”Ambi-GL”さんです。さっそくトラックボールモジュールオンすると…

Ambi-GL(Ver1)にトラックボールモジュールをオンしたところ

なんということでしょう…!トラックボールモジュールが取り付けられるのを待っていたかのようなジャストフィット。下の2つのキーも私たち元からマウスキーですけどと言わんばかり。

そのまま実装したかったのですが、2つのエンコーダーを搭載していることもあり、ProMicroに空きピンがなかったため新たに基板を起こすことにしました。基板や回路の設計はこちらで公開いただいている情報をもとに行います。

github.com

と言っても今回の場合、キーボードの基板自体にセンサーを搭載する設計をするわけではなく、2u×2uのモジュールを取り付けるという形です。モジュールを取り付ける位置を決定し、5つのピンと配線を通す設計を行います。

公開されているトラックボールモジュールの図面(DXF)を重ねながら設計
トラックボール用の5つのピンは、Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Verticalを流用して作成

ピンがトラックボール用途に必要となるため、既存の”Ambi-GL”から次の点を変更することにしました。

  1. ロータリエンコーダを削除
  2. 中央6キー用のLEDバックライトを削除(ついでに他のLEDも)
  3. 代わりにトラックボールの状態を示すOLEDと左右のLEDを搭載

OLEDとLEDに関しては、本家をリスペクトして上部に同じように配置してみます。

プレートにもトラックボールモジュールとOLEDを装着するための穴を開けます。中央はトラックボールが無い場合でもスイッチが使えるように切り取り式に。

4.試作Ver

設計の初期段階では、実物を触ってみた感触からトラックボールモジュールの高さを抑えようと基板自体も切り離しができる設計にしていました。

しかし!トラックボールモジュールは希少なもの…入手性を考慮すると、トラックボールモジュールは取り外し可能にしてスイッチに戻せる仕様が理想です。ということで、トラックボールモジュールの高さを許容し、基板を切り離しせずスイッチにも戻せるように方針転換しました。

5.完成Ver

完成したものがこちらです。

見た目は試作と一緒...

トラックボールモジュールがプレートから浮きでてセンサーの灯りが漏れる

基板に5ピンのピンソケットをはんだづけし、トラックボールモジュールから出るピンを差し込み、ねじ止めするスタンダードな構成です。

ソケットは黒いプラが取れてピンだけになっています

この場合、トラックボールモジュールからスイッチ4つへ戻すとき、基板側のソケットが干渉してスイッチが取り付けできません。そこで上記のように黒いプラを取り去り、スイッチ側の干渉部分をニッパーカットする力技を編み出しました。真面目に検討もしてみたのですが、スプリングピンヘッダによるスワップ化は高さが足りませんでした。L字のピンとソケットを使ってピンの位置をずらす作戦も高さが足りないのと、トラックボールモジュールの汎用性が損なわれると考えてやめました。

後から気がつきましたがモジュールの背面にコネクタを取り付けられるようなプリントが!これを使えばよかったです。

スイッチバージョン

続いてはプレート。🔧完成度を上げる|GL516 デザインガイドを参考に装飾してみました。

キープアウトの装飾は、Ambiらしいひし形のデザインに変更。

ひし形の装飾

OLEDの位置には切り取り可能なロゴを配置。

OLEDを取り付けた場合同じようにロゴが表示されるように

このロゴのデータに関しては、1.038の日記やその先のリンク、QMK FirmwareでOLEDに好きな画像を映すを参考にさせていただきながらimage2cppで作成しました。ロゴのイメージファイルからbyteコードを生成するまでは簡単なのですが、そのコードをQMK標準のロゴと入れ替えるところが大変で、ツールを探すも動かなかったり、QMK標準でなくロゴだけにしようとしてもコンパイルエラーが解消できずと紆余曲折ありながら、最終的には地道に手作業で調整して乗り越えました。

オレンジの部分を入れ替えるため、全体のbyteコードからその場所を特定して入れ替え

ファームウェアは、aki27さんが公開されているトラックボールモジュール向けファームウェア(以下、cocotFW)をAmbi-GLのファームウェアへ移植しました。cocotFWはOLEDには現在のLayerや、Modeなどのトラックボールの状態が表示できるようになっています。今回はこれに改変を加え右上にRGBアニメーション番号とHueを表示させるようにしてみました。

右はHue図。QMKドキュメントサイトより引用
https://docs.qmk.fm/#/feature_rgblight

またcocotFWではカスタムキーコードとして下記の機能をREMAPから設定できるようになっています。私がカスタムキーコードとして定義した「OLEDの表示切替キー」と一緒に、REMAPのUSERKEYのマップ機能によりマウスで設定が可能です。

cocot46plusのビルドガイドより引用(https://github.com/aki27kbd/cocot46plus/blob/main/doc/buildguide.md

このカスタムキーコードはすごく便利で、OLEDで状態を数値化しながらトラックボールの感度調節がキーボード操作だけ調整ができます。すごく完成度の高いファームウェアだと感じました。

最後に使い心地について触れていきます。

トラックボールモジュールの操作感について、私は以前よりトラックボールマウスを使い続けている人間なのですが、さすがに本家のマウスに劣るんだろうと思っていました。ところがボールの精度や操作性について申し分なく、むしろ横スクロール操作がぐりぐりできて、こちらのほうが利便性が高いまであります。

オレンジが上下でブルーが左右。この角度で運用

一方で本体+34mmボールはかなり高くなります。私の場合はロープロファイルのキーキャップを使っているため余計に高低差が際立っています。操作においては問題ないのですが指を伸ばす必要があるので疲れやすいと感じました。

横から見た図は山のようですね

私が親指トラックボール派ということもあり、これでマウスが不要になるかというとそうはならないのですが、マウスなしでも全然余裕でやれちゃう、という感じです。ノートパソコンのタッチパッドなどがメインの方だと完全代替できるのではと思います。(ということは、私の場合白銀ラボさんのKeyballシリーズ(白銀ラボ – Shirogane Lab)により完全にマウスレスが...)

ただ何よりも『ちょっと指を伸ばせばそこにトラックボール』という操作体験はとても新鮮で使っていて楽しいですし、とても便利です。

6.頒布について

現状4セットをBOOTHで頒布できればと考えています。初のPCBAに挑戦し、ダイオード実装済みの基板となっております。あと、実はちょっとPCBに変なマークがついています。まだ作成していませんが頒布用の商品ページを作成するときに記載しますのでご確認ください。

cerbekoskeyboard.booth.pm

7.おわりに

以上トラックボールモジュールに対応したAmbi-GLを作ったというお話でした。

素敵なプロダクトを制作いただいたaki27(@aki27kbd)さんへこの場を借りてお礼申し上げます。自分では専門性が高くて作れないけれど、”モジュール”によって誰でも手軽に実装できるというのはとても素晴らしいことだとあらためて感じました。

そもそも基板自体もサリチル酸(@Salicylic_acid3)さんが公開されているGL516 デザインガイドで作成したものですし、こうした先駆者の皆さまのおかげで自作キーボードを楽しむことができております。感謝です。

GL516とトラックボールモジュールで、みなさんも自分だけのオリジナルレイアウトのキーボード作成にチャレンジしてみてはいかがでしょうか。

それでは、良いキーボードライフを。