30%キーボードPiPi Gherkinにキー4つとLEDを増設する話—これもまたひとつのエンドゲーム—

序論

「人類には早すぎるキーボード」とも称される30%キーボード「Gherkin」

フルキーボードの約100キーに対し、30キーしかないという、初見では俺にゃ無理だよ!と言いたくなるようなキーボードですが、そのピーキーさゆえ、一度気になり始めるとその存在が頭から離れなくなるような魅力があります。

scrapbox.io

かくいう僕も、「最近話題のマイコンボードRaspberry Pi Picoで作れるGherkinがあるらしい」「Talp KeyboardさんがPCBの取り扱いをはじめたらしい」と知って、まぁキー数も少ないしなと、ほんのお試しの、軽い気持ちで「PiPi Gherkin」に手を出してしまったのでした。

www.creativity-ape.com

Gherkinはとにかくキーが少ないので、キーマッピングに異常な工夫が求められます。とくに、モディファイヤキーなんか、アルファベットキーと兼用しなければどうにもなりません。

逆に言えば、文字キーにModの振る舞いをさせるという、一見邪道とも思えるテクニックへの心理的制約を取り払い、キーマップの暗黒面へと通ずる道を示してくれるキーボードといえます。

さて、PiPiGherkinの面白さのひとつが、GPIOが余りまくっているというところです。

Raspberry Pi Picoは比較的ピン数のリッチなマイコンボードで、GPIOを26ピンも使うことができますが、PiPi Gherkinはそのうち11ピンしか使わないので、15本の空きピンが拡張してとばかりに口をあけています。

となると、当然なにかしら増設したくなってきちゃいますよね、それでタイトルへと繋がるわけです。

34%

まずはシンプルに、親指キーを増設してみます。

かといって、増やしすぎればGherkinのアイデンティティが無くなってしまうので、実用ギリギリと言われるかぎざら屋さんのMiniAxeより2キー少ない、34キーを目指すことにしました

booth.pm

36キーが実用ギリギリというのはジェダイの話、Mod+文字キーというダークサイドの力を知ってしまった我々は、もうそんな制約に縛られる必要はありません。

キースイッチ増設対応のケースを作った

さて、まずはどうやってキーを増設するか決める必要がありますが、4キー程度なら基板を作るほどでもないので、キーを固定できるケースを3Dプリントで作り、裏は手配線することにしました。

前回作ったデータに手を加えて、キースイッチを固定するホルダーを追加しました。

配線ルートは表側に細い溝を切って、配線を繋いだ後でもケースの付け外しができる仕様にしてみました。

それをプリントしたものがこちら。

ダウンロードはこちらから

プリント用データをBoothに置いておきました、無料でダウンロードできますが、富豪の方はぜひBoost版の購入もご検討ください(中身はどっちもおんなじです)。 creativity-ape.booth.pm

PIPIGHERKIN+4ビルドガイド

材料

  • Cherry Mxタイプキースイッチ ×4
  • ダイオード1N4148 ×4
  • 適当に細めの配線材 適量

組み立て手順

まずはケースを治具代わりにして、スイッチに配線していきます。

ダイオードと行のコモン線をはんだ付け

配線材を取り付けて

図の通り配線します。

こんな感じです。

あとはスイッチをケースにしっかり押し込んで、配線を挟み込まないように注意しながらねじ止めします。

ゴム足は、この4点に付けるとバランスが良いです。

ジャーン!完成!

<code.pyの書き方入れ忘れ、近々追記します>

キーマップ

基本思想はDactyl Manuform用に作った時と同じです。

www.creativity-ape.com

そこにGherkin的キーマッピング手法を取り入れてみました。

実は40%だと、レイヤーによってはキーを持て余している感を感じていたんですが、この34%キーマップは、そこにある全てのキーが必要とされています。

これまで設定したキーマップの中で、これは最高傑作だと思います。

LEDアンダーグロー

キー増設の次にやりたくなるのは当然LEDですよね。

配線が簡単なNeopixelテープを使うことにします。16.5mmピッチのテープを想定して、ケースのリブが干渉しないようにリブ間隔を倍数の33mmにしました。

テープ幅が10mmあるので、幅を確保するためにネジボスの形を工夫しました。

配線はこの通り簡単です。

これも配線を挟まないようにネジを締めて組み立てれば完成です。

ソフト側はエクステンションの「RGB」を使います、使い方はドキュメントを参照のこと。

github.com

透明フィラメントで出力したケースに、レインボーのアニメーションが映えます!

そうそう、OLED増設の話はまた次の機会に。