ホットスワップで打鍵音エンドゲームのキーボード自作

打鍵音エンドゲームを目指してキーボードを自作し続けてきました。2台ほど気に入ったものができましたが、いずれもPCBにスイッチをはんだ付けするものだったので、スイッチを気軽に取り外せないという不満がありました。それを解消するためにホットスワップのキーボードを製作していましたが、ようやく打鍵音に納得のいくキーボードを自作することができました。今回はそのことについての記事です。

これまでの歩み

打鍵音の心地よいキーボードがあるといつまでも打鍵したくなってしまうもの。 これはパソコンに向かって作業することが多い現在、最高の打鍵音は自分を作業にいざない、進捗を生み出す魔法(麻薬?)となり得る。

これまで自作してきた中で、最も好みの打鍵音はこれ。

www.youtube.com

スイッチプレートレスでスイッチがPCBにはんだ付けされているこのキーボードは、自分的には最高の打鍵音を奏でてくれるのだが、これには問題がある。 長く使っていると打鍵音が変化してしまう。 どうもルブの具合が劣化しているのが原因みたい。 スイッチをひとつだけルブし直してみるとちゃんと自分の好きな打鍵音に戻る。 でもスイッチがPCBにはんだ付けして固定されているために、すべてのスイッチを外してルブをやり直す、というのが非常に大変でちょっとやる気がしない。

そこでホットスワップで心地よい打鍵音にならないかと考え始めた。 それを目指して作ったのが、unity69と名付けたこのPCB・スイッチプレート一体型ホットスワップキーボードである。

kgnwsknt-chef.hatenablog.com

このおかしな発想を最終的にはちゃんと形にすることができたのだが、残念ながらこれは静音すぎる。音は控えめが好きだが、静音ではなくある程度底打ち音が鳴って欲しい。

次の一手

PCB・スイッチプレート一体型は打鍵音的には失敗だったが、あれこれ試したことにより収穫はあった。FR4のスイッチプレートはかなり柔らかいので、おそらく打鍵音に与える影響は限定的であること、またスイッチプレートが柔らかい場合はスイッチ底面に接している板が底打ち音に大きく影響を与えることがわかった。自作したスイッチプレートレスのキーボードでは程よい底打ち音なので、FR4スイッチプレート+PCBで同じような打鍵音が得られる期待がある。そこでこの組み合わせでキーボードを作ってみることにした。

レッツ自作

キー配列

キー配列は65%のRow Staggered。基本的にはunity69と一緒なのだが、分割したスペースキーの境界の位置に不満があった。自分は主に右親指でスペースキーを打鍵するのだが、unity69の配列だと時々の境目近くを打鍵して左隣のキーの端を親指がかすめる。誤って左スペースを押してしまうことは無いものの、隣のキーをかすめる感覚は気持ちよくはない。そこで境界を0.25u左にずらし、その文右Ctrlを1.25uから1.5uに変更した。

キー配列。改良前(左)と改良後(右)。

スイッチプレート・PCB

ケースはunity69用に作成したアクリル箱組ケースを流用する。一応もう一つあるアクリル箱組ケースでも対応できるようにスイッチプレート・PCBを小さめのサイズにしておく。 Elecrowに発注し、届いたものがこれ。

Elecrowから届いたスイッチプレートとPCB

これらにはM1.4スペーサ用のネジを多数空けておいた。 ホットスワップにするとスイッチはPCBにしっかりと固定されるわけではない。もしスイッチがPCBから浮いていると、おそらく底打ち音はスイッチだけで決まり、高音寄りの音になる気がする。

そこでできるだけスイッチがPCBに密着するように、スイッチプレートとPCBにねじ穴を空けておき、これらを3.5mm長のM1.4のスペーサーで固定できるようにしておく。こうすれば、間にフォームやシリコーンシートを入れた場合でも間隔が3.5mmとなり、スイッチがPCBから浮いた状態になることを防げるだろう。本当は1.6mm厚のPCBでスイッチプレートを作ると3.4mm長のスペーサーが良いが、そんなのないので0.1mmの違いは目をつぶることにする。 どの位置で、また何箇所をスペーサーで固定するのがいいのかはわからなかったので、とりあえずたくさん穴を空けてある。

MCUといくつかのチップ素子をはんだ付けし、USBのドーターボードをつないで動作確認する。MCUは古い基板から引っ剥がしたものだったので少し心配だったが、無事認識された。ファームウェアーを焼いてスイッチ回路の動作もOK。ここまで確認できると致命的なミスがないということなので一安心(時々スイッチの位置がずれてしまっているとかあるけど…)。ダイオードとソケットをはんだ付けしたらいよいよ組み立て。

まずはスタビライザー。 スタビライザーはGateronのPCBマウントのものを使用した。今回初めて使ってみたが、ワイヤーとステム、ハウジングの寸法がかなりぴったりでワイヤーのブレが全然ない。いつもはバンドエイドをステム内側に貼るHolee Modを施しているが、かなりぴったりだったのでこれは省略。PCBにはKBDfansのフォームを貼り付ける。

Gateronのスタビライザーを取り付ける

Gateronのスタビライザーには2種類の長さのワイヤーがある。2U用だと23.80mmと24.00mmがあって0.20mmだけ違うのだけれど、これはなんでだろう? いまだにわからない。まあでも通常スタビライザーセットには2Uのワイヤーが4本しかなく、この配列は2Uが5個あるので足りなくなるが、Gateronのスタビライザーセットは1セット買うだけで賄えるので助かる。

フォームとシリコーンシートのカット

スイッチプレートとPCBの間には3mm厚のポロンシートを入れる。スイッチプレートとPCBの間は3.4mmの隙間が空くので、3mm厚のポロンシートだけだと少し隙間が空いてしまい、フォームとプレート・PCBが密着できない。そこでシリコーンシート0.5mmも入れることにした。

ポロンフォームのカットを以前はハサミやニッパーなどを用いてカットしていたが、平刃でやるのが良いというのを学んだのでこれに倣う。

notheme.me

余っているスイッチプレートをフォームにあてた状態で固定し、スイッチ穴の辺に沿って上から平刃を押しつけてカットしていく。ハサミやニッパーでカットしていた時はだいぶガタガタだったのに比べ、このやり方ならきれいに四角く切り取れる。

スイッチプレートに合わせてフォームとシリコーンシートをカット

同じ要領でシリコーンシート0.5mmもカット。こっちの場合は普通のカッターナイフを使用した。 カットしたシリコーンシートとポロンフォームをセットする。シリコーンシート0.5mmは薄くでだいぶ変形するので、位置を合わせるのが結構面倒だった。

シリコーンシートとフォームをセット

スイッチはPCB・スイッチプレート一体型ホットスワップキーボードunity69で使用したBanana Splitを使用する。このスイッチは打鍵音が控えめで滑らか。もちろんルブ済み。

今回使用するunity69のケース内寸はプレート・PCBに比べて少し大き目になっているので、シリコーンゴムシートを使って前後左右の位置がずれないようにする。切り出したゴム片に切り込みを入れてそこにPCBのタブを入れる。簡易ガスケットマウント見たいな感じだが、PCB下にフォームを入れてケース底板で軽く潰すのでガスケットマウントとはちょっと違う。

シリコーンゴムでPCBの前後左右の位置を固定

ケース裏面から見た写真はこんな感じ。PCBとケース底板の間には黄色のアクリル発泡体の衝撃緩衝材を敷く。これはケース底板を取り付けると少し潰された状態になる。

ケース底面

スペーサーでスイッチプレートとPCBを固定してみる

スイッチプレートとPCBの間にポロンシートとシリコーンシートを入れたが、これらが密着していてほしい。そこでスイッチプレートとPCBを3.5mmのM1.4スペーサーで固定する。

スペーサーで固定すると、そのそばのスイッチの打鍵音は明らかに変化する。底打ち音が硬い印象に変化する。これは自分の求めているものとは異なるので、PCBの四隅に近い穴4つだけ止めることにした。

スイッチプレートとPCBの端に近い位置(Tabキーの左上とShiftキー右下)をスペーサーで固定する

この結果、端のキーの打鍵音は硬い印象になってしまったが、他のキーは少し改善したような気がする。ただし周波数スペクトル(後述)を見るとあまり違いはないので、これは気のせいかもしれない。

真鍮ウェイトをつける

組み立てると、PCBがケース底面のフォームの上に軽く押しつけられている状態になる。そうすると打鍵時の振動がケース底板に伝わる。ケース底面はアクリル板3mmで剛性は高くないので、これが振動して低音が鳴る。そこで以前作った5mm厚の真鍮ウェイトをつけることにした。これでだいぶ低音の響きが抑えられたと思う。後述の打鍵音の周波数スペクトルにもそれが現れている。

以前作った真鍮製のウェイトをケース底板に取り付ける(真鍮ウェイトが汚い…)

キースイッチを変える

以上の構成で組み上げたものは悪くはないのだが、打鍵音エンドゲームではない。ケース側をあれこれいじっても目指す打鍵音にはたどり着けそうにない気がしたので、スイッチをBanana Splitから、以前合成したGateron Ink Black + UHMWPEステム(415keys, rev4)に変更してみた。

415keysのrev4はキーキャップにはめる十字の部分が太めなのか、キーキャップによってはかなりキツくて破損してしまわないかと心配になる。そこでGeon Trimmerを使って少し削った(変形させた?)。

スイッチを変更したら自分の求めていた打鍵音になった!Banana Splitもだいぶ底打ち音やステムが上に戻ってきたときの音が抑えられていたが、UHMWPEステムだとさらに音が控え目で柔らかい印象になる。またBanana SplitのハウジングにUHMWPEステムを組み合わせたものも試したところ、Ink Blackのハウジングを使った場合とほとんど同じ打鍵音が得られた。このステムが打鍵音エンドゲームの鍵だったみたいだ。

いまだになぜUHMWPEステムだと底打ち音がまろやかになるのかわからない。今考えている仮説は、このステムは通常のスイッチのステムに比べて少し柔らかいのではないかということ。 素材が柔らかければもちろん打鍵音も柔らかくなる。 Gateron Yellowも打鍵音が柔らかい印象があった。乳白色のトップハウジングはポリカーボネートのものにくべると柔らかい気がする。

タイピングの打鍵音

タイピング打鍵音の動画を雑に取ってみました。

www.youtube.com

いやー、このコトコト、しっとりとした音がタイピングしていて最高に気持ちいい。求めていた音はまさにこれです。

周波数スペクトル

下の図は打鍵音を整えるために試行錯誤していた際、タイピング打鍵音を録音してその周波数スペクトルがどのように変化するかを比較したもの。1分間の英語のタイピングテストを録音した。

タイピング打鍵音の周波数スペクトルの比較

プレートとPCBの間にフォームを入れると10KHz超のピークが下がる。ウェイトをつけると音が変わったが、これがどの周波数帯で効いているかはちょっとよくわからない。最も効果の高かったものはやはりスイッチの交換。UHMWPEステムは底打ち音がマイルドになる。周波数スペクトル的には、10kHz周辺、6kHz周辺、2-3kHzのピーク、1kHzあたりのなどが顕著に変わっている。この変化が打鍵音の印象を大きく変えている。以前録音音源にローパスフィルターを通して遊んでみたときに高音が減ると好みの音になる傾向があったので、特に10kHz周辺、6kHz周辺の減少が重要ではないかと思う。

心地よい打鍵音を得るためのレシピ

というわけで自分の好きな打鍵音を得るレシピを確立できた気がします。

  • FR4のスイッチプレート+ホットスワップのPCB
  • PCBの上下にフォーム
  • UHMWPEステムを入れたルブされたスイッチ

加えてSAプロファイルのような背の高いキーキャップを組みわせると更に自分の好みな音になりそう。

あとがき

ようやくホットスワップで打鍵音がエンドゲームと言えるキーボードが完成しました。これでルブの具合が劣化してもメンテナンスする気になります。

打鍵音が気持ちいいので暇があると何度もタイピングテストをしてしまい、この打鍵音の依存症になってしまわないかちょっと不安です。

今はスイッチの在庫が不十分なのでアルファベットキーとスペースキーしか打鍵音エンドゲームになっていません。Banana SplitとUHMWPEステムの組み合わせもほぼ同じ打鍵音が得られているので、これをつけようかな? あるいは別のハウジングの素材でより柔らかい打鍵音にできるかもしれません。気が向いたらUHMWPEステムと他のハウジングの組み合わせを試してみるかも。

また、今はスイッチプレートとPCBの間に入れているポロンフォームとシリコーンシートは合わせて3.5mmとなっています。さらに0.5mmのシリコーンシートを加えてすこしポロンフォームを潰した状態で打鍵音がどう変化するか少し気になります(でも面倒…)。

さて、自分の好みの打鍵音を得る方程式を見いだした気がしているので、打鍵音の気持ちいよい分割キーボードでも作ろうかな?



この記事は自作した打鍵音エンドゲームのオリジナルキーボードunity69で書きました。