ラズパイPicoベースの30%自作キーボード "PiPi Gherkin" のビルドログ—ついでに3Dプリントケースも作った—

最近キーボードの話ばっかりですが、ひとしきりやって満足したら他ジャンルのネタも出していくので、も少しお付き合いください。

これまでは、人間にとっての使いやすさを追求する、エルゴノミックキーボードに傾倒しててDactyl Manuform を作り込んできましたが、今回はそれとは対極のようなキーボードをつくるお話です。

Gherkinとは?

2016年に40%Clubから発表された、30鍵のミニマムなキーボードです。ちなみに、ガーキンというのは、ピクルス用の小さいキュウリのことです。緑色の小さな基板だからですね?

www.40percent.club

さすがにキーが少ないので、使いこなすためにはキーマップに相当の工夫が要りそうです。

ラズパイPico版のGherkinが出た

そして今年の2月、同じく40%Clubから、「PiPi Gherkin」が発表されました。

www.40percent.club

オリジナルのGherkinは、コントローラーとしてArduino Pro Microを使いますが、PiPi GherkinではRaspberry Pi Pico(以降Pi Pico)を使います。

Pi Picoは、Raspberry Pi財団独自設計のチップ「RP2040」を載せた最近話題のマイコンボードで、Arduino Pro Micro同様、USB-HIDとして振る舞うことができるので、自作キーボードのコントローラーに使うことができます。

www.switch-science.com

550円という破格の安さも魅力的で、発売当時は品薄になっていましたが、今は落ち着いたようです。

PiPi GherkinのPCB

ガーバーデータがオープンになっているので、自分でPCB製造サービス頼むこともできますが、このサイズの基板は、10枚単位とかで出さないとめちゃくちゃ割高になります。

この基板のニッチさも相まって、なかなか入手ハードルは高めです。

しかし、ありがたいことにTALPKeyboardさんが小売りの取り扱いを始めてくれたことによって、劇的に入手性が向上しました。

talpkeyboard.net

1枚880円、送料込みでも1,100円、とっても安い気がします。

部品リスト

  • Raspberry Pi Pico 1個
  • PiPi Gherkin PCB 1枚
  • ピンヘッダー 20ピンx2つ
  • 1N4148ダイオード 30本
  • MXスイッチ(5pinタイプ) 30個
  • MX用キーキャップ 30個

f:id:at_you_key:20210724153929j:plain

直付け or ホットスワップで迷う

PIPI GherkinのPCBは、スイッチ直付けでもホットスワップソケットでも、どちらでも使えるパターンになっています。

どちらにするか悩みどころですが、今回は低コスト&省スペースを優先して、直付けすることにしました。

直付けのいちばんのデメリットは、モゲマイクロしてしまった時が絶望ってところですが、Pi PicoはUSBコネクターが丈夫に取り付いているタイプなので、そのリスクも小さいはずです。

組み立ての順番が超重要

直付けで固定してしまうので、順番を間違えると詰みます。必ずこの順番ではんだ付けしましょう。

  1. ダイオード
  2. ピンヘッダー
  3. スイッチ
  4. Pi Pico

ハンダごては温度調整機能付きのものを

これは電子工作全般で言える事ですが、ハンダごての性能は仕上がりに大きく影響するので、温度調整機能付きのものを強くおすすめします。 個人的なおすすめ機種は、値段と性能のバランスが良いHAKKOのFX600です。

ダイオードを取り付ける

組み立てで間違える可能性があるのは、ダイオードの向きだけです。はんだ付け前によく確認しましょう。

取り付け自体は30個なので楽勝ですね。ダイオードを取り付けたところで導通確認するのが良いそうですが、何かあればジャンパー飛ばせばいいやということで、そのまま進めます、ヨシ!

短いピンヘッダーが欲しい

一般的なのはピンソケットに刺す用の片側が長いタイプですが、今回は両方とも短いタイプが必要です。

1.6mmのユニバーサル基板を2枚重ねて、はみ出たところをニッパーで落として使いました。

f:id:at_you_key:20210724154036j:plain

PCBにはんだ付けしておきます。※先にPi Picoにはんだ付けしてしまうとゲームオーバーです、気をつけましょう。

f:id:at_you_key:20210724154001j:plain

スイッチを取り付ける

シルクで「MX1」とか描いてある面に取り付けます。

向きを間違う余地はないので、ナナメにずれないようにだけ注意してハンダ付けしましょう。

これも30個なので楽勝ですね。

Pi Picoを取り付ける

さいごにPi Picoの取り付けです、壊さないように高めの温度で手早くハンダ付けします。僕は温度設定320〜370℃でやりました。

f:id:at_you_key:20210724155120j:plain

ケースもつくろう

Gherkinはメジャーなモデルなので、探せばすぐケースのデータが見つかりますが、せっかくなので自分で設計することにしました。

よく見るのはサンドイッチタイプのケースですが、せっかくの板チョコみたいな可愛い外観を損ねてしまうのは嫌なので、基板の下におさまる形にしようと思います。

まずは基板の外形図がほしいので、Gitからガーバーデータを落として

git.40percent.club

PCBGOGOのガーバービューアーでSVGに変換

www.pcbgogo.jp

アウトラインとネジ穴と、Pi Pico外形のシルクを取り出して

f:id:at_you_key:20210724155854j:plain

Fusion360に取り込み、良い感じに線を書き足して押し出しで造形しました。

f:id:at_you_key:20210724160027j:plain

このデザインのポイントは、あえてPi Picoをむき出しにする事で、暗に「あなた方のGherkinとはひと味違うんですよ」というメッセージを出してライバルを牽制できるうえ、ケースの厚みを大幅に抑えて見た目をスタイリッシュにするという副次効果もあります。

f:id:at_you_key:20210724160043j:plain

そして、プリントして取り付けたのがこちら

f:id:at_you_key:20210724160053j:plain

手元に蛍光オレンジしかなかったので、色はだいぶ浮いてますが、形はカッコよくおさまったと思います。

f:id:at_you_key:20210724160114j:plain

stlをGitHubに上げてあるので、興味あればぜひプリントしてみてください。 ※上で書いた通り、ホットスワップソケットは考慮していない設計なのでご注意ください。

github.com

取り付けには、M2x4mmのナベタッピングビスがちょうど良いです。

ファームウェアは「KMK Firmware」

さて、QMKファームウェアのRP2040チップ対応が進んでいるらしいという話も聞いた気がしますが、Pythonベースの「KMK Firmware」を使うのがPiPi Gherkinの醍醐味です。

KMKを使うには、まずこのチュートリアルを参照して、Pi PicoでCircuit Pythonを使えるようにしてから

learn.adafruit.com

GitHubからKMKを落として、kmkフォルダをルートにコピーします。

github.com

設定ファイルは、40%クラブのGitからcode.pyをダウンロードし、こちらもピコのルートに置きます。

git.40percent.club

これだけで使えるはずなんですが、僕が試した時点ではエラーが出て少しハマりました。

Pi Picoは、HIDとして動かしながらシリアルコンソールでエラー出力を見る事ができる(神!)ので、エラーメッセージとソースコードとDocsをよく読めば、怖いものはありません。

ドキュメントの更新が追いついてない所もあるようなので、できればソースコードを直接読み解くのがおすすめです。英語ドキュメント読み解くのとPythonコード読み解くのと、労力的には大差ないと思うので。

ちなみに僕がハマった点はこの通り。

  • コンパイル版を使おうとしたらBLEモジュールが定義されていないと怒られた→テキスト版に乗り換え
  • そしたらMT(ModTap)とLT(LayerTap)が定義されてないエラー→KMKのDoc見てインポート文書いたら解決
  • ModTapでCtrl使うと押しっぱなしになる→未解決、KMKのアップデートに期待

QMKのように、血へどを吐きながら開発・ビルド環境のセットアップをしなくても(個人の見解です)、最低限テキストエディターさえあればファームウェアを書き換えられるので、KMK素晴らしいです!

まだまた発展途上で、毎週のようにGitHubに動きがあるので、今後の進化が楽しみですね。

あと、最近はRubyベースのPRK Firmwareってのも盛り上がってきているようで、こちらも面白そうです。 rubykaigi.org

キーマップ

キーマップは、まずデフォルトのをそのまま使ってみてから、おいおいカスタマイズしていこうと思います。

30%...はたして使いこなせるのかな...🤔

【追記】さらにカスタマイズした話を記事にまとめました👇

www.creativity-ape.com