ぴろりのくせになまいきだ。

世間に平和はおとずれなぁい

積層ケースのキーボードを基板から作ってみた

経緯

ちょっと前にこんなものを作っていました。
piroriblog.hatenablog.com

これは普段使いのキーボードの一つとして、おおむね満足して使っています。
しかし、そこそこ満足して使っているからこそ、もうちょっとこうしたい、という部分が出てきます。
例えば、

  • ちょっと打ち心地が硬いと感じる
  • ちょっと音が響く感じがある
  • さすがに角が出すぎているのでは?
  • ロータリーエンコーダの反応が微妙に悪いことがある
  • 光らせたい!!!!!

といった具合です。

どの要望についても、新しくキーボードを作るしか解消方法がない点ばかりです。
実用上、そこまで困ることはないのですが、基板を一から起こして作ってみたいという気持ちもあったので、基板の発注からチャレンジしてみることにしました*1
ということで、チャレンジしてみた記録と、前回の記事でお見せできなかった内部構造についても記録しておきます。

設計思想

前回気に入っていた点はそのまま継承し、せっかくなので様々な改良を加えて設計してみました。

完成図

名前は、なんかずんぐりむっくりしていて、形がなんか水鳥っぽいところから連想して、白鳥……白鳥座……英語でCygnus……SUS*2板を使うから、「CygSUS」や!!!といった感じで決めました。

今回のキーボードのこだわりポイントは、以下の通りだと思っています。

  • 湾曲カラムスタッガード系配列
  • 親指で回す大きめのロータリーエンコーダ搭載
  • ハイブリッド積層ケース(ステンレス+アクリル)
  • ガスケットマウント(前回よりも柔らかめ)
  • アルミ製スイッチプレート
  • 音が響きにくいケース設計
  • フォームマシマシで落ち着いた打鍵音
  • 光る!!!!!

ということで、こだわりポイントについて抜粋して触れていきます。

湾曲カラムスタッガード系配列

前回の記事を見ていただければ、どういう意図があったかはわかると思います。
簡単に言えば、人差し指列と、他の指の列って逆向きに曲がるのが自然なのではないか、という発想に基づき、Willow配列*3からヒントを得て設計してみました。
前回作った「raven46」は、天キーに持参したところ、まあまあ良い反応をいただいたように思います。

これはこれでよかったのですが、中指列をまっすぐにして、やや左右対称っぽくしたのが今回の配列です。基本的なキーの位置はほぼ変わりません。
一方で、前回は、小指の付け根で押す用のキーを設けていましたが、悪くはないがよくもない、といった感じだったので、今回は小指列の上に移動しました。
移動すると同時に、キー数が少ないこのキーボードにおいて、アルチザンキーキャップ*4とか、エスケープキーなどのキーキャップセットにおける特徴的なキーを配置するポジションとして、少し独立するようにキーの位置を設定してみました。
これでいつでもアルチザンキーキャップを買えます。やったぜ。

あと、ロータリーエンコーダには、金属製のもの*5を採用してみました。軸のブレが少なく、とても良い感触です。ちょっと高いですが。

ハイブリッド積層ケース

今回、光るようにしたので、マット透明アクリルを採用しました。
前回はゴムやらなんやらを挟んでいましたが、多分そこまでの効果はないものと思いましたので、今回は、SUS板とアクリル板のみの構成としています。
今回も、アクリル板(とフォーム)は遊舎工房さん、SUS板は切断堂さんにカットをお願いしました。いつもありがとうございます。
外形はかなり悩んだのですが、全体的丸くしつつ、シンプルな線で構成されるように調整してみました。
あと、トップのSUS板は半ばデコレーションプレート的な性格のもので、SUS板の下にはネジがもう6本存在しています。SUS板の下のアクリルのトッププレートは、表面をちょっと削ってザグリ加工し、低頭ネジの頭が収まるようにしています。
前回はネジがさすがに多すぎた、と思ったためです。ネジが多いのは多いので良いですが、今回はシンプルめに寄せてみました。

ガスケットマウント

前回は、1.5 mmのスペースに、3 mmのポロンシートを挟んでクッションとしていたのですが、まあまあ硬めの感触だったので、今回は、約3 mmのスペースに、4 mmのポロンシートが挟まる形としています。
今回は、押し込むと目に見えて沈みます。打ち心地としても、強烈めなタクタイルスイッチ*6を採用してみましたが、底打ち感がかなり和らいでいます。
スイッチプレートはアルミですので、程よく音が出つつ、衝撃は少なめ、という状態にできたと思います。店頭でガスケットマウントの高級キーボードも触りましたが、負けず劣らず、と思っています。

音が響きにくいケース設計

前回もこのような設計としていたのですが、諸々の関係で、内部構造は「見せられないよ!」状態だったので、前回は特に説明していませんでした。
今回はお見せできる状態なっているので、お見せします。マネしたい方がいるかは不明ですが、ご連絡いただければデータはお渡しします。

内部構造

どういうことかというと、マイコンを格納する部分と、キースイッチが存在している部分との間に壁があるような設計となっており、キースイッチから発生した音が、内部に閉じ込められるようになっています。
ただ、マイコンとキースイッチは電気的に接続していないといけませんので、SHコネクタが接続されたリード線を介して、キースイッチ基板と、マイコンの基板とを接続しています。リード線は、アクリル部分に設けた隙間を通す形としています。
また、隙間にはフォームがたくさん敷いてあるので、残響感が少なめで比較的歯切れのよい、落ち着いた音となっています。
なお、前も記載しましたが、この構造は、AM AFA*7の構造からヒントを得ています。

この構造は、音だけでなく、ガスケットマウントとした際の上下方向の移動を阻害せず、設計した柔らかさを出す効果もあります*8。USBコネクタをドーターボードとしておくのと同じことですね。

光るぜ!!!!!

光ります。片手分につき、アンダーグローというかサイドグローというかのLEDを8個と、スイッチ側のLEDを3個搭載しています。
なお、私は一回目の基板発注時に、LEDモジュールのシンボルが間違っていることに気づかず、間違った配線のまま発注してしまい、せっかくはんだ付けしたのに光らないという悲しい事態に見舞われました(1敗)。
また、サイド部分はマット透明アクリルとしていますので、いい感じに光が拡散して、いい感じに光ります。ちなみに、アクリルの端面は1000番相当のやすりで磨き、マットっぽい質感にしています。通常、カットのままだと、結構ギラギラした質感になるので、地味なこだわりポイントです。
また、底面がSUS板で光を反射するためか、フォームを入れている割には、思ったより光が拡散しています。きれいです。
LEDのアニメーションを眺めながら悦に入っていました。

基板設計について

基板データを公開してくださっている方や、基板の設計方法の解説本を出されている方もいらっしゃいますので、先人の知恵を借りながら設計してみました。おそらく自力では設計できていなかったでしょう。この場を借りてコミュニティにお礼申し上げます。
ただ、一つよくわかったことは、湾曲している配列の設計は非常に面倒だということです。やろうと思えば自動で配置もできるのでしょうが、傾いた状態に配置するのが非常に面倒で、結局、基板用に作成した図に対して目視で合わせました。
配線の作業自体は、わかってしまえばパズルのようで結構楽しいですが、回路図が間違っていると悲惨です。最初はテンキーくらいの設計から始めるべきだとは思いました。

あと、この基板は一応2way仕様となっています。

設計した基板

今回のように、基板を切り離してリード線で接続もできるし、そのままでも動作するものとなっています。
もともと、基板を切り離さずに組み立てるほうは、バーガーマウント(ねじ止めせずに上下のプレートとスポンジで挟むやつ)にする予定だったので、これも名前を悩んだ結果、「Panini」としています。
個人的には、「Panini」仕様で組み立てるつもりはなかったのですが、絶対に基板が余ることはわかっていたので、他の人が組み立てる可能性があるならば、と思ってこのような設計としています。
没の基板も含めて基板があと7セット分もあるので、ご連絡いただければ押し付けます差し上げます。
「Panini」仕様のケースデータはちゃんと作ってはいませんが、ご要望とあらば作成します。こちらも差し上げますので、好きな材料と厚さで切っていただければと思います。

ちなみに、今回は、マイコンボードとして、RP2040-Zeroを採用しています。スイッチサイエンスさん*9などで購入できます。余談ですが、通信速度が上がっているせいか、USB接続されていない側のロータリーエンコーダの遅延がほぼなくなりました。非常に快適です。
また、ファームウェアはQMKで書いています。

おわりに

今回はかなりENDGAMEに近いキーボードになったんじゃないかと思っています。まだキーボードを作り始めて半年ですが。
キーキャップは、かわいいじゃんと思って衝動買いしてしまったDOYSをいったんつけていますが、こちらも衝動買いしてしまったキーキャップ*10が来たら、そっちをつけようかなと思います。発送は7月くらいになりそうですが、今から楽しみです。

この記事は設計して組み立てたCygSUSで書きました。