2020年、自作キーボード入門(と作ってみたキーボードまとめ)

今年の最後にとんでもねえ沼にハマってしまったので、
備忘録として記載しておきます。

きっかけ

自分の以前からの手持ち症状である腱鞘炎が大変な状態になり、
以下の作業が困難になりました。

  • マウスで細かい入力する作業全般
    例:DTM作業全般、DTP作業全般
  • その他右手作業全般
    例:鍵盤演奏、ドラムパッド叩き

なので、これどうするかな、と考えて色々対応してました。
以前からキーボードだけの操作とすべくDAW内部にプラグインを導入したり、自作ソフトを作成していましたが、
その延長線上で「大半の作業(まずは音楽作業)をキーボードで行えないか」と考えて、電子工作を始めたました。

キーボードを選んだ理由は「力を入れず」「押下作業のみで入力可能」という機能にあります。

さて、電子工作する中でスイッチを自作する必要があり、同じ仕組みが自作キーボードで採用されていること、
かつ自作キーボードの基板からの作成の敷居が下がっていることが分かってきたので試しに作ってみました。
これをきっかけとして色々キーボードを作成していく形になりました。

ちなみにキーボード作り始めたのが11月初旬なので、期間としては実質1ヶ月半ですね。

作ったキーボード

Nomu30(ファームウェア:umbra – mia)

初めて組み立てた自作キーボードですね。
これで自作キーボードってどういう構成になってるのかを知りました。

ただ、元々音楽用のキーボードを作りたかったのもあって、
作成したその日にファームウェアをMIDIキーボードに仕立て上げてしまいました。
ファームウェアはArduinoで作成していますが、Hexファイルを書き出すことで、
ProMicroに対し開発環境なしに書き込みが可能になっております。

余談ですが、この自作ファームウェアについてはumbraと名付けて、
以後作成したキーボードに少しずつ形を変えて組み込んでます。
(名前の元ネタは・・・まぁ分かる人がわかればいいということで・・・w)

umbra – dyo(ファームウェア:umbra – dyo)
Nomu30で実装したファームをパワーアップさせて、実装してみました。
設計は、SU120という基板を利用して作りました。
まずはSU120の素直な構成を利用して即使えるものという形になってます。

ただ、これ鍵盤部分が結構狭いので、高機能ではあるものの使いづらい形になりました。
(1オクターブ程度)
ということで一度分解済み。

とは言うものの他への実装のきっかけになっているので、
自分の中ではこのキーボードが割と重要な位置づけにはなりました。

umbra – treis(ファームウェア:umbra – treis)

ドラムマシンみたいな小さいパッドが必要だな、と考え、少しの時間とSU120で作ってみました。

また、SU120のプレート設計を参考にKiCADで自作し、試しにプレートを発注してみました。
割とピッタリはまったので、これだったら自分で発注もできそうだな、と考えました。

MIDI出力機能は上記のキーボードからライブラリを作ったのでこれを利用する形で実装しました。

Planck

字を打つ自作キーボードというものがどういうものだろうと考え、購入してみました。
今の所のメインキーボードになっていますが、まだいまいちOrtholinearに慣れてないところはあります。
ただ、鍵盤を打つのは気持ちがいいですね。

Gherkin(ファームウェア:umbra – tessera)

以前よりキットを購入してたはいいのですが、プレートの機能を理解してなくて一度組み立て失敗してました。
ですが、上記のキーボードを組み立てる中ではんだ付けに関する知識やツールが揃ってきたので、
部品を失敗分からサルベージ、かつ基板発注のテストとして
Gherkinの基板とプレートを発注した上で組み立てました。

作成後、毎度のごとくMIDI出力用のファームに切り替えてます。
結構コンパクトなのでお気に入りです。

PipiGherkin

見た目Gherkinと変わらないですねw

現在マイコンの価格が高騰していること、これに伴ってマイコンボードの価格が上がっていること、
ProMicroの性能が割と低いことから、他ボードを対象に考えた方が良いのでは?と考え、
一度RaspberryPiPicoを利用したシステムを作ってみようかと思いました。
ということで基板を購入した上で組み立てしてみました。

主に文字打ち込みに使ったりしてますが、PRK firmwareを利用してキー配置を作り込むのが快適と考えます。
あとSeeeduinoXiaoも買ったりしてるのでこちらでもなんか作りたいところ。
(むしろGherkinのSeeeduinoXiao版作ってしまいたいところ)

Arrow30(仮、30%キーボード)

一度33キーのキーボードを作ってましたが、発注したプレートで1行不足していることが判明、
そのまま30キーにしました。これだと正直Gherkinと同じだよな・・・w
正直お蔵入りでもいいと思ってますがこれどうしようかと考え中です。

また、この時点まではキーの配置に興味を持っていなかったのですが、
設計するにあたってどんなキー配列が良いかを悩むようになりました。
今のところはHHKBに少し準拠してrow staggerdがいいかなあとか考えてます。

無銘(50%キーボード)

Arrow30の開発中に気になった部分を反映して、自作MIDIキーボードを作ってみようと現在開発中です。
ただ、キーボードとして使いたい場合も想定して今の所キーキャップを付けてみたところ、
50%キーボードとしてもありなのでは?と少し考えました。
並びは全部1/4uずらしたrow staggerdおよびNomadキーキャップ対応の配列になります。
キーキャップは割と限定的になりそうですね。

ちなみにおまけ。
超トリッキーな配線をした結果、下の写真のようになってます。
なんじゃこれは・・・

キースイッチ・キーキャップ

キースイッチは茶軸使うのが楽しいかな、と。
他の軸も使ってみたいものの、音楽作業ってのもあって、静音がいいなあ、と考えます。

キーキャップは色々試してるんですが、プロファイル:XDA・素材:PBTのものが
結構よさそうな気がしてます。
これにOrtholinearのものがないかを探すのがメインになりそうです。
理由は、いろんな配置を試すことから形状を気にしなくて良いものがいいかな、ですかねえ。
(キーの形状が指に合ってるのは確かに打ちやすいんですけど、
やはり配置を色々変える関係上厚み変化ないのがいいかなと)

また、厚みのあるものや割と大きめのものが好みなので、そういうのを選んでいくかなーと。

沼にハマった感想

1ヶ月半で8個作成(+設計、ファームの新規作成も含む)はさすがにやりすぎました。

とは言うもののMIDIキーボードとして使うのは結論から言うと快適だったので、
今後も作っていきたいですね。
要望があれば頒布用に基板作成とかも考えますが・・・割とニッチだし、自作だけで問題ないかなと。

また、他のプロトコルを送信するのにも役立つかなあ、とかは考えてるし(OSCとか)
そもそも文字うつインターフェイスとして使い勝手よくなると楽しいので、
しばらくはキーボード制作に足を突っ込んでいたいなと考えます。

おまけ・利用したキーボード

この文章はPlanckを使って打ち込んでます。
あと思い付いたようにPipiGherkinも使ってますね。