自作キーボード設計の覚書

PCBも発注したので、ここ数ヶ月、はまっているキーボードの設計についてまとめておく。end gameに向けた第一歩である。

動機

  • 親指シフトへの最適化
    • WindowsではやまぶきR、MacではLacailleを使って、親指シフトでの日本語入力を始めて2年ほどたった。今では特に支障なく入力できるようになったが、親指シフトキーの位置には常に違和感があって、Orz配列にしたり、Realforce 91Uにしたりしているが、どうも納得できていない。
    • 親指空うちでの誤入力を防ぎたい。専用親指キーが欲しい。
    • Z行と親指キーが近すぎて同時押しがつらい。
  • ファームウェアでの親指シフト実装
    • ソフトでの親指シフトは機能しない場合がある。
    • さらにOrz配列にすると、ログイン画面やパスワードフィールドではずれていないので混乱する。やまぶきRではctrlなどのショートカットはOrz対応しない。
  • 非対称row staggeredからの脱却
    • タイプライター由来の配列から脱却すべき論、人類に最適な物理配列を探索するというのは魅力的である。親指シフトの習得を乗り越えた今、変化に対してのハードルは低くなっている。
    • 親指シフトの同時押しを常用していて、左右非対称の配列には違和感がある。左右対称配列は必須だ。
  • QWERTY配列からの脱却
    • ローマ字日本語入力から親指シフトに移行した今、英字入力も効率的な入力にしたい。折しもdovorak以外に、eucalyn配列なども誕生している。
  • 肩を開く
    • 分割キーボードの肩を開いて入力するのは魅力的だ。少しでもホームポジションは距離を置いておきたい。
  • ホームポジションから離れたキーは不要
    • ブラインドで打ちにくいキーは確かに不要かもと思う。
  • 分割が最適だと思うが、会社であまり目立つ配列は避けたい
    • IT企業に勤めているわけでもなく、会社から与えられたキーボードや、ノートPCのまま使っている人ばかりなので、分割キーボードを持ち込んで変な人に見られたくないw

仕様

  • 非分割、一体型キーボード
  • 英字3行 + モディファイヤー1行、52キー。数字キー列はなし。
  • Cherry MXおよび互換スイッチに対応
  • 入手の容易な104キーキャップに対応
  • SemiErgoレイアウト
    • @mtei氏考案 https://github.com/mtei/SemiErgo_Layout
    • 親指キーが多い
    • 左右完全対称
    • 最下段のモディファイヤー行は0.25U下げて、Z行との同時押しをしやすくする(効果があるか要確認)
    • 一見して普通のキーボード、目立たない
    • ortholinearやcolumn staggeredく比べても少し肩が開く
  • マイコン
    • 実績のあるPro Microを採用する。ARM化はおいおい。
    • コンスルー対応
    • 変態度を減らすために裸のマイコンが見えないようにする
    • 薄くしたいのでPCBとボトムプレートで挟まず、ボトムプレートを切り欠く
    • USBポートは左上の位置で、上むきまたは左向きにケーブルを出す
  • ファームウェア
  • ミスを避けるためシンプルな設計
    • 始めてのPCB設計。電子工作もまともにしたことがない。そもそもキットのキーボードすら作ったことがない。
    • 最低15ピン必要(8 x 7 = 56 >= 52)。ただし配線が少し複雑になる。配線をシンプルにするために物理レイアウトに合わせて14 x 4 = 56で18ピン使うことにする。Pro Microのピンを全て使い切る。
    • 分割しないので左右の通信不要
    • 光らせない
    • OLED載せない
    • Pro Microをキーと重ねない
  • Kailh PCBソケット専用
    • 処女作なのでその後の改善に備えて、キースイッチを使い捨てにしたくない
    • 最適スイッチを探索したい
  • ダイオードはスルーホール、SMD両対応
  • PCBと別途製作するは面倒なので、トップ、ボトムプレートもPCBで作る

f:id:eswai:20181216171328p:plain
物理キー配列