Archetype09
ロープロファイル磁気スイッチのテスト基板。販売予定なし。
概要
Archetype09 は、ロープロファイルのホール効果センサー(磁気スイッチ)を採用したキーボード基板です。 磁気スイッチを採用した自作キーボードが少しずつ増えてきている中で、ロープロファイルの磁気スイッチをメインスイッチに採用したキーボードは多くありません。
次に作成予定の ReLow60 の開発のためのテスト基板として設計しました。 センサーの選定、バイパスコンデンサの選定、ハイブリッドフットプリントのテスト、ファームウェアの調整などを目的としています。 このプロジェクトはpeppapighs氏のHE60をベースに開発しています。
60% Hall-effect keyboard. Contribute to peppapighs/HE60 development by creating an account on GitHub.
テスト基板のため発売予定等はありませんが、設計・製造・計測プロセスの技術記録として公開しています。
主要スペック
| 項目 | 内容 |
|---|---|
| MCU | AT32F405RCT7(ARM Cortex-M4, 216MHz, USB High Speed対応) |
| スイッチ | ロープロファイル磁気スイッチ / ロープロファイルアケコン磁気スイッチ / 両対応フットプリント |
| センサー | DRV5055A3 / MT9102ET / GH39FKSW |
| キー数 | 9キー(スイッチフットプリント3種×センサー3種 = 9) |
| MUX | SN74LV4051A-Q1 × 2(8ch × 2 = 16ch) |
| ADC | AT32F405 内蔵 ADC(12bit) |
| 基板 | 4層基板(JLCPCB) |
部品選定について
大まかな部品選定は参考元のHE60をなぞっています。以下に各部品について詳しく解説しますが、すべて私の所感です。 部品選定の詳細や注意点については、HE60のドキュメントを参照してください。
MCU - AT32F405RCT7
コストが低く、十分な性能を持ち合わせています。HE60に採用されているMCUと同じものを採用しています。STM32F405とピン互換の、いわばSTM32F405のパチもんです。 パチもんといわれつつもこっちのほうがクロックが速く(STM: 168MHz、AT: 216MHz)、センサのスキャンレート上限などの処理をSTのMCUよりも余裕を持って行えます。
また、USB HS(High Speed)に対応している点も重要です。8000Hz以上のポーリングレートを実現するためには、USB HS対応のMCUが必要です。 USB HSに対応していないMCUを採用した場合、USB FS(Full Speed)での通信となり、通信速度が最大12Mbpsに制限されてしまいます。これでは8000Hz以上のポーリングレートを実現できません。
スイッチ - 6種類
この基板では、ロープロファイルの磁気スイッチを採用しています。これは参考元のHE60にはない、私のオリジナル要素です。なぜロープロファイルを採用したのか?その理由はスイッチのストローク幅にあります。
ゲームで使用するキーボードにおいて、ストローク幅は短ければ短いほどいいと考えています。ただし、これは反応速度の話ではありません。 たしかに数年前のメカニカルスイッチが主流の時代では、「ロープロファイルスイッチのほうがスイッチの接点(アクチュエーションポイント)が短く、こちらのほうが反応速度が速い」「ストローク幅が短いから、運指が速くてゲーム操作の効率が上がる」という主張がなされていました。 磁気スイッチが普及した今、アクチュエーションポイントを任意に短く設定できるため、反応速度の問題は解決されていると考えています。 しかし、ストローク幅については磁気スイッチの登場によって解決されているわけではありません。むしろノーマルプロファイルの磁気キーボードばかりが登場して、悪化しているともいえるかもしれません。 ストローク幅が長いと、底打ちから別のキーへの運指は遅くなってしまいます。逆に、ストローク幅が短いと、底打ちから別のキーへの運指を素早く行えます。ゲームにおいては、底打ちから次のキー入力までの時間が操作の効率や勝敗に影響を与えると考えています。
しかし、短ければいいというわけではありません。あまりに短すぎると、誤操作が増える可能性があります。 ストローク幅が短いと、キーを押し込む際のフィードバックが少なくなり、キーが反応したかどうかを指先で判断しづらくなることがあります。 そのため、適切なストローク幅を選択することが重要です。私は1mmが実用に耐える最小のストローク幅だと考えています。 一時期ノーマルプロファイルのスイッチにスペーサーを入れてストローク幅を短くする改造が流行ったこともありましたが、1mm以下のストローク幅は誤操作が増えるため実用的ではありません。
タブレット類のスクリーンキーボードがいい例です。配列は一般的なQWERTYなのに、打ちづらく感じると思います。あれはストローク幅が0のため、キーごとに触感がなく、入力フィードバックが得られないからだと考えています。 文字入力のときの振動機能は、タクタイルのような感触を再現し、仮想的な入力フィードバックを提供するものです。
また、ストロークが短いことは、磁気スイッチのアクチュエーションポイント精度にも有利に働きます。 磁気スイッチではキーの押下量をホール効果センサで磁束密度の変化として検出しています。磁力は距離が近いほど急激に強くなる性質があるため、センサ近傍で磁石が動作するほど、わずかな押下量の違いが大きな磁束密度の差として現れます。 ストロークが短いロープロファイルスイッチは、この急峻な磁束変化の領域を活用しやすい構造です。 急峻な勾配のもとでは電気回路のノイズが位置誤差に変換されにくく、ラピッドトリガーのアクチュエーションポイントをより細かく・より安定して設定できます。
先程も述べましたが、ノーマルプロファイルの磁気キーボードが広く普及しました。しかし、ロープロファイルの磁気スイッチを採用しているキーボードは依然として少なく、自作品となるとまだ世界に一つもないのではないでしょうか。
tmykさんもロープロファイルキーボードの作成をしています。情報を教えてくださった方、ありがとうございます!
現在市場にある、ロープロファイルの磁気スイッチが採用されているものをまとめてみます。
- Nuphy Air60/Air75 HE(Low-Profile Magnetic Gateron Jade/Jade Pro)
- Melgeek Made68 Air(TTC KOM MINI)
- ZENAIM Keyboard(ZENAIM Keyswitch)
- Elecom VK720AL(RAESHA Low Profile)
- Logicool G515 RAPID TKL(不明)
これらのキーボードはどれも素晴らしいのですが、そもそも互換スイッチの選択肢が少なくスイッチ交換ができなかったり、キーキャップに互換性がなかったり、ストロークが異常に長かったりします。 ZENAIMを除き後続機種も出ておらず、どれも試験的な製品だったのかもしれません。
今回のプロジェクトでは、6種類のスイッチの対応を目指しており、これらのスイッチは一般的なキーキャップを使用可能です。これらのスイッチは大きく分けて2つに分類できます。
- ChocV2 フットプリントがChocV2メカニカルスイッチに似ているもの。金属のピン以外はChocV2と同じ構造をしているものだと思われる。
- Arcade フットプリントがロープロファイルアーケードスイッチに似ているもの。金属のピン以外はアーケードスイッチと同じ構造をしているものだと思われる。
これら2つは、フットプリントが異なります。
これはあくまで私の予想ですが、今のロープロファイルスイッチにはChocV1, ChocV2, Arcade、Gateron Lowprofileなど様々なフットプリントが存在しているように、磁気スイッチにおいてもそのまま踏襲されているのではないかと考えています。 先程も述べたとおり、今回採用しているこれらのスイッチはどれも一般的なCherry互換キーキャップを使用可能です。プロファイルによっては使えないものもあるかもしれませんが、Cherryプロファイル以下の薄さであれば干渉はしないものと思われます。 個人的なおすすめは、ChocV2に使えるようなXVX Lowprofile、Nuphy nSA、Nuphy Berryなどのセット販売されているロープロファイルキーキャップです。 セット販売のキーキャップ以外にも、ChocV2は自作メカニカルキーボードの世界で主流になりつつあるので、キーキャップの小売や特殊キーを比較的入手しやすいと思います。
以下に今回採用したスイッチの写真と、簡単な説明を載せておきます。キャプションの数字は ストローク幅・作動力・トップ-ステム-ボトム素材 です。 特に私が注目しているのは、ストローク幅が1.5mmのものです。一般的なロープロファイルスイッチよりもはるかにストロークが短く、今回のキーボードの要になると考えています。
TTC KOM Miniっぽい見た目をしてますがメーカーは違います。
TTC KOM MINIがないのは、単体販売されていないからです。Low-Profile Magnetic Gateron Jade/Jade Proは単体販売されていますが値段がかなり高いです。
センサー - DRV5055A3 / MT9102ET / GH39FKSW
今回はこれらのセンサをテスト候補として採用しました。HE60で推奨されていること、そしてセンサ間の具体的な比較データや精度についての公開情報が見当たらなかったことが選定理由です。
- DRV5055A3 価格が高い。その分性能はこの中でピカイチで、さすがTI製車載グレードといったところ。
- MT9102ET DRVと同じくらいの感度・測定範囲を持ち、低コスト。スペック上では伝搬遅延がこの中で最短なのでスキャンレートの面で有利になるか。中国メーカーなのでサポートと安定した在庫確保に不安が残る。
- GH39FKSW 価格が安い。だがその分精度は他より低い。測定範囲が±650Gと狭く、使用するスイッチによっては飽和の可能性がある。 採用スイッチのデータシートをすべて入手できればかなり絞り込めましたが、今回はそれが叶わなかったため、複数のセンサで比較する方針にしました。
フィルタコンデンサ - 0 / 1nF / 2.2nF / 4.7nF
今回は5枚の基板を発注したので、そのうち4枚を使い、フィルタコンデンサの4つの容量の条件で、入力の精度を比較します。 このフィルタコンデンサは、ノイズをカットしてADCへの入力信号を安定させます。 コンデンサの容量が大きいほどこの効果は高くなりますが、応答速度が遅くなるというトレードオフがあります。 そのため、ゲーミング用途に最適な容量を実験的に決定することが目的です。
設計のポイント
ハイブリッドフットプリント
スイッチの項目でも述べたとおり、今回採用するスイッチのフットプリントは2種類あります。 どちらのフットプリントでも使えるように、2つのフットプリントを重ねたハイブリッドフットプリントを設計しました。
すべてのスイッチのデータシートを入手できなかったのですが、一部入手できたものを参照すると、真ん中の穴の径が0.2mm異なり、ホールエフェクトセンサの位置も0.2mmほど違います。 径の違いは大きな方に合わせて設計し、どちらも取り付けられるようにしています。テスト基板では作っていませんが、次の設計ではスイッチプレートも設計するので多少のガタつきがあっても、プレートがスイッチの固定を補助してくれると考えています。 センサの位置の違いは、2つの間を取って中心から4.4mmの位置にセンサを配置しています。磁力の特性から考えると、この程度の位置の違いであればどちらのスイッチも十分に反応すること、ファームウェアの調整によってある程度の位置の違いは吸収できることから、このような設計にしています。
高校物理で磁力を学んだ方ならピンとくるかもしれませんが、磁力は距離の二乗に反比例するため、距離が近いほど急激に強くなります。センサと磁石の距離が近いほど磁力の変化をより敏感に検知できます。センサの位置が多少違っていても、十分に近ければどちらのスイッチも反応が期待できます。
3.3Vと3.3VAの分離
基板設計において、電源ラインを分離することがあります。MCU内部ではデジタル回路とアナログ回路があり、デジタル回路はGPIO切り替えやクロック、USB等で電源ラインにスイッチングノイズを乗せます。 もし電源ラインを統一していた場合、このノイズが基準電圧やセンサ回路に干渉してセンサの測定値がぶれ、精度が落ちます。 これを防ぐため、MCU本体やMUX等には3.3V(デジタル)、ホールセンサなどの精度に関わる部分には3.3VA(アナログ)といったように分離します。
これはHE60でも行われているノイズ対策です。 HE60と同様に、3.3V(デジタル)と3.3VA(アナログ)で異なる型番のLDOを使用しています。しかし、今回の私の設計ではLDOの型番を統一しています。 これによるメリットとして、型番が同じなので特性も同じであり動作予測がしやすいということ、部品の種類が減ることなどが挙げられます。 ノイズについては、同一型番のLDOを使うことでデジタル・アナログ間の出力特性が揃い、ノイズ面でも有利だという説もありますが、実測で有意差を確認できたわけではありません。 オーディオでいうリケーブルに近いものと想像していただければと思います。
OLED
今回はOLEDを取り付けてみました。テスト目的だけなら不要なのですが、どうせなら視覚的に触っていて面白いものを作ろうと思って採用しました。 この小型液晶には各キーの生の入力値とそれに応じた押下アニメーションが表示されます。 SDAとSCLによるI2C通信でモニターの情報を送信しているのですが、この情報を送信している間は磁気センサの読み取りができません。 これを最小限に留めるため、OLEDへの描画更新はセンサのスキャン周期に影響を与えないよう、スキャンの合間にまとめて送信する設計としています。
もしものときのSWDとUART、テストポイント
今回はデバッグがメインのため、SWDとUART、テストポイントを配置しています。
SWDは、MCUのファームウェア書き込みおよびデバッグに使用します。通常のUSB DFUでのファームウェア書き込みができない場合や、ブレークポイントを使ったステップ実行などのデバッグを行う場合に使用します。STLinkやJ-Linkなどのデバッガを接続するための4ピンヘッダを実装しています。
UARTは、MCUからのデバッグログ出力に使用します。センサの読み取り値やファームウェアの動作状況をリアルタイムでシリアルモニタに出力でき、ファームウェア調整の際に重宝します。USBシリアル変換モジュールを接続して使用します。
テストポイントはGND, 3.3V, 3.3VA, 5Vの金属パッドが露出しており、テスターを当てるとLDO周りが正しく動作しているか確認できます。
テスト
テストに関する情報は後ほど追記します。
まとめ
テスト基板なので販売等は行いませんが、ゲーミングバザーや天下一キーボードわいわい会などのイベントに出店することがあれば、展示していると思います。 OLEDのおかげで、押下の様子が視覚的にわかるので、触っていてそこそこ面白いです。
reRoについて
ReBotLabのブランドアイコンの下にreRoというロゴをつけています。これは私が大学で所属する団体の名称です。 様々なモノづくりを自由に行える場で、仲間内で開発状況や技術を共有しています。
主にロボットを作っている団体であり、マイクロマウスやライントレーサ、マイコンカーラリーなどの大会参加者が多く所属しています。 今回の基板は私と同じくここに所属する先輩にレビューをいただいて作成しました。この場を借りて感謝申し上げます。