← 記事一覧

Cosmos Keyboard ビルドログ

Cosmos Keyboard Generator で設計した左右分割・有線・トラックパッド付きキーボードを Pumpkin Patch PCB と Lemon Wired で組んだ記録。

#キーボード#Cosmos#ビルドログ

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 BreakoutTPS43 を VIK コネクタに繋ぐためのブレイクアウト。
Cactus Connector for VIK1 つの VIK ソケットを複数の周辺機器に分岐させる柔軟 PCB。Lemon は VIK ソケットが 1 つしかないので、トラックパッド + ディスプレイのように複数モジュールを同時に繋げたいときに必要。Cirque 系トラックパッドは VIK 標準のピンと一部競合するので、用途別の Cactus Connector を選ぶか、はんだジャンパーで配線を調整する。

Pumpkin Patch PCB

自分で別途調達したもの

  • ネジ・インサートナット
    • ケース固定用。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 を使う。

  1. マトリクスを実機で取る: 先にジェネレータが配布する PeaMK を Lemon に書き込み、各キーがどの行・列に対応するかを実機で確定させる。これでキー位置情報が確定する。
  2. ジェネレータから QMK 用 zip をダウンロード: 中身は keyboards/<name>/qmk.json.github/(GitHub Actions の workflow)のセット。
  3. そのまま GitHub に push: 自分の場合は jewel12/cosmos.github/ の workflow が QMK をビルドして、Releases に UF2 を吐いてくれるので、ローカルに QMK 環境を作る必要がない。
  4. UF2 を Lemon に書き込む: BOOT を押しながら USB を挿す(または BOOT を押したまま RST を押して離す)。RPI-RP2 ドライブがマウントされたら UF2 をドラッグ&ドロップ。

感想

ハンドワイヤリングがなくてもダルいものはダルい。でもキー配置を維持したまま外装だけ差し替えられるところはやっぱりいい。いろんなモデルを試せる。まあ印刷にBambu P1Sで1日くらいかかるんだけどなー。あと、最初はトラックパッドなしで作って様子見してから、最低限の構成でちゃんと動くのか確かめて、あとからトラックパッドをつけるのもできた。

マイコンとかは2セットずつ買ったのだけど、ひとつ動かないのがあった。海外だし、連絡して代替品を送ってもらったりするのも大変なのでまあええかーとなった。スペアは用意しておいた方がいい。