Keyball61ユーザーがKeyball44も作ってみた

Keyball61ユーザーがKeyball44も作ってみた

はじめての自作キーボードにKeyball61を作った私ですが、この度2台目にKeyball44を作りました。

Keyball61を作ってみた記事はこちら

必要な道具を揃える

必要な道具はKeyball61を作った際に揃えていたので新たに買う必要はありませんでした。
でも、LEDは熱に弱いので温度調整機能が付いている方が付けやすいとか、
こて先は平らなタイプが良いという話を耳にしたので、これを機にそれなりの道具を揃えることにしました。

今回使用した道具やパーツの一覧です。

名称 購入先 備考
Keyball44キット 白銀ラボ オンラインショップ
ProMicro 白銀ラボ オンラインショップ 左右1つずつ必要なので合計2個用意します。
type-bは端子がもげやすいのでtype-cがおすすめ
USBケーブル Amazon ProMicro側のUSBのtypeとパソコン側のUSBの形状に合わせて選びます
TRSケーブル Amazon 左右のキーボードを繋ぐケーブル
間にPCを置いて使う場合は0.45mあればOK(L型が干渉しない)
デスクチェアのリストレストに合わせて置く場合はもう少し長いと安心
温度調整機能付きはんだごて Amazon 無段階で温度調整可能で高温に弱いLEDを付けるときにも安心
コテ先 2C型 Amazon 平らなこて先の方が作業しやすいと聞いて
精密プリント基板用はんだ Amazon 100均より細めで量の調整がしやすく臭くない
はんだ吸い取り線 Amazon 失敗したはんだを除去するため、初心者必須
フラックスリムーバー Amazon はんだごてを長く当てた場合に基盤に残る焦げ跡の除去
LED SK6812 MINI-E Amazon 中国発送なので届くまでに1ヶ月ぐらい掛かる
キースイッチ Everglide Oreo AliExpress Holy Panda Like種の軽めのタクタイル
LowProfileキースイッチ Choc v1 リニア Pink Daily Craft Keyboard  指を乗せただけで押せるぐらいの軽さ 
キーキャップ Akko ASA Clear Keycap White v2 Akko Official Store LEDの灯りを透過する透明キーキャップ
トラックボール 34mm Amazon 2個目ともなると人は変わった色へ走るようでピンクにしました
実物は女子感のある明るいピンクではなく男梅みたいなピンク
ピンセット Amazon ダイオードの取付け時に必須
紙やすり Amazon
マスキングテープ Amazon 裏返してはんだ付けするパーツがあるため必須
精密ドライバー Amazon
キーキャップ&キースイッチ引き抜き工具 Amazon キーキャップは頑張れば工具なしでも抜けますが、キースイッチは無理です、必須

はんだ付けのコツ

自作キーボードの製作の成功ははんだ付けにかかっていると言っても過言ではないので、意識しているポイントを記載しておきます。

※専門家でもなく、仕事ではんだを使う人間でもない素人の見解です

はんだの特性を理解する

  • 一度溶かしたはんだや、長く温めたはんだは徐々に表面張力が失われて丸くならないので取り替える
    • 1,2箇所はんだ付けを終える度にコテ先に残ったはんだも除去する
  • はんだは毛細血管現象によって母材にある細かい凹凸、結晶の隙間などにそって入り込む
    • コテ先と母材の間で三角の隙間を作ってはんだを流し込むイメージ
  • 事前に母材にコテ先を1,2秒当てて温めてから隙間に近い箇所にはんだを溶かす
    • はんだが溶かし終えてから上手く流れない場合は拭うように軽くコテ先を動かしたり傾ける
    • はんだを溶かし終えてから気持ち1秒ぐらいコテ先をそのまま当てて隙間にそって入り込ませる (流れていく様子を見るのが気持ちいい)
    • コテ先をさっと離す

はんだ付けに手間取っていると母材の基盤が焦げたように変色します。
これははんだに含まれるフラックス(はんだ促進剤)が焼けているもので、フラックスリムーバーを塗ることでキレイになります。

ビルドガイド

Build Guide for Keyball44

https://github.com/Yowkees/keyball/blob/main/keyball44/doc/rev1/buildguide_jp.md

LEDの取り付けタイミングは要検討

ダイオード取付後のタイミングでLEDを取り付けると、他のパーツが干渉しないので作業がしやすいです。
ただし、全て取り付け終えるまで一度も点灯確認することが出来ません。

一度LEDを付けたことのある経験者は良いですが、まだはんだ付けにも慣れていない初心者は後から取付→点灯確認を繰り返しながら進めることをおすすめします。
(ぶっ壊しながら)すべてのLEDを付けてしまった場合、LEDを一旦除去していくことになりますが、はんだ吸い取り線を使っても簡単にポロポロと取り外せるものではないので非常に苦労することになります。

テスト用ファームウェアで動作確認

テスト用ファームウェアを書き込むとLEDが赤→緑→青と派手に点灯し、ピンセットなどでキースイッチの動作確認をしますが、ここで問題が発生しました。

LEDは一発で全点灯しましたが、キースイッチが全滅でした。
いやさすがに全滅はおかしいと思い、テスト用ではないファームウェアを書き込みREMAPのTest Matrixから入力確認すると、すべてのキースイッチが問題なく動作することが確認できました。
原因は分かりませんが、テスト用ファームウェアでキースイッチが反応しない場合は一度REMAPを試してみると良いかもしれません。

作り終えて

Keyball61からの移行のため、第一印象は「軽い!」でした。
サイズも一段少ない分小さく携帯性が良いため、持ち歩く人には重要なポイントになりそうです。

キー数が減ったことによる影響はほとんどありませんでした。
一部の記号を各レイヤーへ配置するよう変更しましたが、61キーを使っていたことでキーマップが変わることに対して私自身がすっかり慣れていました。
また、キー数が減ることで用意するキースイッチの数が減るのは嬉しいポイントです。

汎用的なキーが沢山欲しい方はKeyball61
移行負荷の少ない最小限のキーでスマートさが欲しい方はKeyball44
とにかく最小限のキー数で小指の仕事を減らしたい方はKeyball39が良いと思いました。

ただし、Keyball39は両端の1列が無いことを充分理解した上で選ぶことをおすすめします。
左のShift, Ctrl, Tab, Escや右の長音記号やシングルクォート、スラッシュなどのキーがありません。
Shift, Ctrl, Tabは、それぞれZ, A, QのHoldに割り当てたり、記号類はレイヤーキーと合わせる必要があります。
プログラマーは様々な記号を使用しますが、一般的な方はそこまで記号を多用しないため押しやすいレイヤーとキーに割り当てる必要があります。
一般的なキーボードから大きく変わり、直感的に押せるようになるまで脳に負担が掛かるので39キーは特に移行期間と覚悟を持って挑むことをおすすめします。

一部まだ届いていないパーツがあるので一Keyball61から流用していますが無事完成です!

透明キーキャップver

キーマップの共有

macOS, プログラマー, Vimmer向けのキーマップです。

programmer’s keymap – wonwon eater

Layer0

Escは左CtrlのTapに配置する

Ctrlキーは修飾キーなので押し続けるHOLDしか使用しないため、Tapにキーを割り当てられます。
VimではEscキーを多用するのでホームポジションのまま押しやすい場所へ配置しています。

CmdキーをTab位置と右手親指位置に配置する

macではCmdキーを押しながら使用するショートカットが多くあります。
ショートカットによってホームポジションから大きく崩れるため、
右手側のキーと組み合わせて押す用に左手Tab(Hold)にCmd
左手側のキーと組み合わせて押す用に右手親指(Hold)にCmdをそれぞれ配置しています。

片手でマウス操作が出来るようにクリックキーを配置する

右手片手だけでマウスカーソルを操作したい場合のために、左クリック・右クリックを右手位置に配置しています。
少々押しづらい位置ですが片手で操作するときだけ使用するため、ここに割り当てています。

Layer Toggle (TG)キーを使用する

トラックボール横などのホームポジションからは押しづらいキーにTG(1)を割り当てます。
これは一度TapするとLayer1に切り替わったまま固定され、もう一度Tapすると元のLayerへ戻ることが出来ます。
マウス操作が中心となる作業をする場合、クリックするためにLayerキーを押しっぱなしにすると疲れるため、トグルキーを活用すると便利です。

Layer1

左手親指のホームポジションから入るレイヤーのため、使用頻度の高いキーを配置します。

矢印キーをHJKLへ配置する

Vimmerにはお馴染みの上下左右の矢印キーは押しやすいLayer1に配置します。

マウスクリックキーを配置する

トラックボールを動かす手ではない左手側にクリックキーを配置することで、右手はボール操作に専念できます。
F: 左クリック
D: 中央クリック
S: 右クリック

スクロールはLayer3の状態でトラックボールを回転させることでスクロール出来ますが、よりクリックと近い位置で行えるようにLayer0のF(Hold)にLayer3への切り替えを配置しています。
こうすることでスクロールする場合は左手ホームポジションから親指のレイヤキーを外すだけでスクロールに切替可能です。

入力モード切り替えキーを配置する

トグルで英数字←→日本語を切り替えていると、いまどちらにいるのかモードを見ないと分からなくなるため、押せば必ず英数字・日本語へ切り替えられるキーを配置します。

デフォルトでは親指位置に配置されていますが、意外と親指キーを動かすのは疲れを感じます。
入力モードは結構頻繁に切り替えるため、押しやすいLayer1&右手ホームポジションに配置しています。

記号はUS配列標準に従って配置する

数字キーの記号はUS配列標準の並びで配置しています。

Layer2

Layer2は左手親指を一列ずらした位置にあるため、Layer1の次に押しやすいキーになります。

テンキーを配置する

数字はテンキー配列で配置しています。
Keyballは格子状のカラムスタッガードのため、テンキー配列を割り当てても電卓のように押しやすいです。

Shift+記号類を配置する

[ ] などの記号キーはShiftキーを押しながら入力すると { } となります。
Layer1に[ ]を割り当てているため、Shiftキーを押しながら入力すると3つのキーを押す必要があり負担です。

Layer2の同じ位置に{ }を配置することで、同時押しキー数を減らしながら脳への負担を減らします。

Layer3

Layer3は押しづらい位置にあるため、使用頻度の少ないキーやLED・Keyballの設定キーを配置します。

ウィンドウ配置キーを配置する

ウィンドウを左半分、右半分、全画面で表示するキーのショートカットの組み合わせを1キーに割り当てることで、Vimカーソル配置のイメージでウィンドウ分割を1キーで操作できるようにしています。
割り当てているショートカットはRectangleのデフォルトキーとなります。

ファームウェアをカスタマイズする

Keyballはキーボードの制御にQMKというオープンソースのファームウェアを使用しています。
QMKは非常に多機能で全ての機能を有効にすると容量オーバーで書き込み出来ないため、Keyballでは一部機能が無効化されています。

QMKに関するドキュメントはこちら

オーディオコントロールを有効にする

PCのボリュームコントロールに関する機能はデフォルトでは無効化されているため、有効化します。

VIAからの卒業

VIAとはキーのマッピングをREMAPから行えるようにするための機能です。
大変便利な機能ですが結構な容量を占有してしまうため、LEDの発光パターンを減らしたりして容量不足に対応されています。

キーのマッピングはkeymapにキーコードを直接指定できるため、ある程度キーマップが定まったらVIAを切ってしまうのも手です。

Automatic Mouse Layerでマウスクリックのレイヤー移動を自動化する

QMKのバージョンを0.19以上に更新すると、QMKに追加されたAutomatic Mouse Layerオプションが使用できます。
この機能はトラックボールを動かすと自動的に指定レイヤーへ切り替え、一定時間が経過したら基本のレイヤーへ戻してくれます。

QMKのバージョンを更新する

keyballは別途qmk/qmk_firmwareをcloneしてきてビルド時に参照しています。

clone時に現時点で最新の0.19.11を指定します。

$ git clone https://github.com/qmk/qmk_firmware.git --depth 1 --recurse-submodules --shallow-submodules -b 0.19.11 qmk

後方互換がない変更(breaking changes)が結構入っており、そのままではエラーとなりビルドが出来ません。
ざっと見た限りでは私は使用していないオプションに関係する変更のため、以下のcommitのようにコメントアウトだけして最小限対応としました。

commit: update qmk 0.19.11

バージョン更新後のFWは、ちゃんと左右のキーボードそれぞれに書き込みます。
キーボード全体を管理するFWが変更しているため、片方だけでは正しく動作しません。

マウス専用レイヤーを作成する

Automatic Mouse Layerはマウス関連のキー、または切り替え後のレイヤーにマップされているキーを押した場合は入力を反映し、元のレイヤーへ戻すまでの猶予時間がリセットされます。
別の言い方をすると、Automatic Mouse Layerで変更されたレイヤーにマップされていないキーが押された場合、元のレイヤーへ戻した上で入力を反映します。

具体的には、トラックボールを動かしたもののマウスクリックをせずに文字列を入力したい場合や、マウスクリック後にすぐに文字列を入力したい場合は猶予時間を待機せずに元のレイヤーに戻して欲しいです。
その際にマウス関連のキーをマップしているレイヤーに他のキーをマップしていると、そのキーを押した場合は元のレイヤーに戻してくれません。

新しい4つ目のレイヤーを作り、マウス関連のキーだけマップし、Automatic Mouse Layerで移動するレイヤーを4つ目のレイヤーに変更します。

commit: add mouse layer

KeyballはLayer3の間はスクロールモードになります。
そのため、Automatic Mouse Layer機能はLayer3に居る間は無効化し、それ以外のLayerでは有効化する必要があります。
以下のcommitの通り、Layer3以外で有効化するように変更が必要です。

commit: Disable Auto Mouse Layer at Layer 3

ガジェットカテゴリの最新記事