プレートレスPCBガスケットマウント自作キーボードの製作(2)

今回はPCBやケース設計についての記事です。

 

ケースの設計

まずはケースの概略を考える。アルミ削り出しとかは費用的に手が出せないので、前回40%キーボードを自作したときに習得したアクリル接着を利用して作ることにした。まずは大まかな寸法で書いてみてイメージを具体化する。

 

Autodesk Fusion 360でデザインしたケースの全体図はこんなん。

f:id:kgnwsknt_chef:20211003141309p:plain

ケース全体図

 

箱を組むだけなら結構簡単にできるのだが次のことを考えるとなかなかに難しい。

  • ガスケット部分
  • 固定するためのねじは上面・側面からは見えないようにしたい
  • できるだけシンプルな部品にしたい

最後の点は、はざいやで加工をお願いしようと考えていたため。シンプルな形状であればWEB上で図面を書いて発注できるし、結構いい精度でカットしてくれているという印象のわりに単純な形状であれば数百円/パーツで作ってもらえるという利点がある。レーザーカットサービスもいいのだけれど、厚さや色の異なる部品を安く組み合わせられるし、ミスった時の痛手も小さい。

 

ガスケットタブはたいていの場合ある程度左右方向に幅があるが、このキーボードを自作するきっかけとなったEQUINOX XLは幅が狭い10mmくらい(?)のタブが前後に4つずつある。打鍵感を柔らかくするためだろうか。この細い幅のガスケットタブが気になっていたので真似てみる。幅10mmのタブをPCBの手前と奥の辺上に4個ずつ配置することにした。

 

一番悩んだのはガスケットタブ受けをどうやってつくるか?いろいろ思案した結果、以下の図のような構造を思いついた。

 

f:id:kgnwsknt_chef:20211003140254p:plain
f:id:kgnwsknt_chef:20211003141957p:plain
ガスケット受け

この部品はケース側面に接着され、PCBのガスケットタブ受けであると同時に、底板をねじ+スペーサーで固定する役割を持つ。底板はガスケットタブの近くで固定しないと板が振動してしまう気がするので、できるだけガスケットタブ近くで固定する必要があるだろうということからこの構造に行き着いた。これならレーザーカットで加工できる。ケースの四隅については底板の角をねじ止めしたいので非対称な形状にして、真ん中2つは対称な形状とし、2種類の部品を作ることにする。ガスケットタブの5mmくらいは受ける必要があることにすると5mm厚よりも厚いアクリルが必要となる。自分が知っている国内のアクリルレーザーカットサービスはアクリル5mm厚までしかないが、ELECROWだと結構厚いアクリルレーザーカットを比較的安価で作ってくれる。PCBと併せて発注して送料をケチることにして、8mm厚で作ることにした。

 

側面の板は5mm厚とした。接着時にセロテープで仮固定するのだが、このときにある程度厚みがないと直角が出なくてしっかり四角に組めないかなー、という心配があるから。腕が良ければ3mm厚でもいいのかもしれない。また、ガスケット受けを隠すために上面の前後に厚さ3mm、幅13mmの板をかぶせる。底板はキーボードの高さをできるだけ低くしたいと思ったので3mm厚にした。安く済ますためにこれもアクリルで作る。剛性がかなり心配だが、もし剛性が欲しいと感じたらステンレスに変更する(ケチってやらなさそうだけど)。

 

USBコネクタ基板と右上のブロッカープレートの固定方法については、考えるのが面倒になったので余ったアクリルとかで適当につければいいか、という雑な設計で進めることに。(大丈夫だろうか…)

 

PCBの設計

PCB基板の回路部分については、これまで作った基板を少し変更するだけで簡単に設計が終わるのだけれど、それだとただの作業になって面白くない。少しだけ新しい要素を導入する。自分的に新しい点は、

  • セラロックの導入
  • ESD回路の導入
  • 過電流防止用リセッタブルフューズの導入

の3つ。

 

セラロックはセラミック振動子とコンデンサが一体となったもの。これを使えばすこし省スペース化できる。周波数とキャパシタンスがあってれば動くだろうと思ってこれを選定したが、あとから調べるともっと小さいサイズのものがあったみたい…。結果としてたしいて省スペース化できていない。

 

ESD回路についてはまずこの記事にたどり着いた。

ATMega32u4を使う場合の設計メモ.md · GitHub

PRTR5V0U2Xというのを使えばいいみたい。どのように配線するのかいまいちわからなかったが、いくつかの自作キーボードのPCBの設計を真似る。KiCadのファイルを公開してくれているのは本当にありがたい。

 

また、過電流を防止するためのPolyfuse (リセッタブルfuse)も初めて導入してみた。

 

うーん、使い方や部品の選定あってるんだろうか?まあ動けばいいんだけど。これらの部品は、秋月電子またはRSで購入した。

 

下図はKiCadの3Dビューアーで表示させた基板。はんだ付け時のヒューマンエラーを減らすために各スイッチに付随するダイオードの向きはすべて同じになるようにした。右上のキーを配置していないところには4キー分の広大なスペースがあるので、ここにMCUなどをだいたい配置。ここにもキーを配置して頑張ってMCUを小さなスペースに収める努力をすると、よくある65%のように使うこともできるのだが、面倒になって脳みそ使わない楽な配置にしてしまった。そのうち65%にしたくなって新たに基板を作りそうな気がする…。

f:id:kgnwsknt_chef:20211005224127p:plain
f:id:kgnwsknt_chef:20211005224005p:plain
KiCadの3Dビューアーで表示した(左)基板の全体と、(右)MCU周辺


ATMega32U4のISCP書き込み用(この辺いまいちちゃんと理解できていない)と、OLEDをつけられるようにI2C用のスルーホールをあけておく。でもOLEDで表示させたいものも特にないので使わなさそうな気がする。

 

ケースの設計を詰める

PCBの設計が終わったので再びケースの設計に戻って寸法を最終決定し、底面のねじ穴などを整える。

f:id:kgnwsknt_chef:20211005230711p:plain
f:id:kgnwsknt_chef:20211005230041p:plain
ケース側面と底面

底板はねじ止めで着脱できるようにする設計だが、側面の枠の内寸とぴったりの寸法で底板作ると嵌められないor外せないということになるので、少し小さめの寸法にする必要がある。アクリルカットの精度&自分の箱組み接着の精度が予測できないが、とりあえず各辺0.1mmずつ小さめにしておく。結果としてきつすぎもなくガバガバすぎでもないピッタリの寸法だった。

 

底板の手前側には小さなクッションゴム、奥にはKBDfansとかで販売されている足をつけて傾斜をつける。だいたい6度くらいの傾斜になる。40%キーボードを作った時に5mm厚の真鍮ウェイトがかなり効果が高かったように感じたので、今回もつけられるように底板に穴をあけておく。前回穴の数が多くて面倒だったので、6か所で固定することにする。底板をアクリルで作るので、たわんだりしてウェイトの角が机に当たらないか少し心配だが、その場合には角を頑張ってやすりがけする。

 

いつも迷うのは、PCBとケース底板の間の間隔の寸法。今作はスイッチプレートがないので打鍵時にPCBがこれまで以上にたわむはず。あまりに変形が大きいとPCB底面(についている何か)と底板とが接触して不快な音が鳴る。これはガスケットマウントで起こるととても悲しい。間にフォームを入れると不快な音は緩和できるけどせっかくの柔らかさが損なわれる。これを避けるために余裕を持たせすぎるとキーボードが高くなってしまい、リストレストを嵩上げしないといけなくなってしまう。ギリギリセーフなところを攻めたいわけである。結局設計では3.6mmの間隔とした。吉と出るか凶と出るか。最悪の場合はガスケット厚を変更して対応する。

 

ケース設計が終わり、レンダリングしたのが下図。

f:id:kgnwsknt_chef:20211005225942p:plain

レンダリング

上面手前のガスケット部を隠す板はアクリルでなく金属板を使用して見た目のアクセントをつける。あと自分は親指をここに載せる癖があるので、金属のほうが掃除するとき気を使わなくいいかなということもある。ステンレスの鏡面仕上げにしたかったが高くつく&やすりがけ大変なので、これはアルミで作ることにした。失敗したなと思うのは板の幅を13mmという中途半端な寸法にしてしまったこと。15mmや20mmにしておくと材料が入手しやすくて安くできたかもしれない。アクリルの色はオレンジにすることにした。これまでは黒とか深い青色とか落ち着いた色ばっかりだったが、この自作キーボードは自分の中で試験機という位置づけなので、普段使い用では選ばない明るい色にしてみた。

 

以上のPCBとアクリル部品を設計ミスがないことを祈りながら発注。ケース材料のおおよその費用(アクリルパーツとアルミ板のみ、真鍮ウェイトと足は除く)は送料を除いて6500円くらい。送料を考えても1万円かかっていないので、1点ものの割には悪くないかなと思う(なお人件費は考えないものとする)。これでどんな打鍵感・打鍵音になるのかが楽しみなところ。

 

次の記事からは実物の組立などについて書く予定です。

 

 

プレートレスPCBガスケットマウント自作キーボードの製作(1)

プレートレスPCBガスケットマウントの自作キーボード製作についての記事です。

 

製作をしようと思ったきっかけ

2021年8月、EQUINOX XLとTHERA75のGroup Buyに参加するかどうか迷っていた。これらのキーボードではプレートレスPCBガスケットマウントを採用している。この特徴により、

  • スイッチプレートがなくPCBのみなので打鍵感が柔らかくなる
  • スイッチプレートがない分フォームを厚くして大きな吸音効果

が期待できる。これまで自作してきたキーボードは、スイッチの交換がしやすいようにすべてソケットでホットスワップにしていた。ただそうするとどうしてもスイッチを固定するためにスイッチプレートが必要となる。プレートは打鍵の硬さや打鍵音に大きな影響を与えるので、これがなくなったらどうなるのかとても興味がわいた。

 

EQUINOX XLはいつも魅力的なキーボードを生み出すai03さんが設計したもの。自作キーボードを嗜んでいる人ならai03さんのキーボードを1つは手にしてみたいと思うもの。また欲しくなった理由がもう一つある。自分が40%キーボードを設計していた際、キーキャップに困った。Rowで形状が異なるプロファイルだとRowの不一致が起こるし、印字までそろえるのは難しい(というか不可能?)。そこでコンパクトさを少し犠牲にしてよくあるキーキャップを使えるようにはどういう配列にすれば良いか、というのを考えたことがあった。

そんなことを考えた直後にEQUINOX XLの発表があったのでこれは運命ではと思っていた。

 

もう一つのGBされていたキーボードのTHERA75はEQUINOX XLに比べてサイズが大きめ。こちらにもっとも魅力を感じたのは5mm厚のフォームを使用している点。よくあるフォームはPCBとスイッチプレートの隙間を埋めるもので3.5mm厚程度であるのに対し、THERA75ではスイッチプレートがない分厚いフォームになっている。これにより大きな吸音効果が期待される。いくつか打鍵動画を見たところ打鍵音は自分好みのコトコトと落ち着いた感じでよさそう。

 

これらの非常に魅力的なキーボードのGBに参加しようかかなり悩んだが、最終的な結論としてはGBには参加せずに自作することにした。だいぶキーボードが増えているので、ある時から実際に使用するものだけを手元に置くということにしている。EQUINOX XLのキー数はやっぱり自分には少ないので普段使いにはならないし、一方THERA75のファンクションキーは自分には不必要で無駄に大きい。足して2で割ったくらいのサイズがちょうどいいのだけれど、どうしていつも自分の欲しいものは世の中に存在しないのか…。ということでなければ自分で作るという(いつもの)パターン。

 

キー配列

まずはKeyboard Layout Editorで配列を考える。基本はRow staggererd配列で、まだ自作したことのない60%か65%サイズでつくる。矢印キーは欲しくて、右シフトも残したいなと思うと65%サイズになる。というのをもとに考えたのが以下のキー配列。

f:id:kgnwsknt_chef:20211001215637p:plain

キー配列。スペースキーは6uか1+2+3uのどちらも対応できるようにすることにした。

結果としてあまり特徴のないキー配列になっているが、へそ曲がりなのでちょっと変化球を加える。

 

通常BSなどの右にキーが並ぶが、そうすると世の中にある65%と変わらなくなってつまらない。あえてキーは配置しないことにした。ここにはブロッカー的な蓋をしておいて、気が向いたらOLEDでも入れようかなと。自分にもっと美的センスがあればこのスペースに何か装飾的なものを配置するのだが…

 

スペースキーは6uまたは、1+2+3uの分割とした。スペースが6.25uでその右のAlt、Fn、Ctrlは1uで並べるというのがよくある65%の配列な気がするが、スペースを分割したときに「B」の真ん中で割りたいというのと、なんとなく使ったことのない6uのスペースにしてみたいという理由でこうした。6uにするとその右に0.25u余裕ができるので、右Alt、Fn、Ctrlのうち一番自分の使用頻度が高いFnの幅を1.25uにした。

 

設計を始める前に名前を考える

設計を始める前に名前を考える。これ決めないとファイル名とか整理しづらい。いろいろ考えたけれど、スイッチプレートに窮屈そうに束縛されていたスイッチを解き放つ、ということから連想してrelief64という名前にすることにした。

 

この続きはまたそのうち。

キーボード打鍵音の周波数解析(その2)

夏休みの自由研究としてキーボード打鍵音の周波数解析を行ったが、キーキャップのプロファイルによる違いを見るのを忘れていたので追加で調べた。前回と同じマイクで録音して同様の解析を行った。前回の解析法と結果の詳細についてはこちらの記事。

 

kgnwsknt-chef.hatenablog.com

 

スイッチ+キーキャップのみの場合の周波数スペクトル

スイッチとキーキャップのみの打鍵音をまず調べてみる。スイッチを指で持ってキーキャップを打鍵した音を録音。これを家にあったいろんなプロファイルのキーキャップ(すべてPBT)について行い周波数スペクトルの比較を行った。用いたスイッチはGateron Ink BlackのハウジングにUHMWPEステムを入れてルブしたもの。図は結果をまとめたもので、背が高めのプロファイル(MT3, SA, SA-P)は寒色系の点線で示してある。

f:id:kgnwsknt_chef:20210822170200p:plain

スイッチ+キーキャップのみの場合の周波数スペクトル

これを見ると、背の低いプロファイルのピーク周波数は背の高いプロファイルに比べて高音側に寄っている。これは背が低いと打鍵音が高く感じるという体感と一致する。ただしプロファイルによる違いはそれほど大きくなく、メインの成分は4-8kHzの範囲に分布している。

 

キーボードに取り付けた場合の比較

次はキーボードに取り付けた場合について調べた。使用したキーボードは真鍮プレートの40%キーボードhaze46(詳細は前回のブログ)。

f:id:kgnwsknt_chef:20210822170231p:plain

キーボードに取り付けた場合の周波数スペクトル

これ見ると、スイッチ+キーキャップ単体の場合に比べてプロファイルによる差が小さくなり、どの場合も似たようなスペクトルの形になっている。前回の周波数解析の結果をふまえると、真鍮のプレートが打鍵音を決めているのかもしれない。

 

実際の打鍵音はキーキャップによって少し違うように感じる。強いて言えばスペクトル上では背の高いキーキャップ(MT3, SA, SA-P)は1kHzあたりが少し大きめになっていて、これが実際の音の違いを示しているのかもしれない。

 

一方スイッチ+キーキャップ単体で測定したときには背の高いプロファイル3つは1kHzあたりはむしろ小さかった傾向がある。キーキャップにスペクトルに違い(=音色の違い)が現れるというのは良さそうだが、プロファイルよってどの周波数に変化が現れるかは、スイッチを嵌めているプレートなどに依存するようだ。

 

まとめ

キーキャップのプロファイルによる打鍵音の違いについて調べたが、キーボードに取り付けるとスペクトルの違いはわずかだった。打鍵音はキーキャップよりもスイッチプレートやケースの要因が大きいのではないかという印象を受ける(もちろんスイッチによっても大きく変わるはず)。ただし、実際に耳で聞く打鍵音には違いがあるので、周波数解析でキーキャップのわずかな違いを調べるのは向いていなさそう。今回使用したGateron Ink Black +UHMWPEをルブしたスイッチは打鍵音が比較的おとなしいが、底打ち音を軽快に鳴らすようなスイッチでは違う傾向になるかもしれない。

 

しかし家にこれだけの種類のキーキャップが存在していたことにちょっと驚いている。キーキャップの購入は抑制的であったつもりだったのだが…。

キーボード打鍵音の周波数解析

キーボードにこだわりを持つ人にとっては打鍵音は重要な要素の一つです。心地良いとずっとタイピングしてしまうほどの中毒性があります。これを求めて世界中の人々が様々な改造を試みており、youtubeの動画で改造方法やタイピング音を参考にすることができます。ただ、マイクなどの録音環境が異なると聴こえ方も全然違うために動画によって大きく印象が変わってしまいます。何とか打鍵音を数値化・可視化して比較することにより、客観的に分析することができないかという思いから、手元にある自作キーボードについて打鍵音の周波数解析を夏休みの自由研究として行ってみました。

目的

打鍵音の周波数解析の目的は主に以下の2点。

  • Modの効果を判断するための記録
  • 自分の好みの打鍵音の周波数スペクトルの形・特徴を見いだせないか

打鍵音向上のためにいろいろ改造を試しているが、その効果を確かめるのは難しい。というのも、改造前の打鍵音を記憶しておき、その記憶と改造後の打鍵音と比較することになるからだ。記憶ほどあてにならないものはない。改造すると打鍵音が向上するはずという思い込みによって大した効果がないのに打鍵音が変わったと思いこんでしまっているのではないか、という疑念がいつもつきまとう。全く同じキーボードを2つ用意して改造の効果を比較してみればよいが、それはあまりにも贅沢というもの。代わりに録音して周波数スペクトルを比較することができれば、ある程度客観的に効果を評価することができる。

周波数解析に用いたツール

打鍵音の録音用のマイクは安価なエレコムのHS-MC05UBKを使用。周波数帯域は20-20000Hz。周波数ごとにどれくらい感度が異なるかは不明。

 

録音とスペクトル解析には無料の音声編集ソフトAudacityを用いた。これのいいところはホワイトノイズを除去することができるところ。無音時の範囲を選択してエフェクト>ノイズの低減>ノイズプロファイルの取得をしたのち、Ctrl+Aで全体を選択してエフェクト>ノイズの低減>OKとする。これを行うと、サーというホワイトノイズ音を除去することができる。(ただし最近の記事でAudacityがスパイウェアに?というような記事もあるので別のソフトがいいかもしれない。)

f:id:kgnwsknt_chef:20210818223533p:plain

Audacityで無音部分を選択してノイズプロファイルを取得する

自作したキーボードの打鍵音の比較

まずは手元にある自作キーボードの打鍵音の周波数スペクトルを比較してみる。マイクを写真のように配置してGとHのキーを交互にタイプする音を録音した。また一緒に使用しているスイッチ+キーキャップをキーボードから取り外し、それだけの音も録音した。

f:id:kgnwsknt_chef:20210819162415j:plain

録音セットアップ

 

ホワイトノイズを除去したのちに、解析>スペクトル表示によって周波数スペクトルを取得し、ファイルに保存した数値をエクセルでプロットして比較したのが下の図。

f:id:kgnwsknt_chef:20210819170727p:plain

各キーボードとスイッチ+キーキャップの打鍵音の周波数スペクトル

スペクトルは多分時間で平均(?)されている。どういう平均をとっているかは知らない…。それぞれの録音時に同じ力加減でタイピングできていないだろうし、マイクとの距離もだいたい合わせてるだけなので、音量レベルの絶対値を正確に比較することはできないが、スペクトルの形は問題ないだろう。

 

測定した3つの自作キーボードの概要は以下の通り。

  • chex71 (Cu plate gasket mount)はこれまで自作した中で最高の出来の68キーの自作キーボード。銅のスイッチプレートをガスケットマウント。ケースの底面と上面をステンレス3mmにして遮音性を高め、フォームを仕込んだもの。打鍵音は静かでコトコトした音が鳴る。上の測定セットアップ写真のもの。
  • chex71 (acryl top mount)はトップマウントを試すために作ったもので、底面のステンレス3mm以外はアクリルのケース。アクリルのスイッチプレートをトップマウントでケースの上面に固定したのもの。PEフォームをスイッチとPCBの間に入れてある。打鍵音がカツカツと響く。うるさいのでお蔵入り状態。
  • haze46は最近作った40%キーボードでアクリルを箱組したケースにソルボセインを使ってボトムマウントしたもの。詳細はこちらのブログ。キーキャップが背の低いDSAプロファイルということもあって、打鍵音に多少カチャカチャした音が混じる。

 

この比較でわかったのは以下のこと。

  • キースイッチ+キーキャップはどれも4-8kHzに分布している
  • ガスケットマウントのchex71が最も音量レベルが小さいが、これは耳で(脳で?)感じる印象と一致する

この3つのキーボードのうち、実際の打鍵音が最もうるさいのはアクリルプレートトップマウント のchex71。人間の耳の感度は周波数に依存するが、kHzオーダーの音に最も敏感なのでこの領域を見る限り、実際の音のうるささ/静かさの順番とスペクトルのピークレベルの順番は一致している。


スイッチに接するパーツの有無による周波数スペクトルの比較

次に各パーツがスペクトルをどのように変化させるのかを調べた。ここでは比較的分解がしやすいキーボードであるhaze46について測定を行った。スイッチ、PCB、スイッチプレートなど、スイッチとそれに接するパーツについてスペクトルを比較したのが下図。

f:id:kgnwsknt_chef:20210819180548p:plain

スイッチ周辺パーツの有無のスペクトルの比較

録音しなおしたせいか、3つのキーボードを比較したスペクトルと比べて少し形が変わっているが大まかな形状は一致しているので細かい差異は気にしないことにする。これを見るとこのキーボードの打鍵音は、キーキャップ、スイッチ、真鍮のプレートで決まっているように見える。ただ、PCBをつけると変化して、キーボード全部組んだ時にまたスペクトル形状が戻っている。この理由はわからない。

 

このブログを書いているときにGBが行われていたThera75、Equinox XLというPCBガスケットマウントプレートレスのキーボードが気になっていたので、それを模してプレートがない場合の打鍵音も取得して比較した。1kHz以下に特に違いが見える。これは真鍮製のスイッチプレートが制振しているということだろうか?ただしGとHのスイッチしかつけていないので、平等な比較にはなっていない。また測定したPCBはホットスワップ用のソケットだが、はんだ付けしたら違う結果になるかもしれない。

 

ケースパーツの比較

ケースパーツについても音を比較。こちらの場合は、指でタップして音を鳴らした場合と、DSAキーキャップでたたいて音を鳴らした場合の比較を行った。

f:id:kgnwsknt_chef:20210818220017p:plain

ケースパーツのスペクトルの比較

結論としては、何でたたくかによってスペクトルの形状は大きく異なる。ケースの音を評価するのは困難。DSAキーキャップでたたいた場合の真鍮製ウェイトの有無を比較すると、1kHz前後が低減されている。これは真鍮ウェイトの制振効果によるものなのかもしれない。

 

人為的にスペクトルをいじってみる

Audacityではローパスフィルター機能を使って音を編集することができる。これで高音成分を減衰させた場合にどのような音に聞こえるか、という遊びをしてみた。下図はもともとの打鍵音のスペクトルと、10kHz以上、4kHz以上、2kHz以上を減衰させた場合のもの。

f:id:kgnwsknt_chef:20210818220631p:plain

ローパスフィルターで高周波数成分を除去したときのスペクトル

これらの編集した打鍵音を聞いてみると、音質が良くないながらも以下のことがわかる。

  • 10kHz以上の除去はほとんど変化を感じない。ただしもともとの音源の録音時に使用したマイクの感度が十分でない可能性もある。
  • 4kHz以上を除去すると、カチャカチャとした音が落ち着き、コトコトという音になる
  • 2kHz以上を除去するとかなり静音なキーボードという感じ

スイッチ+キーキャップの音は4-8kHzに分布しているので、これを抑えることが肝要そうである。それが実現できればコトコトした自分好みの打鍵音に近づくだろう。

 

まとめ

打鍵音やっぱりわからん、というのが感想。ただしいくつか収穫はあった。スイッチ+キーキャップが鳴らす4-8kHzの音を減衰できればかなり自分の好みなコトコト打鍵音に近くなる気がする。この周波数帯はフォームによる吸音が効くので、できるだけフォームを厚くする、あるいは遮音性の高いケースで音を反射させて何度もフォームを通させることで実効的なフォーム厚を稼ぐというのが良さそうな気がする。そういう点ではアルミ削り出しガスケットマウントのキーボードはまさにそういう構造になっているといえる。

 

さて、打鍵音を追い求めようとした場合、次のどちらが良いのだろうか?

  • スイッチの底面で鳴る音がキーボード上面から漏れないように、遮音性の高い密度の大きな素材のスイッチプレートを使い、それより下にあるフォームで吸音させる。PCBを使わずにハンドワイヤーにするとよりフォームの厚さを稼げるかもしれない。
  • スイッチはスイッチプレートなしでPCBに固定し、スイッチプレートがない分厚いフォームを使用して吸音させる。

 前者は今回測定した銅プレートガスケットマウントのchex71が近い。後者は現在GB中のThera75がまさにそういうデザインになっていて、youtubeの打鍵音も良さそうに聴こえる。GBどうしよ…

 

静音に興味がある人は

   これでわかる静音化対策 一宮亮一[著] 丸善出版

を読むと面白いかも。

フォースカーブ測定機を自作した

キーボードのスイッチの荷重 vs 押下位置のグラフ、いわゆるフォースカーブを測る装置の自作についての記事です。自作キーボードの沼に足を踏み入れた人ならフォースカーブを測りたいと思った人は多いはず。そんな願望をかなえてくれる装置(のはず)です。

 

動機

2021年現在、自作キーボード界では様々なMX互換スイッチが市場に溢れている。タクタイルスイッチは本当にいろんな感触のものがあるが、世の中で好まれているのはバンプが大きいスイッチみたい。一方、自分の好みはどちらかというと控えめのバンプ。そう、だいたい自分の欲しいものは世の中にないという悲しい事実。

 

無ければ作ってしまえ、となるのだが、スイッチをゼロから作ることはできる気がしないので、異なるスイッチのパーツを組み合わせるフランケン(キメラ)スイッチによって好みの打鍵感を実現しようと考えた。ただ、いざやってみるといろんなスイッチをどう比較するか、という問題に行き着く。単純にはそのスイッチの感覚を記憶したまま別のスイッチの感覚を確かめるか、あるいは打鍵時の印象を文字化して記録することになる。打鍵感については特にタクタイル感の強弱が重要なパラメーターとなるが、強い・弱いなどの定量性のない記録ではなかなか比較が難しい。

 

フォースカーブはスイッチの感触を数値化・可視化したものであり、最も客観的で比較のしやすいデータといえるだろう。ただし販売されているすべてのスイッチのフォースカーブが公開されているわけではないし、フランケンスイッチについてはもちろん全然情報がない。ということで自分でフォースカーブを測定するための装置を自作することにした。

 

参考にしたサイト

フォースカーブ測定機をゼロから自分で作れるわけはなく、先人から学ぶことになる。もともとフォースカーブ測定機の存在を知ったのはこのサイトだと思う。

www5f.biglobe.ne.jp

自分が自作キーボードの存在を知る何年も前は、市販されているキーボードを店頭で触ってどれが自分の好みなのか調べていた。そんな中このサイトの存在を知り、同じようにフォースカーブを測定したいと思ったもの。使用されている測定機は定盤とはかりと高さゲージを組み合わせたもの。なるほどこれでいいのかと思ったが、定盤+手動はハードルが高くて、真似するのはあきらめていた。

 

自作キーボードの沼に足を踏み入れてしばらくたったころ、きっかけが何だったか忘れたが、こちらのやり方を知った時はとてつもない衝撃を受けた。

sites.google.com

これこそまさに自分が長年欲していたもの!使われている部品を調べてみると、次のパーツで構成されていることがわかる。

  • 荷重を測定するロードセル
  • モーターがついていて上下移動ができるリニア機構
  • スイッチが押されたことを検知する基板がついているスイッチホルダー
  • これらを制御する何か

ロードセルというもので荷重を電気的に取得できることがわかった。これが自分にとっては一番の発見。ラズベリーパイで遊んだ経験があったので、頑張れば自動的に測定するものを自分で作れると思った。ということで長年欲しいと思っていたフォースカーブ測定機の自作にチャレンジしてみることにした。

 

構想

3Dプリンタは持っていないので、どうやって複数のパーツを組み立てるかが課題だった。リニア機構が悩ましかったが、ステッピングモーターとリニアガイドがはじめから組み合わさったものを手に入れることにした。駆動部分のしなりのために正確に測れないというのをどこかで目にしたので、結構ごっついもののほうが良いのかもと考えた。ロードセルの読み取りやモーター制御、スイッチのON/OFFの検知は少し経験のあったラズベリーパイで行うことにした。アクリル10mm厚の材料が自作キーボードのケース製作の余りであったので、それを使って各パーツを固定することにした。図は各パーツの選定後に雑に描いた組み立て図。

f:id:kgnwsknt_chef:20210811220234p:plain

フォースカーブ測定機の設計

リニア移動機構

ステッピングモーターとリニアガイドが一緒になっているものをAliexpressで調達。ねじのピッチが狭くて精度が出そうなものを選んだつもり。ちょっと高いかもとも思ったが、ここが測定の精度・信頼性を決めるかなと考えてポチった。記事書いてるときは30%OFFでだいぶ安くなっている。

ja.aliexpress.com

このモーターを制御するためのL298NドライバとACアダプタ12Vを組み合わせる。ドライバは確かアマゾンで購入。制御するためのライブラリはここのものを利用。

github.com

ドキュメントを参考にしてステッピングモーターとドライバの配線と制御の仕方を学ぶ。はじめ、ラズパイとドライバのGNDをつないでおらず、モーターをうまく制御できなかった。ちゃんとGNDもつなぎましょう。

 

荷重測定

荷重の測定はロードセルで行う。秋月電子で売ってる。

akizukidenshi.com

いくつか種類があるが、フルスケール500gに対して精度が0.05%なので、0.25gの精度ということかな?これなら十分。このロードセルの抵抗値の変化を読み取るためにHX711基板も秋月電子で入手しておく。

akizukidenshi.com

ラズベリーパイと組み合わせるやり方はたぶんここを参考にしたと思う。

qiita.com

 

ロードセルのリニアレールステージへの固定は、家に余っていたアルミアングルを使って固定。剛性が十分かちょっと不安だったけど測定している荷重の範囲では問題なさそう。ロードセルの先端にはスペーサーをねじ止め。この先っちょがキーキャップ天面を押すことになる。

f:id:kgnwsknt_chef:20210812155632j:plain

ロードセルの固定

キースイッチの検知

測定されているスイッチのON/OFFを検知すれば、アクチュエーション点も測定できる。ここを真似すればスイッチの検知ができる。

denkisekkeijin.com

TALPKEYBOARDで販売されているSU120基板にソケットをつけ、それとラズパイとをケーブルで配線する。そうすることで測定するスイッチの着脱が容易になる。

talpkeyboard.net

キースイッチホルダー

測定するスイッチをちゃんと固定しないと再現性の良い測定にならない。なので、スイッチのホルダーをアクリルで作成。レーザーカット加工をEmerge+に依頼。 

f:id:kgnwsknt_chef:20210812155603j:plain
f:id:kgnwsknt_chef:20210812155615j:plain
f:id:kgnwsknt_chef:20210812160044j:plain
キースイッチホルダー

ホルダーはアクリル5mm厚の部品を3枚重ねてねじ止め。ホルダー底面には丸形スペーサーを取り付ける。これがぴったりはまるように本体底板に電動ドリルで穴をあける。ホルダーのスペーサーをこの穴にはめることで常に同じ位置で固定・測定できるようにした。

 

また既製品のキーボードなど、スイッチがキーボードについた状態で測定するときは、ホルダーを取り外す。ホルダーは嵌めているだけでねじ止めしているわけではないので、簡単に着脱ができる。

組み立て

全部のパーツを組み合わせたのがこの写真。

f:id:kgnwsknt_chef:20210812155148j:plain

全体の写真

家にあったはざいのアクリル10mm厚の板を2つに切断し、ホームセンターで売っているアングルで直角に組む。リニアレールは立てたほうのアクリルにねじで固定。これで結構しっかりした構造になる。10mm厚のアクリルの切断はアクリルカッターで行ったがだいぶ大変だった。この厚さはのこぎりで切るのが正解だろう。

 

直角に立てたアクリル板には、モータードライバ基板とHX711基板を固定。HX711基板の固定は結構やっつけ仕事なのでしばしば外れる。

 

また制御ボタンを3個つけた。測定前にロードセルの高さを調整するための上下ボタンと、測定開始ボタン。これらのボタンはMX互換スイッチで構成し、余っていたキーキャップにそれっぽいシンボルを自家昇華印刷をしたものを取り付け。制御スイッチのホルダーは上記のスイッチホルダーと併せてEmerge+に依頼した。

 

基板やスイッチはケーブルでラズベリーパイと配線する。これのために40ピンのコネクタをはんだづけした基板を作った。これはラズベリーパイを他の用途に利用したくなった時に簡単に切り離し・再接続をできるようにするため。失敗だったのはケーブルのとりまわし。基板底面側をケーブルが通るので、コネクタを挿すときにケーブルに気を付けないと奥までコネクタがささらない残念な感じ。

f:id:kgnwsknt_chef:20210813164022j:plain

40ピンコネクタ基板



 

測定機の較正、精度の確認

とりあえず動くものができたわけだが、果たして本当に正しく測れているのか?以下の点を確認した。

  • 荷重の較正・確認
  • 位置測定の確認(較正)
  • フォースカーブ測定の再現性

まずは荷重の較正。写真のように電子はかりを押したときの電子はかりとロードセルの読みが一致するように較正を行う。

f:id:kgnwsknt_chef:20210812193108j:plain

電子はかりを用いたロードセルの較正の様子

較正に用いた電子はかりの精度がどんなもんか気になったので念のために分銅を買って確認。電子はかりは10、20、50、100gの分銅に対して0.1gまでぴったり一致する。全く問題ない。一方、較正した後に逆さまにしたロードセルに分銅を載せて確認すると、1g未満のずれ。さらに、ロードセルに負荷をかけた状態で様子を見ると徐々に荷重の読み取り値が減っていき、1分くらいで落ち着く。この減少は5g以内なので、まあ数g程度の精度は出ているかな、というのが結論。

 

次に位置測定の確認。位置はステッピングモーターをどれくらい回転させたかで計算することができる。例えばモーターを7.2度回転させると、ねじのピッチが1mmなので7.2/360 x 1mm=0.02mm変位することになる。なので何回転させたかでどれくらい変位したがわかる。ただし自分がステッピングモーターを思った通りに制御できているのか、Aliexpressで手に入れたものがスペック通りで十分精度がでているのかなど、いろいろ不安だったので次の方法でチェックした。

 

写真のようにノギスで厚さを測っておいたアルミのブロックに対してフォースカーブ測定(後述の測定シーケンス)を行う。すると測定スタート位置からどれくらい低い位置にブロック上面があるかがわかる。写真では厚さが10.70mmと20.40mmのものを組み合わせているが、20.40mmだけ、10.70mmだけとすると、異なる高さ3点を測定していることに対応する。この3点の間隔があっているかで変位の確認ができる。

f:id:kgnwsknt_chef:20210812193955j:plain
f:id:kgnwsknt_chef:20210812164613p:plain
位置測定の確認(較正)方法とその結果

結果は0.4%程度長めに測定されているみたい(ただしブロックの厚さを測定しているノギスの精度と同程度)。キースイッチのストロークは4mmくらいなので、0.4%のずれは0.016mmに相当し、これは十分無視していいレベル。まあせっかくなのであとで補正することにした。

 

あとは再現性の確認。同じスイッチを3回測ってみるとほぼ同じ結果を与える。かなり再現性は良い様子。また違う個体を測ってみるとスイッチ製造のバラつきがあることがわかる。個体差がわかる程度の精度はあるみたい。

f:id:kgnwsknt_chef:20210812184625p:plain
f:id:kgnwsknt_chef:20210812184640p:plain
Gateron Silent Brownの測定結果。同じ個体を3回測定した場合と、異なる3つの個体を測定した場合。

 

測定シーケンス

 最終的な測定シーケンスは以下のようにした。

  1. 測定開始スイッチのONを検知。
  2. ロードセルのゼロ点を補正。
  3. 0.02mm下に移動し、荷重を測定。キースイッチがONかOFFかを読み取る。
  4. ステップ3を繰り返し、荷重が150gを超えた(=スイッチを底まで押した)ら変位の向きを反転。
  5. 同様に上に0.02mm移動し、荷重測定・キースイッチのON/OFFのチェックを繰り返す。これを測定開始位置まで続ける。
  6. 測定値をファイルに出力
  7. ファイル出力された生データ読み込み、位置のゼロ点(荷重が0.1gを超えたところをTravel=0とする)を補正。また変位の0.4%のずれも補正。補正後のデータをファイルに出力
  8. 補正後のデータファイルを読み込んでmatplotlibを使ってフォースカーブのpngファイルを作成

これで測定とデータの補正、図の作成を自動化することができた。ボタン一つでフォースカーブの図ができる!

 

得られたフォースカーブはどれくらい正しいのか?

じつはこれが一番悩ましい点かもしれない。Majestouchから取り外していたCherry MX Brownスイッチを測定してメーカーのフォースカーブと比較してみる。自分の測定結果は以下の通り。

f:id:kgnwsknt_chef:20210812185431p:plain

Cherry MX Brownの測定結果

これをCherryのページのフォースカーブと比較すると、形はかなり似ている。ただ、タクタイルの山の位置が0.4mm程度ずれている。また重さも少し違う。ストローク長は同じ?

 

別のレファレンスはここ。

input.club

タクタイルの山の位置は一致するが、アクチュエーション点がすこし違う。ストローク長はこちらのほうが少し短め。

 

自分が取得したフォースカーブの形はどちらとも近く、荷重もそれほど大きくは違わないので、結構いい感じに測定できていると思う。

 

もともとこのフォースカーブ測定機は、自分の感触を可視化して記録するというために作ったようなもの。同じ測定機で取得したフォースカーブからキースイッチの相対的な違いがわかれば十分役割を果たしていることになるのでOK。荷重やストローク長の絶対値などを議論しようと思うとより精度を上げる必要があるだろう。

 

作ってみて、使ってみて

リニアガイド付きステッピングモーターの位置精度と再現性、またロードセルを固定するアルミアングルの剛性を心配していたが、満足のいく精度の測定結果が得られた。

 

このフォースカーブ測定機はスイッチ単体だけでなく、既製品のキーボードのフォースカーブ測定もできる(ただしケースの端に近いキーのみ)。下図は昔愛用していたLibertouchの測定の様子とその結果。

f:id:kgnwsknt_chef:20210812192436p:plain
f:id:kgnwsknt_chef:20210812192500p:plain
Libertouchの測定の様子とフォースカーブの測定結果

 

フォースカーブが測定できるようになると、感覚に頼っていたフランケン(キメラ)スイッチによる自分好みのスイッチの探求を客観的データに基づいて行うことができる。おそらく自分が求めているタクタイル感はこのLibertouchに近い気がしているので、このフォースカーブと近い形を示すフランケンスイッチを作ることができればよいはず。

 

フォースカーブのギザギザ(滑らか)具合はスイッチの滑らかさを反映しているのではないかと考えている。実際ルブのあるなしである個体のフォースカーブを比較すると、ルブしたほうがカーブが滑らかになる。ただし、ステムのぐらつきも影響している可能性もあるので、異なるスイッチの滑らかさを比較するのは難しいのではないかと思う。滑らかさも数値化できるといいんですけどね。

 

課題・願望

キーボードにスイッチがついた状態でも測定できるのは良い点だと思う。このおかげで、例えばガスケットマウントの柔らかさなども評価できるはず(やってないけど)。ケースの端に近いスイッチしか測定できないのが少し残念なところ。改善の余地あり。

 

フォースカーブの図を作るのは自動化できたが、例えば複数のスイッチの比較はいまだにExcelに頼っている状態。まあちょこっとpythonのプログラム書けばいいだけなんだけど…。理想はデータベース化して簡単に比較できるようになること。ただ、フォースカーブを測るのは楽しいけど、データの整理と管理が一番大変なのよね。

 

最近は本当にいろんなスイッチがたくさん市場に出まわっている。選択肢が多いのは何よりだが、販売サイトで得られる情報は素材とストローク長と文字による説明に限られている場合が多い。そのために購入して触ってみるまでは結局のところはわからないというガチャ感がある(だから皆新しいスイッチを際限なく買ってしまうのかもしれない)。いろんなスイッチのフォースカーブを測定してまとめサイトみたいなものを誰か作ってくれないかなー。

40%サイズの自作キーボードを作った

小さいサイズ、いわゆる40%キーボードの自作についての記事です。キー配列をどうするか、基板の設計の難しかった点、ケースの製作について試したことなど。皆さんの自作キーボードの参考になれば幸いです。

 

小さいサイズのキーボードを作り始めるきっかけ

2021年4月、ゴールデンウィークの間に何をしようか考えていた。自作していた68キーのキーボードがちょうど完成して、

とつぶやいたら有名ユーチューバーにリツイートされてびっくりした。

 

まあでもこんなことをつぶやいている時点で新たにキーボードを作る頭になっているわけで。完成した68キーのキーボードはかなり満足度が高いので、全然キー配列の違ういわゆる40%キーボードを作ることにした。キーボードが増えてきてて置き場に困り始めているけど、いわゆる40%サイズなら小さいから誤差みたいなもんだよね、と受け入れたくない現実から目を背けて設計・製作を始めた。

 

40%キーボードにはどんなものがあるのか?

40%キーボードについてまずは世の中にあるものを調べてみる。こちらの記事は代表的なものを比較していてとても参考になった。

romly.com

どれもなかなか魅力的。Planckは横幅12uのOrtho Linear。四角いケースへのおさまりが良い。ただ、普段Row staggeredを使っていてOrtho Linearで果たしてまともにタイピングできるのだろうかという不安からパス(単なる食わず嫌いかもしれない)。Vortex coreは横幅13uの既製品。キーキャップの印字のフォントサイズが控え目でずーっと気になっているキーボード。ただ自分は矢印キーが欲しい人間なのでこれもパス。MiniVanは12.75u幅のRow staggered配列で良さそうに思ったが、真ん中手前の2uと2.25uの片方は1uくらいでいいからちょっと自分が欲しいものとは違う。ということで結局自作することにした。

 

キー配列を考える

Keyboard Layout Editorを使って、MiniVanの配列を出発点にしてキー配列を考える。最終的に以下の配列になった。

f:id:kgnwsknt_chef:20210727231138p:plain

キー配列
  • 矢印キーを右下に一列に配置。矢印が横一列に並ぶキーボードはこれまで使用したことがなかったが、これくらいは慣れるように頑張ろうと決心。
  • 数字や記号の多くはfnと一緒に押すことで入力することになる。数字を入力するためのfnと、普通は数字+シフトで入力する記号を入力するためのfnの2つのfnキーを配置することに。
  • はじめ普通の英語キーボードの配列と同じように「;」キーをLの右隣に配置していたが、「;」よりも「-」のほうが使用頻度が高いことに気づく。これはカタカナの長音記号をタイプするから。Twitterで教えてもらったように「-」キーをfnキーなしで入力できるようにLの隣に配置することにした。
  • カッコはだいたいペアで使用するので、隣同士に配置。
  • 残りのF1-F12とか、[~]などの記号の配置は割と適当。

 

悩んだのはスペースキーのサイズと位置。自分は日本語入力で漢字変換するときに、スペースキーを右親指だけでなく左親指でもタイプすることがどうもあるみたい。であればできるだけスペースキーの幅を大きくしたくなるが、3u幅だとスタビライザーのワイヤーが入手できない(最近は遊舎工房でも取り扱いが始まったみたい)。ということからスタビライザーの入手性がよくて最も幅のある2.75uとすることにした。

 

加えて、

  • スペースキーの左右にある2つのfnキーの幅を対称にして、1uよりは大きくしたい
  • 右下の矢印キーに4u分が必要

という制約を課すと手前の列は自然とこのような形となる。スペースキーを右親指で押しづらくはないだろうかと心配したが、長年愛用していた日本語配列のLibertouchでも同じ位置にスペースキーの右端が来ているので問題なかろうと判断した。

 

基板の設計・製作

これまでテンキーレスサイズの基板を数回設計・製作しているので、ほとんどそのやり方を踏襲すれば作れる。ただし、このサイズになるとMCU(Atmega32U4)を配置するスペースがなくて、どこにどう配置するかがちょっと難しい。Planckの基板の画像をよく観察して参考にし、以下のように配置した。

f:id:kgnwsknt_chef:20210730205348p:plain

MCU(Atmega32U4)周辺の配線(GNDベタは非表示)

USBレセプタクルはキーボード基板に直接つけず、別途USB基板を用意して、ケーブルでつなぐ。これは最近の自分の常套手段。こうするとケースを設計する際、USBレセプタクルのための穴をどうするか決めやすい(特にガスケットマウントなどのPCBプレートの高さがきっちり決めづらい場合)。

 

MiniVanと同じサイズ(12.75u x 4u)なので、市販されているケースを流用できるかと思ったけど、PCBの穴位置を調べるのが面倒だし、USBコネクタの部分が合わないだろうということで結局互換性はなし。
 

今回はJLCPCBで作ってみた。ベコベコの箱が到着したが、基板に特に問題はなかった(良かった)。一緒にジグソーパズルが同封されていた。ちょっとうれしい。(でも本当は梱包材をしっかり入れてくれるほうが嬉しいけれど。)

f:id:kgnwsknt_chef:20210731190338j:plain
f:id:kgnwsknt_chef:20210730200855j:plain
届いた箱とその中身

 

真鍮プレート

プレートは真鍮にしようか、それに比べて安価なアルミにしようか迷ったが、銅プレートで作ったキーボードが自分の中で一番音が好みだったので、物理特性が近い真鍮を選択することにした。ソケットやUSB基板などをはんだづけ後、適当なスイッチをつけてプレートと組み合わせたのが下の写真。

f:id:kgnwsknt_chef:20210730200956j:plain

PCBと真鍮プレートに適当なスイッチをつけた様子

写真の左端の小さな穴の下にはリセットスイッチがある。PCBの底面側につけると、キーボードを分解するかケースに穴をあけておかないと押せないが、リセットスイッチを上面につけてプレートに穴をあけておくとキーキャップを外すだけで押せるのでおすすめ。

 

ケースの設計

 自作キーボードでいつも悩むのがケース。今回のケースではこれまで試したことのなかった以下の要素を取り入れることにした。

  • アクリルを接着して箱型のケースを作る
  • ケース内部でチルトをつける(底板は水平)
  • ウェイトを入れる
  • パテを入れる

ということで以下のようなケースを設計した。

f:id:kgnwsknt_chef:20210731160548p:plain

ケースの右側面から見た図。側面のアクリル板と一部のスペーサーは非表示。

アクリル端面での接着でどれくらい強度が出るのかが心配だったので、色の選択肢が多くて厚めの5mm厚を使用することにした。USBコネクタ口の穴があいている側面のアクリル板は傾いているため、底板とは角でしか接していない。そのために左右側面の板との接着だけで強度を持たせる必要があるが、まあ重さを支えているわけではないのだ大丈夫だろうと考えた(実際強度は十分だった)。寸法を決める際に、PCB/プレートとケースの間にある程度のクリアランスが必要となる。

  • アクリルカットの精度
  • マウント方法の精度
  • PCB、プレートの精度

が関係していて、特にアクリルのノコカットの精度がどの程度か経験がなかったので不安があった。プレートとケース側面の間のクリアランスは、プレート左右(長手)方向は両側1mmずづ、前後方向は0.5mmずつ取ることにした。結果としてアクリルカットの精度はかなり高かったように思う。そのおかげで丁度良い感じに仕上がったが、0.5mmはかなりぎりぎりで位置合わせが大変だった。今回のようにいいかげんなマウント方法をとる場合には両側1mmくらいクリアランスを取っておくのが良さそう。

 

高級なカスタムキーボードでは真鍮製のウェイトがケース底面にあることが多い。この効果がどれほどのものか気になっていたので試すことにした。真鍮のウェイトは5mm厚で前後方向の幅は30mm。アクリル底板にキリ穴をあけておいて、ウェイトにタップ穴をあけて底面からねじで固定する。

 

ケースに対して傾いているキーボード部分をどう固定かは最後までいいアイデアが思いつかなかった。とりあえずPCBにスペーサーを取り付けるための穴をあけておいて、後で現物見ながらなんとかするという方針に。最悪パテでスペーサーをケースに固定してボトムパテマウントってことでいいよね、という見切り発車で製作を開始した。スペーサーの取り付けのためにドライバーを通すための穴をプレートにもあけておく。

 

アクリルケースの製作

アクリル板ははざいやに穴加工も含めて発注。5mm厚のウルトラマリンのキャスト材。簡単な形状であればWEB上で図面を書いて見積もりが出る。USBコネクタ用の長穴と底面にウェイトを固定する用の穴加工を併せて頼んだ。底面にUSBコネクタ基板を固定するためのM2タップ穴は自分であけた。これは穴位置が端に近すぎて加工の許容範囲から外れるため。経験的にはアクリル板への穴あけは普通の電動ドリル+ドリルビットでφ3mmくらいまでは問題なくあけることができる。φ4mmを超えてくると欠けたりするのでアクリル専用のドリルビットを使うのが良いと思う。

 

今回のケース用のアクリル板5枚は送料含めて5千円台でできた。カット面の仕上げはケチって依頼しなかったが、穴加工も含めてこの値段は助かる。発注後に1つの板の寸法を間違えていることが発覚( 254.9mmとすべきところを245.9 mmにしてしまうという…)。余計に費用が掛かってしまったが単価が安いので助かった。

材料が到着後、アクリルケースを接着して箱組する前にPCBのマウント方法を確認。PCBにスペーサーをつけて、スペーサーにプラスチックの板(何の板だったかな…)を接着。それをソルボセインの上に載せてマウントした。ソルボセインの程よい粘着力のおかげでちゃんと固定されるし、取り外すこともできる。そして衝撃吸収も。

f:id:kgnwsknt_chef:20210730201528j:plain

PCBのマウント方法

PCBのマウント方法を確認できたので、アクリルケースの箱組を行う。ただしその前に下ごしらえが必要。箱になった時に手で触れる可能性のある辺の面取りを行う(実際作業中に指を切ったので結構危険です)。ノコカットされた端面はわりとざらざら。レーザーカット面はそれに比べるときれいだがそのままでは美観を損ねる。なので組立後に上面と側面にくるカット面についてはやすりをかけてピカールケアーで磨いてツヤツヤに。

 

下ごしらえが終わったらいよいよアクリルの接着。ぶっつけ本番は怖いので、寸法を間違えたアクリル板と家にあった適当なアクリルを使って接着のテスト。2つをセロテープで固定。アクリル用接着剤をシリンジで接着面の角に流し込む。接着剤にはスポイトが付属しているが、これは全然使えないという記事を見かけたので、家にあったシリンジを使用。はじめは素手で作業していたが、接着剤が少し指に触れるとピリピリして身の危険を感じたので、ポリ手袋をした。換気も忘れずに。

f:id:kgnwsknt_chef:20210801085208p:plain

アクリル接着のテスト

 

板厚5mmあると接着強度は十分。手で取ることはできないくらいがっちりとくっつく。透明アクリルでテストしてみてわかったが、接着面に気泡がたくさん入っている。透明のアクリル板を接着面まできれいにくっつけるのは職人技が必要そう。

 

いよいよ本番。箱の形にしてセロテープでしっかり固定。これをいかに丁寧にやるかで仕上がりが決まると思う。USB基板を取り付けるためのねじ穴も念のためふさいでおく。接着剤を多めに(傾けると垂れるくらい)流し込んだために仕上がりが一部きれいでなくなってしまった。結構少なくても十分な気がする。まあ組み立てたら見えない部分なのでよし。

 

写真は接着直後。接着剤を垂らしてしまったところが白くなってしまっている。まあ組み立てたら見えない部分だし気にしない。多分すぐに固まるけど一応24時間放置。その後、ケース底面にはウレタンのゴムクッションを4隅に貼り付けた。

f:id:kgnwsknt_chef:20210730201633j:plain

アクリルケースの接着

 

真鍮ウェイト

真鍮板はモノタロウで発注。5mm厚で寸法を指定して切断してくれるのを利用した。固定用のタップ穴は自分であけた。タップ穴の深さを板厚ギリギリにしたので、少しタップ穴のところがモコっとなってしまっている。通し穴でもよかったかも。穴あけ加工後はピカールケアーで磨いてアクリルケース底面にねじ止め。ウェイトを取り付けると結構テンション上がる。

f:id:kgnwsknt_chef:20210730201747j:plain

真鍮プレートの取り付け

キーボード部分をケースにマウント

USB基板をケース底面にねじ止めしたのちにPCB、プレートのセットをマウント。ありあわせの材料でマウントした割には傾きがケースとぴったりになったのはうれしい。

f:id:kgnwsknt_chef:20210731172825j:plain
f:id:kgnwsknt_chef:20210731172837j:plain
ケースにキーボード部分をマウント。一時的に家にあったキースイッチとキーキャップをつけてある。

 

パテを仕込む

ついでに界隈で話題に上がっていたパテを仕込んでみた。せっかくなので高比重パテを仕込む。USB基板を取り付けた状態でパテを埋める。パテを取り去るのは大変というのをTwitterで拝見したので、後からきれいに剥がせるようにサランラップに包んで仕込んだ。ただしサランラップの余っている部分が多すぎるとサランラップ音がするので、余分なサランラップはカット。

f:id:kgnwsknt_chef:20210730204615j:plain

パテをサランラップに包んで盛る

すべて組み立てた場合の重量は842gだったが、パテを入れると1080gに増えた。このサイズでこの重量はなかなかのもの。ただし打鍵音に対するパテの効果はそれほど感じなかった。そもそも入れていた真鍮のウェイト(重量は300g程度)が効いている気がする。プレートとPCBの間に詰めるのが効くというのをTwitterか何かで見たような気もする。あるいはパテが基板やケースに直接くっついているのが重要なのかも?

 

キースイッチとスタビライザー

キースイッチは最終的には

  • Gateron Ink Blackのハウジング
  • 415keysで購入できるUHMWPEステム(rev4)
  • SPRIT MX 55s Slow (スプリング)

を組み合わせたものを使用した。下図がフォースカーブ(自作フォースカーブ測定機で測定)。はじめはもう少し押しはじめが軽いスプリングにしていたが、軽すぎたのでこちらのバネにした。ちょうどいい気がする。

f:id:kgnwsknt_chef:20210801144137p:plain

フォースカーブ


スタビライザーは、Everglideのものを初めて使用してみた。スタビライザーがうるさいのがいつも悩みの種だが、最近はこのYoutubeのModをやっている。さらにKBDfans Stabilizers foam stickerを貼り付けてLubeするとかなりカチャカチャ音が抑えられていい感じになる。

www.youtube.com

 

キーキャップの製作

 このキー配列だと、市販のキーキャップセットだとどうしても印字がキーアサイン通りにはならない。またfnと組み合わせた入力は独自なので合うキーキャップセットがあるわけがない。そこで自分で印字を昇華印刷することにした。詳細はこの記事で。

kgnwsknt-chef.hatenablog.com

完成!

完成したキーボードの写真がこちら。

f:id:kgnwsknt_chef:20210724211723j:plain

自作40%キーボード

作ってみて・使ってみて

アクリルの箱組は結構きれいにできた。チルトをつけなければ割と簡単にオリジナルのケースが作れて愛着がわくのでお勧め。また真鍮ウェイトの効果は大きそうであることを学ぶことができた。

 

このキーボードで文章を書くのは問題なくできる。まあこれまで使用してきたRow Staggeredの配列なので当たり前か。しばらくこのキーボードを使用した後に普通の配列のキーボードを使用すると、backspaceが遠い。なかなか慣れないのは記号。これは手元を見ないとまだ難しい。数字の入力も苦戦する。すんなり順応できたのはDelete。これはBackspace+fnに割り当てているが、誤爆しないのは役割が似ているからかな?

 

この片手で持てるサイズ感は何とも言えない俺のキーボード感がある。これが人々が小さいサイズのキーボードを好む理由なのだろうか。ずっとやりたかったVortex core風のキーキャップへの印字を自家昇華印刷できたのでかなり満足感が高い。

 

不満があるとすれば高さ。キーキャップ上面がちょっと高いので市販品のアームレストが低く感じる。もう少しケースを薄くできると良さそう。もう一点の不満は、Row Staggeredなのに矢印キーとその上の列がOrtho Linearのようにキーが揃ってしまっていること。Row StaggeredならやっぱりどのRowもキーがずれているほうがしっくりくる気がする。これを解決するには配列のさらなる探求が必要。

 

そして最近またこれになっている。

 

 

 

 

自作キーボード用のキーキャップ自家昇華印刷

 なぜ自家昇華印刷なのか?

最近40%キーボードを自作した。とてもコンパクトでキー数の少ないキーボードを好む人々の気持ちがわかった気がする。しかしキーボードにこだわって愛着がわくとキーキャップもこだわりたくなるもの。作ったキーボードの配列は以下のようなもの。

f:id:kgnwsknt_chef:20210723213916p:plain

自作した40%キーボードのキー配列

この配列ではキーキャップに関してこれらの点に困る。

  • 市販されているキーキャップだとModifierの印字は一部無視しないといけない
  • Rowで高さが変わるキーキャップだと、Q列のBackspaceなどサイズが適合するものが見つけられない
  • fn1、fn2と組み合わせる入力の配列は独自のもので、これに適合する印字のキーキャップが世の中に存在しない

これらは(Plank以外の)40%サイズのキーボードではおそらく共通の悩み。fnと組み合わせた入力については常用していなければ忘れてしまうので、これらも印字されていてほしい。

 

そこで自家昇華印刷。キーキャップはどのRowでも同じ高さのDSAプロファイルを使うことにした。TalpKeyboardでブランクキーキャップを調達。1uだけでなくいろんなサイズがそろっていてConvexキーもちゃんとある。これらを国内で買えるのでとっても助かる。

 

印字データの作成

さて、どういう印字をしたもんかと考える。これまで購入してきたキーキャップセットであった不満は以下のようなもの。

  • アルファベットの印字がフォントサイズ大き目
  • アルファベットはセンターに印字されているものが結構多い
  • Modifierキーの文字はアルファベットに比べて小さいフォントサイズになっているので、ちょっとバランスが悪い感じがする

(もちろんこれにあてはならないものもある。例えば高級なGMKのキーキャップについては、初めの2点は当てはまらないが、自分はテカテカしてくるABSは嫌&cherry profileの打鍵音が好みでない、ということからGMKのキーキャップ購入したことがない…。)

 

これらの不満を解消すべく印字するデータを作成する。印字データはInkscapeで作成した。Inkscapeから直接印刷しようとするとエラーになったので、一旦PDFに出力してから印刷した。PDF出力前に左右を反転させるのを忘れずに。下図はInkscapeで作成したデータ。

 

f:id:kgnwsknt_chef:20210730211923p:plain
f:id:kgnwsknt_chef:20210730212009p:plain
Inkscapeで作成した印字データ


 印字の位置

アルファベットキーについてはフォントサイズはやや小さめにして、キーキャップの中央でなく左上に文字を配置することにした(図は左右反転しているので右上に来ている)。「,」などのキーはShiftを押したときに入力される「<」も印字されている。ただし、キーキャップによって、それらが上下に並ぶものもあれば、左右に並ぶものもあり、また「<」「,」の上下左右の順番も異なるみたい。おそらく一番例が多いと思われる上下の並びで「<」を上に配置することにした。

fnと組み合わせたときの入力については、Vortex coreの印字が前々からクールに感じていたので側面に印字することに決定。フォントサイズは小さめにする。

 

印字する文字の太さの調節

キーキャップ全体の調和を取るには、アルファベットキーとModifierとで線の太さ、印字の大きさをできるだけそろえるのが良いように思う。個人的にはMBK Legendキーキャップのアルファベットと記号のModifierの組み合わせがバランスが取れていていいと思う(GB未参加だけれど…)。この線の太さのバランスを意識して印字デザインを考えた。

 

転写紙に印刷するときのプリンタの設定

プリンタはEPSONのPX-105を使用しているが、印刷時に用紙の種類と品質を選べる。用紙の種類はこれまでずっと写真用紙を選択していた(だって普通紙よりもきれいにできそうな感じがするじゃないですか)。ただ、写真用紙にするとどうも黒色が赤みがかるので、他の用紙種類を試した。

f:id:kgnwsknt_chef:20210724163039p:plain

用紙設定を普通紙(左上)、写真用紙(真ん中)、フォトマット(左下)にした場合の違い

 結論は普通紙で良い。品質は普通からきれいに変更する(品質を変えてどう変わるかは比較していないので不明)。

 

転写する文字の位置調整

自家昇華印刷で大変なのは、キーキャップと転写紙の位置合わせ。これを行いやすくするためにトンボ(カット位置を示す角の印)をつけた。グリッドを利用して文字の位置を合わせるのが必須。上のデータでは8x8グリッドのサイズで1辺10.58mmとなっている。これはDSAの天面の四角11.5mmより少し小さめ。

 

印刷後にトンボの位置で1つずつカットする。トンボの線の真ん中でカットすると四隅に少しだけ黒が残るので、転写時に移らないように角を少しだけカットしておく。カット後に転写紙をキーキャップに耐熱テープで固定する。この時に転写紙とキーキャップの端の隙間が4辺でそろうように位置を合わせればよい。人間の目は結構感度が高いので、丁寧にやればかなり精度よく位置を合わせられる。これを黙々と丁寧にやる。根気がいります。

f:id:kgnwsknt_chef:20210724203321j:plain
f:id:kgnwsknt_chef:20210724203338j:plain
切り取った転写紙とそれをキーキャップに貼り付けた様子

いざ熱転写

転写紙をテープで貼り付けたら準備完了。あとは熱を加えて転写する。熱転写にはこの自作熱転写機を使用した。

kgnwsknt-chef.hatenablog.com

 

完成!

  完成したキーキャップを取り付けた完成版40%キーボードはこちら。

 

f:id:kgnwsknt_chef:20210724211723j:plain

自家昇華印刷したキーキャップを取り付けた自作40%キーボード

かなり満足度の高い仕上がり。いくつかのキーは黒いポツポツがあるが、これは転写紙に印刷するときに汚れてしまったのかもしれない。この点を気を付けると完璧となる気がする。Windowsキーはなんかオリジナルな印字をと思ったけどいまいち思いつかなかったので、遊びで作った錯覚キーキャップをつけた。

f:id:kgnwsknt_chef:20210730213449p:plain

錯覚するキーキャップ

 

かなり満足のいく仕上がりのキーキャップができました。めでたしめでたし。気が向いたら自作した40%キーボードの作成についてもブログを書くかも。