[IT系DIY] 自作キーボード始めました(笑)(2025/03/07追記)

秋月電子の罠にハマってしもうた…

先日、秋月へ足りない部品の買い出しに行った時に、なんかジャンクコーナーに妙なモンがあったんや…

ケースなし、バラしたキートップ込みで200円(爆)。現場では拡大鏡もなかったので厳密に確認できなかったけど、帰って確認したら、案の定チェリーのMXシリーズのスイッチ。

赤軸は、いわゆる標準の奴やね。メカニカルキースイッチが100個以上ついてるジャンクが200円…買うしかないっしょ(爆)

(あああ、罠や、罠に落ちた)

で、色々調べてとりあえずココまで設計が済んだ(爆)。マイコン関係は、今回はメンドクサイ(笑)ので、素直にArduino Pro Microを採用。8 * 10で80キーまで対応のトコ、74キーまで使った。

基本は今使ってるHHKBの配列のまま、ファンクションキーとカーソルキーを追加しただけって感じかな。

これを設計するための調査のおかげで、色々と新しい知識が得られましたわ。

  • 昔懐かしいCherryが作ってるmxシリーズが今もスイッチの基本
  • キー配列は19mmピッチと言われるけど、厳密には19.05mmで、これは2.54mm換算で7.5
  • 19mmを基準(1u)として1.25u, 1.50u, 1.75u, 2.00u, 2.25u, 2.50u…みたいに微妙な幅でキートップが設定されてる
  • スイッチの置き方に上下がある…LED枠を上にするか下にするか 下が基本やけど、なぜか現状は上が多い
  • 基板直置きだけで固定されるスイッチと、フレームが必要なスイッチがある
  • キートップだけで色々な会社からワンサカ出てる
  • キートップのプロフィール(横から見た断面形状)に何種類かある。
  • キートップの材質/構造にも何種類かある

で、市販のキートップの状況をみてると、どうもコマンドキーの多くが1.25u(HHKBは1.5u)なのと、同じく多くのスペースバーが6.25u(HHKBは6u)なので、ココを一般的な方に変更して設計した。

キースイッチの底には一応足となるポッチがあって、これで基板表面のパターンとスイッチの底が直接当たらないように配慮されてるみたいなので、逆にコッチのフットプリントでソコに必ずGNDの銅箔が来る&シルクで嵩上げするような設計にした。当然、その場所には配線は一切通さないよ。

なお、今の所予定はないが、フットプリントには他にもLEDのランドとかも装備しておいた。

で、某所に発注しておいたキートップが到着したので、早速並べてみた。

とりあえず足りそうやな。Deleteの代わりにBackが入ってるのがご愛嬌やけど。この辺は追々色々キートップを変えていくつもり。また、WINキーのトコには当然コマンドキーが入るよ。

さて、後はスタビライザ到着待ちやな。ソイツの寸法関係の確認が済んだら基板の設計を見直して発注しますかね。

(2024/10/27追記)

キー配置がそろそろ落ち着いてきたので、そのデータを元にプレートデータを作成。フットプリントを固定穴のものに切り替え、不要なモンを全部捨てるだけって感じ。

ただ、スタビライザがつくスイッチに関しては妙な寸法指定の穴を開ける必要があって、フットプリントでそれを再現するのが超メンドくさい。まぁ、やったけど。

あと、カバー類とか荷重を受ける脚なんかもこのプレートに取り付くので、それら用の穴を周囲にいくつか開けていく。まだ下側のカバーはプランもないので、適当に。

最終的に今度到着するスタビライザと比べて問題がないようなら発注かな。試しに一度2枚ともアップしてみたけど、5セットで1万円ぐらいやった。やっぱり高いな。

(2024/10/28追記)

今回のパターンを作成する上で、KiCADのライブラリからCherry MXのフットプリントを引っ張ってきたのだけど、どうもなんかこうシックリこない。

LEDのランドもないし、実際にパターンを引いていると位置決め穴が機構穴になってるのがGND的に問題がありそうに思える。なので、だいぶ変更してみた。

3と4はLED用のランド。5はGND直結用のランドやな。四隅のシルクの下にも5のSMDなランドがあって、スイッチの足が当たる場所になってる。ここに配線を通すと危なそうやしね。5のランドに関しては、全て接続を実線に固定したので、GNDがベッタリと流れるコトになるな。あと、白い長方形は、キーマトリクス時のダイオードを置くガイドやね。

これで、だいぶんシッカリした基板になるんとチャウかな。

(2024/11/07追記)

発注してた基板が到着した。デケェ…

まずはこれに、ダイオードや抵抗、あとマイコン基板とか載せていく。

んで、長いキートップの下につくスタビライザを乗せる。これを先にやんないとアカンみたい。

そしたらプレートを乗せ、スイッチを実装していく。

ひたすら、ジャンクのキーボードからスイッチを外しては移植やね。

んで、キートップを乗せてみる。

サイズ感的にはHHKBとホボ同じやな。右と上に少し大きくなってるぐらい。

で、ファームを書き込んで実際に使ってみた。ちょっとリターンのキートップがメカ的に戻りづらくなるコトがあるな。これは足回りをしっかりすれば改善するやろか。

実は、今回のこの更新の文章も新しいキーボードで打ってみてる。基本的にHHKBと同じなので大きな問題はないな。チャカポコ感が懐かしい。

さて、次はケース周りをどうしますかねぇ。

(2024/11/08追記)

とりあえず、ケースらしいケースを作るのはしばらくお預けにして、3Dプリンタで脚とカバーを作成するコトにした。で、できたのがこれ。

表側は基板が見えている場所をカバーする部品で覆い、裏は足をつけただけ。このままやと少々撓むかもしれないので、撓みどめの足をあと2つ追加する予定やな。

色々分割されてるのは、ヲイラの3Dプリンタが120mm立方までしか成形できないからやね(^_^;)。

(2024/11/11追記)

そうそう、現段階での各種データ…基板データとかスケッチをアップしよう。まだ途中の段階ではあるけど、一応実用できてるからね。基板データは色々と当たり逃げが足りないんやけど、もし使うならソコは自分でなんとかしてくださいまし(笑)。

このデータはフリーで配るので、お好きにどうぞ。大したことしてないですけど、一応現在普通にキーボードとして使えてます。キーマトリクスの配列が二つあって、シフト側のも一応記述してみたけど、現状必要なさそうなのでコンパイルオプションで殺してあります。将来的に必要になったらイジるかも。

今後はもっと高速なマイコンに切り替えて、LEDスキャンの実装と、ソフトウエアによるチャタリング防止を実装する予定。

(2024/11/13追記)

バタバタしてて更新が遅れたので、複数ネタを一気にアップ。

まず、キーキャップを変更してみた。最初に買ってみたやつは一応全キーに対応してるのだけど、トップの面積が大きすぎてミスタイプが多くなってしまったので、トップの狭い奴に変更。

1〜3のキーが新しい奴。この差だけでミスタイプがかなり減るんやから凄いよねぇ。ただ、残念ながらこのセットはいくつか足りないキーがあることに後で気づいた(^_^;)。仕方ないので、さらに別のキーキャップを発注…あああああ、なんか無限地獄に入ってしまったかも…

次に、マイコンを変更してみた。

Arduino UNO R4のPro Micro版ですね。自前で作ろうかと思ったけど、すでにあったのでサクっと発注した。

で、まずはそのままファームを実行してみたんやけど、案の定チャタリングが増えた。高速に反応してしまうから、余計にアウトなんやろな。ところが、ちょっとアルゴリズムが悪かったのか、ソフトでチャタリングキラーを実装すると、見事に反応が遅くなってしもうた。

仕方ないので放置(笑)して、LEDスキャンの実装をやってみる。キースキャンの合間にLEDスキャンをやってみているのやが…電流制限抵抗を47Ωまで下げてもこの程度の明るさにしかならん(爆)。

う〜ん、ちょっと見込み違いやったかなぁ。この辺はもう少し考えなおそう。

なお、このLEDスキャンを追加した結果、チャタリング問題は解消してしまった模様(笑)

(2024/11/14追記)

スケッチの書き方を少し工夫したら、ここまで明るくなった。

がしかし、ココでヲイラは根本的な問題に気づいたのであった…このマイコン、通常ポートのファンイン/アウトが4mAしかねぇ(爆)。

データ側は良いにしても、コモン側は30mA以上流れる可能性があるので、そもそも回路を作り直さんとアカンな。ちょっと片手間でなくなってきたので、これはココで中断しよう。

(2024/11/18追記)

初代を作ってみて気がついたコトがあるので、再掲も含めて注意点を列挙してみる。テーマとしては、可能な限りラクにHHKB的なキー配列を実装する時の考え方やな。

  • スペースバーは6uは一般的ではないみたいなので、6.25uとする(実装済み)
  • できるだけR4にバックスラッシュのキートップがあるセットを選ぶ
  • 1.75uのControlは少ないので、1.50uで実装する
  • 1.50u、1.75uのBackSpaceは少ないので、2.00uで実装する
  • コマンドキーはWINキーで代用しても良いが、1.50uは少ないので1.25uで実装する
  • オプションキーはAltキーで代用しても良いが、1.00uは少ないので1.25uで実装する

これで、180個を超えるようなセットを買わなくても、数少ないHHKBを意識したセットを買わなくても、それなりにHHKBっぽい実装ができると思う。

なんとか時間も取れたので、この辺の変更とLEDのシンクドライバを実装したパターンをでっち上げて発注済み。さて、どうなりますかねぇ。

(2024/11/29追記)

色々バタバタしてて更新が遅れました。

まず、発注してた新基板は既に到着したんですが、ちょっとしたチョンボが発覚したので、ゴリゴリとヤスリで削るコトに…

で、今回の第二作に関して少し別のネタを仕込んでみようと思い、新たにスイッチとあるものを確保。

スイッチはGATERONの赤軸。なんか駄菓子屋に置いてありそうなケースに入ってやってきた上に、梱包方法が瓶詰め錠剤みたいなコトに(笑)。

で、あるものってのはコレ。

なんと、通常のハンダ用の基板をホットスワップ仕様にできるコンタクト。いやはや、色々売ってますなぁ。

これを現在使用中の一作目に適用し、一作目を実験用キーボードにしようかな…と。んで、そこにGATERONの赤軸を実装してみようって感じですね。

で、まずは一作目から全てのスイッチを取り外し、そこにコンタクトをつけた状態のGATERONの赤軸を差し込み、全部差し込んでからハンダ付け。

試しにスイッチを引っこ抜いてみるとこんな感じに。

うん、チャンとホットスワップできてるね。

で。元のキーキャップを取り付けて、まずは一作目を復元。

これで一作目はホットスワップ仕様の実験機になりました。あ、キーキャップはHHKB仕様が可能な別の奴を確保したので、一応通常仕様できる感じに。

(2024/11/30追記)

で、本命の二作目を作業。やってるコトは同じなので途中省略して、結果だけ。

HHKB準拠で市販キートップに合わせて変更した感じ。

スペースバー6.00u→6.25u
コントロールキー1.75u→1.50u(これは1.25uの方が良いかも)
バックスペースキー1.50u→2.00u
コマンドキー1.50u→1.25u
オプションキー1.00u→1.25u
ファンクションキー独立
カーソルキー独立
電源っぽい謎キー追加

って感じかな。

裏返すと基板剥き出し(笑)。全ての3Dプリント部品はキースイッチのフレームに固定してあって、配線基板はキースイッチにぶら下がってる感じ。

撓み防止の足を2本(スペース打ち付けを考えて、少し中央よりに)追加してあるので、打鍵時の剛性感は結構高いよ。

ちなみに、実験用のGATERON赤軸と比べて、やっぱりCherryの赤軸の方が打ちやすい感じがする。中古でバネが弱くなってるからか、もしくはキートップが重めだからかもしれんけど。

それにしてもR4にバックスラッシュのキーが設定されてるキートップは少ないなぁ。こいつも1.00uのバックスラッシュはあるんやけど、R2かR3用なので、そこだけ少し低い。まぁ、仕方ないか。

(2025/03/07追記)

結局ファンクションキーってヲイラはまず使わないコトが発覚したのでそれらを削除し、LEDの駆動を強化した回路にして、スイッチをリバース配置した奴を設計した。んで、丁度良い感じのバックライト用キートップを発見したので、それを実装。軸は赤軸を移植し、元の赤軸実装基板にはジャンクから青軸を移植しといた。あれ、面白いタイピング感覚になるな(笑)。

最新型はこんな感じ。概ねHHKBスタイル。ただし、キートップの幅は既製品がハマりやすいように細工してある。また、Fnキーは収まりの関係で左へ移動。

チャンとバックライトしてるで。しかもフラットタイプのキートップなので、バックスラッシュも違和感なくハマってる。最初はちょっと打ちミスしてたけど、今はだいぶ慣れたかな。

このキートップ、バックライト対応タイプにしては珍しくコマンドーキーがあるのがありがたい。なので、ものすごくMac用にできたと思う(^_^;)。

しばらくはこれで仕事しますかね。

(継続中)

Zak について

基本的にヲタクです。いや、別に萌えとかいうのではなく、ハマるとトコトン進めようとする癖があるので、自制が必要だという…。
カテゴリー: ソフトウエア, なんか作る, マイコン, 電子回路 パーマリンク