Cosmos Keyboard ビルドログ
Cosmos Keyboard Generator で設計した左右分割・有線・トラックパッド付きキーボードを Pumpkin Patch PCB と Lemon Wired で組んだ記録。
Cosmos Keyboard Generator で設計した自作キーボードを組んだ。日本語のビルドログがあんまりないので残しておく。
Cosmos Keyboard とは
ブラウザ上のジェネレータで分割キーボードのケースを設計し、3D プリントできる STL を吐いてくれるツール。Dactyl 系のコンセプト(手の形に合わせた 3D 形状)を、専用エディタで微調整しながら作れるのが特徴。
今までも Dactyl に挑戦しようとしていたが、ハンドワイヤリングは作業もデバッグもめんどくさいというので敷居が高かった。Cosmos なら専用の柔軟 PCB(Pumpkin Patch)が用意されていて、手配線を大幅に省ける。
こんなキーボードを作った
- 形状: 左右分割
- 接続: 有線(USB-C)
- PCB: Pumpkin Patch PCB (MX)
- マイコン: Lemon Wired Microcontroller
- トラックパッド: Azoteq TPS43(VIK 経由で接続)

購入したもの
Cosmos Store で買ったもの
VIK は Sadek Baroudi 氏が策定したキーボード PCB 同士の接続規格で、FPC 12 ピン 0.5mm ピッチのコネクタに SPI / I2C / 電源 / GPIO を束ねたもの。Cosmos はこれに準拠していて、トラックパッドやディスプレイなどの周辺機器を統一インターフェイスでマイコンに繋げる。
| パーツ | 用途 |
|---|---|
| Lemon Wired Microcontroller × 2 | 左右のマイコン。RP2040 ベース、USB-C ×2 と VIK / FPC コネクタ付き。 |
| Pumpkin Patch PCB (MX) × 2 | スイッチ〜マイコン間の柔軟 PCB。ホットスワップソケット・ダイオード・RGB LED 込み。 |
| VIK Breakout | TPS43 を VIK コネクタに繋ぐためのブレイクアウト。 |
| Cactus Connector for VIK | 1 つの VIK ソケットを複数の周辺機器に分岐させる柔軟 PCB。Lemon は VIK ソケットが 1 つしかないので、トラックパッド + ディスプレイのように複数モジュールを同時に繋げたいときに必要。Cirque 系トラックパッドは VIK 標準のピンと一部競合するので、用途別の Cactus Connector を選ぶか、はんだジャンパーで配線を調整する。 |

自分で別途調達したもの
- ネジ・インサートナット
- ケース固定用。Keyboard Generatorで必要な部品群を見るところがあるので、そこの書いてあるサイズのネジを書いてあるだけ購入。
- キースイッチ
- キーキャップ
- 今回は自前で3Dプリントしたものを利用。ケースと同じフィラメントにすると統一感がある
- USB-C ケーブル: 左右接続用と PC 接続用
組み立て手順
基本は公式 docs の “I Finished! What Next?” の流れに沿う。要点だけ書く。
1. ケースを 3D プリントする
ジェネレータから STL をエクスポート。ケースは今のところ、3パターン作っています。

2. インサートナットを埋める
ケースのネジ穴にスクリューインサートをはんだごてで熱挿入する。

3. Pumpkin Patch PCB を切り出す
自分のキー配置に合わせてニッパーかハサミで切り出していく。ここはミスるとめんどくさくなるのでドキュメントをちゃんと読んでおくこと。

端っこをジャンプさせる。

4. Pumpkin Patch PCB を取り付ける
スイッチをはめた状態のケースに、背面から PCB を差し込みホットスワップソケットに被せる。ここが一番時間かかるところだが、ハンドワイヤリングよりマシ。

5. Lemon Wired に接続する
PCB から伸びる FPC をマイコンの FPC コネクタへ。トラックパッド側は VIK Breakout → Cactus Connector → Lemon の VIK コネクタという経路で繋ぐ。Cactus Connector は用途によってジャンプさせたりする必要がある。

6. ファームウェアを書き込む
Firmware Autogen を使う。
- マトリクスを実機で取る: 先にジェネレータが配布する PeaMK を Lemon に書き込み、各キーがどの行・列に対応するかを実機で確定させる。これでキー位置情報が確定する。
- ジェネレータから QMK 用 zip をダウンロード: 中身は
keyboards/<name>/とqmk.json、.github/(GitHub Actions の workflow)のセット。 - そのまま GitHub に push: 自分の場合は jewel12/cosmos。
.github/の workflow が QMK をビルドして、Releases に UF2 を吐いてくれるので、ローカルに QMK 環境を作る必要がない。 - UF2 を Lemon に書き込む:
BOOTを押しながら USB を挿す(またはBOOTを押したままRSTを押して離す)。RPI-RP2ドライブがマウントされたら UF2 をドラッグ&ドロップ。
感想
ハンドワイヤリングがなくてもダルいものはダルい。でもキー配置を維持したまま外装だけ差し替えられるところはやっぱりいい。いろんなモデルを試せる。まあ印刷にBambu P1Sで1日くらいかかるんだけどなー。あと、最初はトラックパッドなしで作って様子見してから、最低限の構成でちゃんと動くのか確かめて、あとからトラックパッドをつけるのもできた。
マイコンとかは2セットずつ買ったのだけど、ひとつ動かないのがあった。海外だし、連絡して代替品を送ってもらったりするのも大変なのでまあええかーとなった。スペアは用意しておいた方がいい。