背景

  • HHKBを20年ほど利用していた
  • 五十肩を発症
  • Keyball61を半年ほど使用
  • プログラマは数字と記号を多用するので少なすぎるキーは使いにくかった
  • フラットでないエルゴノミクスキーボードを試したくなった
  • 日本でCosmosを作った例が見つからなかったので書いてみようと思った

ソフトウェアはプロでありMCUやファームウェアの心配はまったくない。電子回路についてはGPIOやSPIに機器を繋ぐ程度のデジタル回路ならわかるがアナログが絡むとさっぱりわからない。3DプリントについてはCADやモデリングの経験がまったくない。 自作キーボードの経験なし。Keyballはアリエクで完成品を買った。

Cosmos Keyboardsとは?

  • 自分の手をスキャンしてレイアウトを微調整できる

こだわり条件

  • 左右分割である: 自然に肩をひらいて五十肩を予防する
  • ポインティングデバイスがある: プログラミング中に一瞬だけマウス操作をするのが目的。アプリを完全にキーボードだけで操作するためにショートカットを覚えきるのは難しい。ブラウジングなどマウスを主に使うときはキーボードから手を離して独立したデバイスを使う。
  • レイアウトを変えた後の組み立てが速い: 使いながら細かいキー位置やカーブを調整したいが、印刷するたびにはんだ付けなどはしたくない。ソケットを印刷してキーをはめ込むような構造にしたい。初回のパーツ作りは頑張る。
  • 無線である: ケーブルを無くしたい。無線だと相当な大容量バッテリーでないとLEDは厳しい。
  • 変態的なレイアウトではない: Macのキーボードも多用するので標準から外れすぎないようにする。
  • モジュラーである: 必要なパーツだけを交換できる。

いきなり完成を目指さない。何度も調整して作り直すことが前提なので、簡単に組み立てができることを重視する。

キーソケット

利用可能なソケットはParts - Cosmos Keyboard Generatorで確認できる。 キーには、

  • キーキャップ

  • スイッチ

  • ダイオード

  • 配線 が必要だ。

  • ホットスワップ: スイッチ単独で交換可能であるか。押し心地を変えたいとき、簡単に異なるスイッチに交換できる。

  • PCB: ケースを交換可能であるか。キーレイアウトを変えてケースを印刷したとき、簡単に配線ができる。

スイッチのホットスワップ

  • Mechanical Keyboard Switches Kailh PCB Socket
    • このパーツ用に設計されたPCBが必要だが、事実上標準になっているソケット。
  • Mill-Max
    • PCBのホールにハンダ付けするソケット。ホットスワップ非対応PCBをホットスワップ化するときに使える。CosmosではKailhソケット対応PCBから選べばいいので、わざわざこれを 使う理由がない。

MX: Direct Solder

Cosmosで最もシンプルで互換性の高いスイッチソケットです。MXスイッチに直接はんだ付けする場合や、SU120、MxLEDBit、CyboardのPCBを使用する場合にこれを使ってください。 CosmosのすべてのMXソケットは、Cherry MX switchesおよびそのクローンと互換性があります。これには、Gateronスイッチ(ロープロファイルを除く)、Gazzew、Outemu、Akkoなどが含まれます。

ソケットに窪みがありMXスイッチのツメでケースに固定する。 「直接ハンダ付け」と表記されているが、スイッチにハンダ付けするわけではない。SU120のようなPCBを使えばKailhソケットが使えるので、ホットスワップできる。ただ、自分でPCBを作るならPlum Twist PCBを採用したほうがいい。 ケースとの固定がサイドの爪だけなので押下に弱い。

MX + Plum Twist PCBs

Plum Twist PCB Cosmosのために設計されているPCB。ケースにはPCBを回転させてはめ込むので押下に強い。 Kailhソケットとダイオードが実装されており、LEDを追加できる。 配線はランドにハンダ付けとホールの2つがある。 Cosmosストアで販売されているが、設計はOSSなので自分で製作できる。これを書いている時点では在庫が無かった。 配線もPCBのホールにピンソケットを付けてジャンプワイヤを使えば楽になるはず。 Chocスイッチにはサイズの関係で未対応となっている。Plumpkin Flex PCBかDirect Solderになる。

MX + Pumpkin Flex PCBs

Pumpkin Patch PCB Plum Twist PCBに加えてフレキシブルケーブルでキー同士が接続済みのPCB。 配線を省略できる。 マトリックスを変更する場合はコスパが悪い。 一切ハンダ付けをしたくない人にはいいかもしれない。

やること

  • Plum Twist PCB
    • ガーバー確認して36個のものであればそのまま発注
  • 購入
    • Kailhソケット x72
    • 1N4148 Diodes in SOD-323 Package x72

Plum Twist PCB作る

プロジェクトは1キーなので、KiKit — Automation for KiCADでパネル化するのが良い。 podman run -v $"(pwd):/kikit" yaqwsx/kikit--help PCBAをやりたかったがKiCadの使い方が分からなすぎたので一旦自分で実装することにした。

JLCPCBで発注する plum-twistのリポジトリにあるgerbers.zipをアップロード 納品形式を「JLCPCBによる面付け」にする パネル形式を「6x6」にする エッジレールを「上側と下側」にする 面付けなしの数量が欲しいキー数になるようにパネル数を適当に選ぶ。5パネルでいいだろう。 l