最近自作キーボードに凝っているという話ばかり書いていますが、今回も同じく自作キーボードの話になります。タイトルにあるように、テンキーの自作キーボードを作ったのですが、今回はBOOTHにて販売していますので、その紹介になります。
TH25TK BOOTH販売ページ
https://thun.booth.pm/items/4264342
このキーボードの制作のモチベーションは、自作キーボードでは最も一般的で数が出回っている(であろう)60%キーボードが関係しています。そもそも、私が自作キーボードを始めたのは以下の記事のキーキャップが使いたかったからという珍しい理由です。
これをフルセットで使える基盤が無い、なんなら日本語配列に対応したPCBもない。なら作ってしまえばいいじゃないということで設計したのが以下のTH60JP。
こちらはVIAのファームにバグがあったり、そもそものコストの関係で色々見なおしているところなのと、アンケートを見る限り、リスクを負ってまでBOOTHで販売する意味があるのかなぁという理由で今は販売していません。何かの拍子にリクエストが多くなれば販売するかとは思いますが…
少しだけ話が脱線しましたが、このTH60JPをスタンダートな配列で組むと割とキーキャップが余ります。それも、108キーのセットなので、テンキーの部分やファンクションキーの部分が余ります。
先ほどのキーキャップが好きな私は、余っているキーキャップを有効活用したいのと、テンキーもがっつり使いたいときがあるので、せっかくなら作ってみようという流れに。
せっかく作るのであれば、TH60JPと同様に汎用性を持たせるべく、CORSAIRのキーキャップ以外にも色々使えたらいいな、ということで25キーにも対応した「TH25TK」を作製しました。
それではTH25TKを紹介していきます。
目次
TH25TKの特徴
TH25TKは私が個人的に作製したキーボードです。特徴は以下の様になっています。
- 5×5の25キー配列をベースに、一般的なテンキーの配列が作製できるマルチレイアウト
- Cherry MXとその互換スイッチ対応(ロープロファイル非対応)
- STM32F103C8T6を搭載することで、ProMicroよりも高い処理力、記憶領域(64KB)を搭載
- スイッチのはんだ付けのみで使用可能
- ブートローダー、VIAファーム書き込み済み
- 上述のARMマイコン搭載済
- VIAに対応
- スイッチは直接はんだ付け(ホットスワップ非対応)
- アルミニウムトッププレートが同梱
- ESD保護回路を搭載
- USB Type-C
- ケースは各自で用意(データは配布)
- GPIOはある程度引き出し済
- 価格は5,000円+送料です。
このようになっています。いくつかの詳細を以下に書きます。
レイアウトについては具体的には以下の配列に対応しています。
キーマップはある程度はテンキーに合わせていますが、詳細は適当なので個人で作製してください。VIAに標準で対応しておりGUIでの設定が可能なので難しくはないはずです。
QMKについては用意はありますが、サポートは出来かねます。VIA用以外にも25キーとCORSAIRのテンキーの配列に合わせたものならそこにはありますが、他の組み合わせの用意はないためです。
また、多くはProMicroを搭載したキーボードが多いですが、昨今の半導体不足で値段が上がったり入手困難な、Atmega32u4を使う理由はどこにもないのでMCUとしてSTM32F103C8T6を搭載しています。このMCUはブートローダーがシリアル通信での書き込みのみにしか対応していないため、あらかじめUSB対応のブートローダーを書き込み、VIA対応のファームウェアも書き込んであります。
そのため、購入後の組み立ては、スイッチのはんだ付けのみで完成します。その際、質感や打鍵感をよくするために、アルミニウムのトッププレートを同梱しています。ただし、コストや製造方法の都合上傷が発生してしまいますので、傷についてはご容赦ください。また、製造方法の都合で端の部分などは精度が出ていない場合がありますが、これも仕様となります(キーボードとしての機能には問題なし)。つまり、細かいことを気にする場合は別途ご自身で用意いただくか、そもそも購入しないことをおすすめします。すべては実用性とコスト重視の結果です。
また、ケースはコストの都合で用意はしていません。各自で用意されるか、何かしら工夫をしてご利用いただくのをお勧めします。ケースに取り付けるための穴は用意していますので、何かしらで使うことはできるかと思います(M1.4用穴ですがM1.7もぎりぎり通ります)。
MCUのGPIOはある程度(全部ではない)引き出しています。そのため、もう使わないとなってもキーボードの試作等、他の用途でもお使いいただけます。20本を引き出しているので、60%キーボードぐらいは作れる程度の数を引き出しています。
このような特徴を持つので、初心者の方からキーボード設計者の方まで幅広く使っていただけることを想定しています。
用意するもの
必要な物
- Cherry MX互換(最大25個)
- はんだ付け工具一式
- はんだごて
- はんだ
- こて台
- (失敗したとき用に)はんだ吸い取り線
- キーキャップ(1Uが最大で25個、必要に応じて2Uキーキャップが最大3個)
- USB Type-C ケーブル(C-C、A-C等片側がType-CでPCと接続できればOK)
必要に応じて
- ケース(各自で用意:データ(STL形式)はこちら)
- ケースに取り付けるためのドライバー
- ゴム足等(ケースを使わない場合。5mmは高さが必要)
- ねじ(M1.4ねじ推奨、M1.7も使用可能)
- USB-TTLシリアル変換ボード(ブートローダーを書き換えたい猛者向け:ファームウェアの書き込みには不要です。)
組み立ての手引き
組み立てる前に、内容物・動作確認をしてください。出荷前に全数チェックをしていますが、不良の確認だけは最初にしてください。はんだ付け後は一切返品などの対応ができません。
内容物は以下の2点です。
- TH25TK
- スイッチプレート
確認を行っていきますが、最初はUSBケーブルでPCとTH25TKを接続します。
導通の確認にはキーマップを編集できるソフトのVIAを利用します。最近はオンラインのVIAもあるので、公式サイトからのオンライン版でも、インストール方式のものでもどちらでも構いません。「SETTINGS」から「Show Design tab」をONにして、「DESIGN」タブでTH25TKの設定ファイルを読み込みます。WEB版なら「CONFIGURE」タブの「Authorize」で「TH25TK」を選択して、接続が求められるので許可してください。
(お知らせ:2022/02/16)現在、VIA側でバグか仕様変更かは不明ですが、既存の設定ファイルが使えないので、以下の設定ファイルを代わりに使ってください。
-Google Drive- 設定ファイル
https://drive.google.com/file/d/1maX1bnZ-nDXavRJ3z4qIXSK-hnR_RfMQ/view?usp=share_link
(お知らせここまで)
キーボードが認識されたら、「KEYTESTER」タブに移動して、「Test Matrix」をONにして、その状態でピンセットなどを用いて短絡させながら全てのキーで入力できるかを確認します。すべてのキーが点灯すれば問題ありません。
初期チェックを終えたら、PCと接続を解除します。
組み立てですが簡単です。大体こんな流れです。
- プレートにスイッチをはめる
- (必要であれば)スタビライザーを取り付ける
- スイッチをはんだ付けする
- (ケースがあるなら取り付ける)
- キーキャップを取り付ける
これだけです。ケースへの取り付けも同梱しているプレートだと凝った方式にしていないので、手順を間違えると取り付けられないとなることはほぼありません。
具体的に紹介すると、最初はプレートにスイッチをはめていきます。
向きに気を付けてください。左下に横長の切り抜きがあるような向きが正面から見た位置になります。また、スイッチにも方向があるので、基板と見比べながら正しい向きでスイッチをはめていってください。
スイッチをはめたら、必要であればスタビライザーを取り付けてください。ねじで固定するだけなので特に説明は要らないかと思います。取り付けた後は正しく動くか確認してください。
これが終わったらスイッチをはめたプレートと基板を重ねます。しっかり全てピンが入っているか確認して、ピン折れがないかを確認してください。
確認が終わったらはんだ付けです。面積も大きく初心者の方でもはんだ付けがしやすいと思います。
全てはんだ付けが終わったら再びPCに接続して、初期動作確認と同じことをして、全てのキーが反応するか確かめます。全て反応すれば正しくはんだ付けできています。
確認を終えたら必要に応じてケースにはめます。私の作った穴だと、かなりねじが入れにくいですが、頑張って入れてください。PCBのサイズの都合でどうしても小さいねじを使わざるを得ませんでした。公開しているケースのデータを利用される際は、最初にねじを通してから組み立てることをお勧めします(3Dプリンターの素材のことを考慮して穴を小さめにしているため)。
ケースに取り付けたら、あとはキーキャップを取り付けて完成です。
キーマップはVIAを用いて編集してください。
ファームウェアについて
GithubにQMK/VIAのソースコードを用意しています。VIAの使用を前提としていますので、QMKのサポートは行いません。
GitHubのレポジトリに用意しています。こちらです。
TH25TK用レポジトリ
https://github.com/T-H-Un/th25tk
コンパイル済みのバイナリデータもbinariesのフォルダに用意しています。
ご自身でコンパイルする場合は、QMK firmwareのビルド環境を用意して、そのなかの「keyboards」フォルダに「th25tk」というフォルダを作り、中身を丸々コピーしてください。そして以下のようなコマンドでコンパイルしてください。
make th25tk/rev1/f103:default
使いたいキーマップ等、コンパイルの詳細は各自で調べてください。尚、一緒にアップされているrev1/f303フォルダは試作で使った別のMCUの物であるため、製品版ではf103フォルダのものをコンパイルしてください。
ファームウェアの書き込みは、ブートローダーに入る必要があります。電源に接続した状態でBOOT1ボタンを押しながらGNDとNRSTの端子をピンセットなどで短絡させリセットするとブートローダーに入ることができます。この状態でファームウェアを焼くようにしてください。
リセット等の各動作
上でも少し触れていますが、基板の動作をまとめておきます。
基板上にスイッチが二つありますが、これらの役割は以下のようになっています。
Designator | 機能 |
SW1 | 純正のブートローダーに入るためのスイッチ |
BOOT1 | USBで書き込むためのブートローダーに入るためのスイッチ |
純正ブートローダーとは、シリアル通信でしか書き込めないブートローダーのことです。この部分を書き換えたい場合はSW1を押しながら電源に接続するとブートローダーに入れます。
それに対して、BOOT1はUSB経由で書き込むために出荷前に書き込んである非純正のブートローダーに入るためのスイッチです。SW1の動作と違い、PCと接続した状態で、BOOT1ボタンを押しながら、NRSTとGNDを短絡させてリセットするとブートローダーに入れます。SW1のスイッチを微妙に挙動が違うので注意です。
たまにタイミングの都合で割り込みに失敗するため、ブートローダに入れないことがありますが、何回かやれば入れます。こちらのUSB経由で書き込めるブートローダーがQMK ToolBox経由で書き込みが可能な物になります。
販売リンク
BOOTH 販売ページは以下のリンクです。
https://thun.booth.pm/items/4264342
おわりに
様々なレイアウトに対応する25キーのキーボードを作製し、販売しています。似たような製品もありますが、最近は在庫切れが続いているようなのと、そもそも使っているチップが違うので販売することにしました。
私がSTM32Fシリーズを利用してキーボードを作製するのに不安があったのと、日本の自作キーボード界隈はProMicroに固執しすぎのように思っています。なので、実装例を示すことで開発者の方にはProMicro以外の選択肢を持ってもらえたらというのと、GPIOを引き出しておくことで今後の開発につなげてもらえたら良いなと思いこの製品を設計したというのもあります。STM32F系のキーボードのチュートリアルとして使ってもらえるのを期待していたりします。
最近はProMicroに搭載されているATMEGA32U4が品薄が続いているのもあり、基板にMCUが搭載されているタイプの製品は品薄だったり値上がりが顕著なのもあり、自作キーボード界隈は厳しい状況だと思います。このような状況だからこそ、新しい選択肢を持ついい機会としても購入いただけたら幸いです。
初期ロット数は5個で、販売数は3個です。小ロットなので傷がどうしようもないという側面がありますが、ご容赦ください。売れ行きが良かったら改良して再生産するかもしれません。
もし品切れの際は再入荷を通知するようにしてくれていれば、一定数のリクエストが確認出来たら発注できるのでやっておいて損はないですよ。
展望としては、改良するタイミングがくればですが、分割キーボードとして動作できるようにしたいと考えています。これもSTM32F系の自作キーボードのチュートリアルとしてはあったほうが良さそうですしね。それ以外にもケースを別途用意しなくても組み立て易くなるような仕組みを考えられたらなとも考えています。
最後にとても余談ですが、最近の円安がすごく辛いですよね。生活面でということもありますが、このキーボード的にです。元々、このキーボードは3,500円ぐらいで販売できるはずだったのですが、110円のときのレートと比較するとドル円レートが相当上がっていますし、それに加えて半導体不足でチップの値上がりも凄まじいものがあります。もっと安くならない?という方もいるかもですが、一応円安は考慮して値付けしているのでしばらくはこの値段で販売するのが良いと思っているのでご理解ください。