当ページのリンクには広告が含まれています。

【自作キーボード】両手トラックボール付き分割キーボードを自作した話【設計編】

記事一覧



みなさん、キーボード自作していますか?


この記事にたどり着いたということは、多少なりとも自作に興味があるのだと思います。
かくいう僕は2024年の夏にCorne v4を自作したことをきっかけに自作の世界に足を踏み入れました。

様々な自作キーボードを作成しつつ、ついに設計にも手を出したということで、完成までの工程を記事に残しておこうと思った次第です。

本記事はその中でも構想~設計までの道のりをお届けできればと思っています。

設計は思ってたより考えることが多く大変ですが、その分時間を忘れて没頭出来るぐらい楽しいです!30代になって特定の分野にこんなにのめりこめるとは、なんとも幸せなことですね。

本記事内容を参照して起きたトラブルについて、筆者は一切の責任は持ちませんので予めご了承ください。

設計方針

まず前提として今回設計するキーボードはあくまでも自分が仕事で使う用として設計します。
本業のインフラエンジニアの業務を快適に遂行出来ることが最優先事項ということですね。

これまで様々な自作キーボードを作成して業務利用してきた中で、何となく自分が欲しいキーボード像がわかってきました。

具体的には、

  • オーソリニア配列である
  • 左右端に修飾キーを配置出来るキー数である(分割だと片側六列欲しい)
  • 親指キーは5~6個は欲しい&タッチタイピングしやすい配置や大きさがよい
  • ロータリエンコーダが搭載されている
  • 34mmトラックボールが搭載されている
  • 分割orエルゴノミクスな配列の一体型である
  • 独立したアローキーがある
  • 数字キーの行はいらない

です。
条件を箇条書きにしてて思いましたが、こんなニッチな条件を叶えるには自分で設計するほか無いですね。

自分で設計するのはもはや必然だったかもしれません。

レイアウト模索

早速「Keyboard Layout Editor」を使用して理想の配置を模索していきます。

Keyboard Layout Editor

悩みに悩んだ結果、以下のような分割キーボードを設計することに決めました。

この配置には数多のこだわりポイントが詰め込まれているのですが、本記事で詳細に取り上げるとボリュームが凄いことになってしまうので軽く触れるだけにします。

ポイント①:親指キーをタッチタイピングしやすい配置にした

親指キーと言えば、よく見かけるのがアーチ状に3~5個の1Uキーが配置されていたり、オーソリニア配列の最下段に1Uキーを並べることによって親指キーとしていたり、様々なレイアウトがあります。

が、しかし僕は上記のキー配置タッチタイピングをすると誤打鍵を連発します。



理由は明確で、同じ大きさのキーが同じような場所にあるとどれがどれだかわからなくなってしまうからです。

なので自分で設計する際にはなるべく親指キーを判別しやすくすることを優先に考えて配置することとしました。
今回の場合、

2Uのキーはデカいからわかる。
2Uの横は上と下に一つずつだからわかる。(語彙力)

といった具合にしています。

2Uの真上のキーはロータリエンコーダー予定なのでキーとカウントしていません!

ポイント②:キーボード外側下部にフリーなキーを五つ配置した

トラックボールを親指ポジションに配置する関係で、トラックボールの横に2×3の計6つのキーが配置出来るスペースが出来ることが確定していました。


僕の本業はシステムエンジニアで、業務ではテンキーを多用します。
IPアドレス死ぬほど打ちますからね!!!

ということで、自設計するとなると「いかに使いやすいテンキー配列を実現させるか」ということがかなり優先度が高い事柄でした。


改めてキー配列を見てみましょう。
外側の配列をご覧ください。完全にテンキーです。

ひとつだけ2Uのキーがあると思いますが、これは「テンキーの数字の0のキーはどう考えても2Uだろ。」という偏った思想から生まれています。

また、テンキー機能は主にテンキーレイヤーで使用する想定ですが、デフォルトレイヤーではアローキー等を無理なく置ける配置となっています。

普段使用しているキーボードでは、レイヤを変更してアローキーの入力を行っており、それについて何も不自由していなかったのですが、独立したアローキーがあると何だかんだで便利だなと思っていました。

テンキーを基準に考えられたこだわりの区画ということですね。

2Uキーがあることによって、3行目端と4行目端が区別しやすく、誤打鍵し辛くなっているのもミソです!

回路設計

さて、いよいよ回路設計です。
設計に関しては後述する書籍を見ながら実施しました。
詳しくは本記事の項目、「番外編①:参考にした書籍等」を見ていただければと思います。

というわけで設計過程に関しては割愛します。著作権の問題もありますしね。

今回僕が作る必要があった回路図は全部で三つです。

  • 分割キーボード左右基板
  • トラックボール用センサー基板

分割キーボード左右基板

キーボードのメイン基板です。
基本的には左右それぞれ設計する必要があります。

リバーシブル基板として左右共通の基板を作成することも可能です。
リバーシブル基板を取り入れるメリット「発注コストが半分になる」1ということに尽きます。

逆に言えばそれぐらいしかメリットはありません。
配線は複雑になりますし、はんだ付けも気を使うべきところが増えます。

色々考えた結果、今回は左右別々で基板を作成することにしました。

とは言ってもレイアウトが左右対称なのでそこまで手間はかかりませんでした!

そんなわけで完成した回路図がこちら。

■ 左手側回路図

■ 右手側回路図

左右で違うところと言えば、マイコンの左右判定ピン左右間通信用の「TX」と「RX」の配線を逆にしている点です。

左右判定ピンに関しては「内部プルアップ」という機能をファームウェアで有効することで代用可能なのですが、ピンが余っていたので物理で解決させました。

ハードでやるか、ソフトでやるか、この辺は設計者によりますね。

トラックボール用センサー基板

続いてトラックボール用センサー基板です。
設計する前はトラックボールをキーボードに実装するために何をすればいいのかわかりませんでした

ネット上には作例が山ほどあるので調べるとわかるのですが、トラボ実装の為には「光学式マウスセンサー」と「それを動かす基板」が必要になります。

前者はゲーミングマウス等に採用されているPMW3360というセンサーを採用することにしました。
Keyball44でも使用されているセンサーですね。

僕は「Keyball44」のトラボの滑らかさに衝撃を受けて、自分のキーボードでも同じように動かしたい!と思っていたので、センサーの選定に関しては即決でした。

そしてセンサーを動作させる基板はsnize」氏のブレイクアウト基板の回路を使用させていただきました。
回路使用に関して快諾していただき、この場を借りて改めて感謝申し上げます。

少し話は反れますが、Keyball44で使われているマイコンには5Vのピンしか存在せず、PMW3360のICは1.9Vで駆動する為降圧させる必要があります。
Keyball44では5V→3.3V→1.9Vというように降圧させているようでした。

今回の僕の設計ではマイコンにRP2040-Zeroを使用するのですが、
RP2040-Zeroは3.3Vのピンをデフォルトで備えているんですね。
ということは一度5Vから3.3Vへ降圧させる必要が無いわけですね。

なので3.3Vから1.9Vへ降圧させればいいだけになります。
3.3Vから1.9Vへ降圧させるコンパクトな設計をされている「snize」氏の基板は僕の求める仕様にマッチしていたので非常に助かりました。

■ PMW3360 breakout board – SUMI (design by snize)

GitHub - snize/BOB-PMW3360-SUMI
Contribute to snize/BOB-PMW3360-SUMI development by creating an account on GitHub.

回路図は上記のサイトの通りである為割愛します。

PCB設計

続いてPCB設計です。
実際に設計した回路通りに各パーツを接続&位置決めをしていく工程ですね。

こちらに関しても後述する書籍を見ながら実施しました。
詳しくは本記事の項目、「番外編①:参考にした書籍等」を見ていただければと思います。

回路図の時と同様に設計過程は割愛します。

回路図と同様に作る必要があったPCBは全部で三つです。

  • 分割キーボード左右基板
  • トラックボール用センサー基板

分割キーボード左右基板PCB

レイアウト模索で決定した配置を元にパーツの場所決めをし、実際に配線していきます。
マイコン周りが忙しくなりましたが、その他は割と余裕をもって配線できたのではないかと思います。

このPCB設計作業、実際かなり楽しいです。
物を作っているという感覚がダイレクトに来ます。

配線作業も地道ですが楽しいです。ジグソーパズルを組み立ててる感覚に近いですね。

ちなみに自動配線ツールを使用する手もありましたが、まあでもやっぱり最初は自力でやるのがいいだろうということで地道に配線しました。

自力でやった後にお試しで自動配線ツールを使用して配線もしてみましたが、変なところを通ってたり無駄に折れ曲がってたりとお世辞にも綺麗とは言えない箇所が目立ったのであまり複雑なものは配線させない方がいいかもしれません。

そんなこんなで完成したPCBがこちら。

■ 左手PCB

■ 右手PCB

左右それぞれでフットプリントの色が異なるのは単純に裏表の違いです。
さすがに左右それぞれ一から作成するのは骨が折れるので、左手側を作成したのちにコピーして反転させたものを右手側としました。

とはいいつつも配線は一からやっているので、負担的には四割減ぐらいでしょうか?

TRRSのジャックは出来れば上方向に出したかったのですが、PCと接続するUSBのコネクタも上部にある都合上、誤って通電中にTRRSケーブルを抜く危険性がある為却下としました。

トラックボール用センサー基板PCB

回路図はsnize氏のものを使用していますが、PCB設計は自分のキーボードに合わせて作り直しました。

これは単純に物理設計をする都合上自分で作った方がやりやすいからということですね。
ということでこちらがPCBです。

■ トラックボール用センサー基板PCB

フットプリントも作成&配布されておりとても助かりました。
部品を並べて配線するだけ。感謝しかありません。

さいごに

いかがだったでしょうか?
サラッと最後まで書きましたが、実際には多くの失敗をしており、お金も時間も使っています。

稼働的には30人日は使ってると思います!
いきなり分割+両手トラボとかいう複雑なものに手を出すから…


次回は失敗談か、ケース設計やファーム設計に関することか、まだまだ語ることは山ほどあるので頃合いを見て記事にしたいと思っています!

設計を通して色んなことを経験して時には頭を悩ませることもありました…
いえ、頭を悩ませることしか無かったかもしれません。

でもそれ以上に楽しかったです。時間を忘れて没頭しました。
興味ある方は是非軽い気持ちで設計に手を出してみてください!!!

ではみなさま、ここまでご覧いただきありがとうございました!
また次の記事でお会いしましょう!

番外編①:参考にした書籍等

自作キーボードに関してはネット上に数多の情報があります。
自分で情報をかき集めながら設計していく方法もありますが、僕はある程度体系的に学んで設計したかったのでいくつか書籍(同人誌)を購入して勉強しました。

参考にしたものは以下です。

① 自作キーボード設計ガイド Vol1 設計入門編

自作キーボード設計ガイド Vol1 設計入門編 - 自キ温泉街販売所 - BOOTH
自作キーボードの設計入門本です。 表紙にもなっている分割型のキーボードであるGuide68というキーボードの設計を例にし、方針の決定から実際の設計、ファームウェアの作成までを丁寧に解説しています。 また、手順に直接関係ありませんが、キーボー...

勝手に自作キーボード設計の王道書籍だと思っています。

著者のサリチル酸氏は界隈でも有名な方で、僕の愛用しているO51Goの設計者です。
0からキーボードを作り上げ、発注するまでの過程を丁寧にまとめてくれる書籍。
実際に発注するまでの作業の6割はこちらの書籍に助けられました。

KiCADを使用したことのない僕でしたが、細かいTipsがちりばめられていることで、スイスイと読み進められました。
トラックボール等を使用しないキーボードであれば本書さえ読めば発注まで可能なほど完成度が高いです。

② 自作キーボード設計入門(電子版) / 自作キーボード設計入門2(電子版)

自作キーボード設計入門(電子版) - Pastry Keyboard - BOOTH
こちらは電子版です。物理版は販売終了しました。
自作キーボード設計入門2(電子版) - Pastry Keyboard - BOOTH
こちらは電子版です。物理版は販売終了しました。

Corne v4」から自作キーボードにのめりこんだ以上、こちらの書籍を買わない手はないでしょう。

著者のfoostan氏はCorne kbdの設計者で、僕が自作キーボードにはまるきっかけとなったCorne v4を設計されています。

こちらの書籍もキーボードの設計から発注までの流れを丁寧にまとめてあり非常に読みやすいです。
この書籍通りに作っていけばミニマクロパッドを発注して使用可能になるので、低コストで手を動かせるといった意味ではかなり有益な書籍だと思います。

物理設計についても詳細に取り扱っており、様々なパターンの構造を紹介しているため完成形がイメージしやすかったです。

番外編②:参考にしたサイト

これは正直山ほどあって紹介しきれません。
というか目を通すだけ通したサイトも含めると自分でも何をみたのか把握しきれていません。

が、中でも繰り返し読むことによって理解を深めたサイトをいくつかご紹介します。

山ほどある関係上、各サイトの紹介は割愛してリンクのみ貼り付けています。

① マイコン関連

マイコンは流行りのRP2040を使って設計しようと思っていたので、関連のサイトを読み漁っていました。
結果的に使用するのはRP2040-Zeroという結論に至りました。

■ RP2040-Zeroの各ピンの位置の把握

RP2040-Zero - Waveshare Wiki

② 回路図関連

当初は一体型キーボードを作成しようと思っていたので、Duplex-Matrixについて調べていました。
RP2040-Zeroを使用してトラボやロータリーエンコーダーを載せるとなるとピンの数が足りませんからね。

しかしなんだかんだで結局分割キーボードを作成することになったので、Duplex-Matrixは使用しないことに。
次回以降の設計に生きるかも…?

というわけで回路図については前述の書籍二つを使って難なく完成させることが出来ました。

■ Duplex-Matrixの回路設計

Duplex-Matrixを自作キーボードで使う方法

③ トラックボール関連

正直これに一番時間を費やしました。

設計初心者なのでとにかくわからん。
何がわからないのかもわからない状態。

膨大な量のサイトを閲覧しましたが、特に参考にしたのは以下のサイトです。

■ pmw3360の駆動回路について

PMW3360の駆動回路について|twoboy
前回の記事にて、狭ピッチキーボードの設計を開始したと書きましたが、具体的には、 ・狭ピッチカラムスタッガード ・一体型でGH60ケース互換 ・親指トラックボール という拘りの詰まった物を設計しております。 wings42とKeyball44...
PMW3360の駆動回路について(2)|twoboy
前回に引き続きPMW3360の駆動回路についてです。 はじめに 回路図の引用にあたって、元となった九嶋さんおよびkbjunkyさんのライセンス表記を記載させていただきます。 設計変更点 一言でまとめますと、私が行った変更点は抵抗値の修正です...

■Raspberry pi picoを使ったトラックボールモジュール設計1(基板・筐体編)

Raspberry pi picoを使ったトラックボールモジュール設計1(基板・筐体編)

■ ブレイクアウトボード回路設計

GitHub - monkeypad/pmw3360-breakout
Contribute to monkeypad/pmw3360-breakout development by creating an account on GitHub.
GitHub - snize/BOB-PMW3360-SUMI
Contribute to snize/BOB-PMW3360-SUMI development by creating an account on GitHub.

回路設計に関して参考にさせてもらったものは以上になります。
最近はGitHubで実際に自分が作りたいイメージと似たプロダクトのドキュメントを見漁っています。
こっちの方が効率がいいしイメージもしやすい…?

脚注

  1. 僕が発注したJLCPCBでは最低発注枚数が5枚なので、左右別々の基板にするとそれぞれ5枚ずつ、計10枚の発注が必須になります。しかし、左右共通基板とすると5枚だけで発注できるためコストが半分になるというわけですね。 ↩︎

タイトルとURLをコピーしました