以前書いたこちらの追記記事となります。
製作&完成したので製作過程を書いていきたいと思います。

昨年は電子工作の延長として自作キーボードの製作にも興味を持ち、自分で設計したキーボードやマクロパッド、またオープンソースで公開されているものなどを製作するようになりました。
今年はオープンソースで公開されているもので気になったものがあれば積極的に製作してみようかとも考えています。



自作したキーボードも手元に増えてきたことから今後無線化なども考えているのですが、その一歩手前として今回はハブ機能を持ったキーボード、またはマクロパッドがあると便利かな?
と言うことで、4ポートUSBハブ機能を付けたテンキーパッドを製作してみることにしました。
目次
4ポートUSBハブ機能を持ったテンキーパッド『NumDock』の製作
これまでテンキーパッドを単体で使うことはなかったのですが、自作キーボード製作をきっかけに最近よく使うようになりました。
私の場合、趣味の電子工作でFusion360を使った3D CADモデルの製作やKiCadで基板設計をすることが多いのですが、CAD作業では数値入力を頻繁に行うことからテンキーパッドがあると便利で作業効率も上がります。
私は左利きということもありフルサイズのキーボードの右側に付いているテンキーでは少し使いにくい感覚があったのでこれまであまり使うことがなかったのですが、自作キーボード製作をきっかけに自分で設計したキーボードのペアとなるテンキーパッドを作り使ってみると、これがCAD作業では非常に相性が良く・・・
テンキーパッド単体のものがあると左側に配置して使うことも出来るので便利に感じています。
そして手元に自作キーボードやマクロパッド(有線タイプ)の数も増え作業用途により使い分けていることから、ハブ機能が付いたテンキーパッドをドッグ的に配置し、キーボードの接続や電子工作で使うマイコンボードといったものの接続で使えればPCに接続するケーブルをシンプルに出来て便利そうなので、自作テンキーパッド2号機として4ポートのUSBハブ機能が付いた『NumDock』を製作することにしました。
CADのイメージ
テンキーパッドとしてのキーレイアウトは、右側の”+” や”Enter”キー、また下段の”0”キー部分が2Uサイズになったベーシックなタイプのもので進めていきました。
既存のマイコンボードを使わずMCU(RP2040)を直で基板に実装するオンボードタイプのものなら無駄なスペースを作らず、全体的にコンパクトなサイズ感で仕上げることが出来そうです。
ケースは、トップケースがキープレートになったタイプの形状で考え、使うキーキャップによっても変わってくるかと思いますが自宅の3Dプリンタで何度かモックを作成し傾斜角5°と少し浅めの角度を付けました。
自分が使いやすいサイズ感や形状のものが作れるのは、自作キーボードの設計では一番楽しい部分ですね!
この時点では固定レイアウトで考えていたのですが、基板設計完了後になんとか追加パーツを入れる余地があったことから、2Uキーを1Uでも使えるレイアウト変更が出来るように修正しました。
使用できるレイアウトはこのようになっています。
オール1Uの20キーマクロパッドとして使うのもいいかも知れません!
基板設計
3D CAD上である程度完成に近い形のモデルを作成しそこから基板形状を決め、そしてケースとの干渉部分や変えたくないUSB端子の位置などをKiCadに持っていき基板の設計に移りました。
通常のテンキーパッドとして製作するならパーツを実装するための基板スペースは比較的多く取ることが出来るのですが、ハブ機能を付けているのでその分スペースが少なくなってしまいます。
6個のアンダーグローLEDを入れ固定レイアウトで一旦完成したのですが・・・
実際に使用する私のデスクまわりに配置してイメージしてみると、固定レイアウトでテンキーパッドとして使う以外にレイアウトの変更も出来た方が絶対便利だよな・・・!
上記基板アートワークで確認すると、2Uキーで割り当てている部分は1U+1UキーになってもPCB的には少しパーツの配置を変えればまだ入る余地があったので、最終的にレイアウト変更が出来るこのような基板(V1.1)として仕上げました。
全体の回路構成は、アップストリーム側のUSB端子(下写真右のType-C端子)をハブチップを介しRP2040と接続しQMKファームウェアで動くキーパッドとし、ハブチップの他の空いているポート(3ポート)を他の機器との接続で使えるようにしています。
USBハブチップにはSL2.1Aを使いました。
以前いくつかハブチップのテストをしていたのですが、少ないパーツ数で4ポート分のハブ機能が使えるので便利なチップです。

各USB端子の保護回路(ダウンストリーム側にPCを接続するなどの保護)もUSBスイッチICを入れ個別ポートを管理するような回路を当初入れていたのですが、ご覧の通りパーツ実装面積がかなり限られることから最終的にこのようなシンプルな回路構成にしました。
PCと接続するポートを間違った場合でも通電はしますが、特に問題ないと思います!
PCBWayに基板&3Dプリント製ケースを発注
基板および3Dプリントケースのデータをダウンロード出来るようにしておきます。
何かの参考になればと思います。
PCBWayの3Dプリントサービスではカラーバリエーションが非常に多く以前から試してみたかったので、そのテストも兼ねて今回PCBWayに発注しました。
PCBWayでは基板と3Dプリントパーツは同梱で発注することも出来るので、それぞれをカートに入れ決済すれば送料も1回分で済むのでお得です。
PCBWayでの基板および3Dプリントパーツの発注についても簡単に見ておきます。
基板の発注
PCBWayでの基板発注は、
[概算の見積価格を確認(仮発注)] → [データチェックを受け最終価格が決定]
という流れで進めていきます。
発注項目の選択は特記すべきところはなく、デフォルトで選択されている項目から変更する必要はありませんが、
レジスト(基板カラー)はお好みで選択して下さい。
また[Remove product No]は[Yes]を選択しました。
基板製造時に任意の位置にシルクプリントされる注文番号を削除することが出来るオプションです。
基板に入るシルクはケースで隠れてしまいますが・・・1.5ドルのオプション料金がかかりますが、選択しておいた方がいいかも知れません!
基板製造料金の概算価格は6.5ドルとなりました。
基板と一緒にメタルマスク(ステンシル)も発注しました。
パーツ実装面は[裏面のみ]になります。
概算見積では基板製造料金6.5ドル+ステンシル料金10ドルの16.5ドルとなりました。
PCBWayでの基板発注方法はこちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

ケースの発注
上記の基板とステンシルをカートに入れた状態で、3Dプリントサービスを利用しケースも一緒に発注しました。
モデルデータ(STL)をPCBWayのサイトにアップロードし、トップケースのマテリアル(材料)は[Standard white material (UTR 8360)]を選択しました。
ベース料金は5.43ドルとなり、これにオプションとなる[スプレー塗装]を追加しました。
塗装色は光沢グレー(PANTONE Cool Gray 5C)を選びました。
オプション料金が加算され、トップケースの製造料金は31.57ドルとなりました。
次にボトムケースです。
同様にデータをアップロードし、ボトムケースは透明レジン[UTR-8100(transparent)]をベースに染色オプションを付けPANTONE Black Uを指定して透明カラーケースとして製造してもらいました。
PCBWayの3Dプリントサービスは今回始めて利用してみたのですが、ベースのマテリアル料金は比較的安価ですがカラー塗装や染色といったオプションを追加するとそこそこ料金は高くなってしまいます!
PANTONEカラーで色味を指定出来たりと、非常に多くのカラーバリエーションから選択出来るのはすごく良いのですが・・・その分製造料金がお高くなってしまうのが趣味用途で利用する場合ネックになりそうです!
PCBWayでの3Dプリントパーツの発注方法などこちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

到着
今回、基板と3Dプリント製ケースとの同時発注だったのですが、発注から2週間で手元に届きました。
基本的に基板の製造は1~2日ほどで完了するのですが、3Dプリントパーツの製造は少し時間がかかります。
特にPCBWayのスプレー塗装や染色といったオプションでは完全両面仕上げとなっているため、製造完了までに8日~12日ほど時間がかかるようですね!
【受取時に輸入消費税等の支払いが発生!】
CPTやFCAといった輸入関税等の話は詳しくないのですが・・・
商品到着時に輸入消費税および立替手数料として2850円の着払い料金が追加で発生しました!
まずこちらは[UTR8360]というPCBWayでは最もスタンダードとなるレジンをベースにオプションのスプレー塗装を選択して製造したトップケースで、光沢グレー(PANTONE Cool Gray 5C)を選択したものです。
3Dプリントパーツのスプレー塗装サービスは普段JLC3DPをよく利用しているのですが、PCBWayでは両面仕上げになるようです。(JLC3DPでは基本片面塗装になります)
裏面の塗装も綺麗に仕上げられています!
PCBWayのスプレー塗装サービスを今回始めて利用してみて価格だけ見ると少しお高い印象を受けましたが、背面もしっかりと塗装される全面仕上げとなるようなので価格・納期日数に関しては納得です!
自宅の3Dプリンタ(FDM機)ではサポートやオーバーハング等の問題で細かい部分の造形が難しくなることがあります。
特に今回製作したトップケースでは全面にサポートが入ってしまう形状&設計なのですが、微細な切れ込み部分も綺麗に再現されていました。
サンディング処理が入っているようなので表面の仕上がりも非常に綺麗です。
ここまで再現し仕上げてもらえれば、サポートの事などを意識する必要もなくなるので設計も楽になります!
そしてボトムケースです。
こちらはベースに透明レジンとなる[UTR-8100(transparent)]を選択し、表面仕上げオプションとなる[染色(Dyeing)]で色味を指定してカラー透明ケースとして製造してもらったものです。
透明レジンにカラー染色したこのケースは非常に綺麗な仕上がりで正直驚きました!
染色する色味は[PANTONE Black U]を選択したのですが、サンディング処理もされているようで積層やサポート跡も全く無くツルツルな仕上がりとなっています。
このレベルの色付き透明ケースが作れるなら、工作用途で利用できる用途はいろいろと浮かんできます・・・。
PCBの仕上がりも綺麗です!
PCBWayさんのレジストは結構光沢の強い仕上がりになるんですね。
パーツ実装後のフラックス跡なども目立ちにくいのでいいかもしれません!
届いてすぐに仮組みをしてみたのですが、非常にいい仕上がりです!
パーツの実装
それではパーツの実装です。
ステンシルを使いはんだペーストを塗布します。
最近は結構慣れてきたこともあり、綺麗にはんだペーストを塗布することが出来ました。
このレベルで出来れば、RP2040やType-C端子もブリッジすることなく実装出来ると思います。
実装の一連の流れはもう自作基板の製作で慣れた作業ですが、パーツ点数が多く密集しているので結構大変でした!
パーツの実装はMHP50を使いました。
自作基板の製作でいつも愛用している非常に便利なミニリフロー装置です。

基板サイズが約77mm×96mmとMHP50のホットプレートサイズを超えていますが、このようなスタンドを使ってリフローしました。
MHP50のホットプレートサイズを超える大きな基板にも対応することが出来るので非常に便利です!

ブリッジしても手はんだでの修正が出来るようにパーツ間のクリアランスは最低限取っていましたが・・・、実装は一発OKでした!
綺麗に実装出来ました!
ファームウェアの書き込み
パーツの実装が出来たらファームウェアの書き込みです。
QMK/Vialに対応ファームウェア[numdock_vial.uf2]は、こちらからダウンロードして下さい。
本基板にUSBケーブルを挿しPCと接続します。
[BOOT]スイッチを押した状態で[RESET]スイッチを押すとDFUモードに入ります。PCにUSBマスストレージとして認識されるので、あとは上記Vialファームウェアをドラッグ&ドロップして書き込めば完了です。(初めて接続する場合は自動的にDFUモードで起動すると思います)
通常の書き込み方法ですね!
ブラウザ版またはアプリ版のVialを開き、キースイッチの入力が正しく行われるか?
またLEDの点灯に問題がないかの確認を行って下さい。
ちなみにレイアウトは、[Right1][Right2[]Bottom]の3ヶ所は1Uまたは2Uレイアウトへの変更ができます。
またハブ機能のチェックもお忘れなく!
PCのシステム情報(Macの場合)にUSBデバイスとして本テンキーパッド[NumDock]が表示され、他に接続しているデバイス名も表示されれば問題ありません!
ケースの組み立て
ケースの固定は、トップケースにM2×4mm(OD3.5mm)のインサートナットを圧入しボトムケース側からM2×6mmのビスで固定する構成となっています。(各4本)
今回PCBWayで製造したケースはレジン系マテリアルを使用しています。
レジン系マテリアルではFDMフィラメントのように熱で樹脂を溶かすことが出来ないので本来は熱圧入には不向きとなりますが、M2×4mm(OD3.5mm)のインサートナットをはんだゴテの熱で圧入出来るホールサイズに調整しています。(多少熱で柔らかくなり入ってくれます)
インサートナットの圧入には、このようなインサートナット専用のチップ(コテ先)があると便利です。(下写真のものはT12用です)
はんだゴテはFX600を使われている方が多いと思います。
FX600で使う時は下記のチップを使っています。
各サイズがセットになったものを持っていると大変便利です!
綺麗に圧入することが出来ました。
おそらくこれで抜けることはないと思いますが・・・ 本来レジンでは熱圧入ではなく接着することが推奨されています!
接着剤を塗った状態ではんだゴテで圧入したり、また圧入後に隙間に流し込むタイプの瞬間接着剤を使えば完全に固定出来ると思います。
私はいつも後者のやり方で固定しています。
ケースの固定はM2×6mmビスで固定します。
自宅の3Dプリンタを使った試作ではどうしても積層跡などが出てしまいますが、サンディング処理され綺麗に仕上がったケースで完成させると非常にテンションも上がります!
個人で作る少ロットのものでも、最終的な完成品は3Dプリントサービスを利用するのはオススメです!
PCBWayの3Dプリントサービスでは選択出来るカラーが非常に豊富なので、CADのレンダリング画像にかなり近い実物が出来るのはすごく良いと思います。(少し料金がお高いですが!)
自作テンキーパッド『NumDock』くん、完成です!
Vialでエラーが出る場合がある!?
完成後、使いながら動作チェックを行い問題がないようなので本ブログを書き始めたのですが・・・
書いている途中、再度いろいろと接続してテストしていた時に気になった部分を書いておきます。
ハブポートにキーボードやマイコンボードといったUSB機器を接続すると、それぞれUSBデバイスとしてPCに認識され問題なく使えます。
そしてキーボードを接続した場合でも、このようにVialにキーボードとして認識されます。
上記のように全てのポートにキーボードを繋いだ場合だけ使用するポートに関係なく最後に接続した(4台目)のキーボードでVialを使いキーマップを変更しようとするとこのようなエラーが出るようです。
Vialにはキーボードとして認識され、キーボードの動作も問題ないのになぜだろう?
これはVialアプリ上でのエラーとなり通常通りキーボードとして使用出来るので問題はないのですが・・・Vialとハブチップとの相性なのかな?
つまり4台キーボードを同時接続した際に最後に接続したキーボードで使用は問題ないけどVialでキーマップを変更しようとすると(そのキーボードを選択すると)上記のようなエラーが出るという特定の条件で発生するものですが、このエラーの原因だけよく分かりませんでした!
使用パーツ一覧
今回使用したパーツの一覧です。
パーツ | 定数 | 入手先 |
コンデンサ (0603) | C1/C9/C10/C11/ 10μF C2/C4C12/ 100μF C3/C5/C8/C13/C15~C23/C25~C30 100nF C6/C7/ 1μF C14/C24 15pF | AliExpress |
ダイオード (SOD-123) | D1~D20 1N4148W | AliExpress / 秋月電子 |
フューズ (0603) | F1 1.0A F2/F3/F4 500mA | AliExpress |
フェライトビーズ (0603) | FB1/FB2/FB3/FB4 600Ω | AliExpress / 秋月電子 |
USB端子 | J1/J2/J3/J4 Type-C | AliExpress / 秋月電子 |
LED | LED1~LED6 WS2812B(5050) ※オプション | AliExpress / 秋月電子 |
MOSFET | Q1 BSS138(SOT-23) | AliExpress / 秋月電子 |
抵抗 (0603) | R1/R3 5.1kΩ R2/R6/R10/R11 10kΩ R4/R5 27Ω R7/R8 1kΩ R9 470Ω | AliExpress |
MXソケット | SW1~SW23 | AliExpress / 遊舎工房 |
タクトスイッチ | SW24/SW25 3mm×4mm(4P SMD) | AliExpress |
ESD | U1/U2/U5/U8 USBLC6-2SC6(SOT23-6) | AliExpress |
MCU | RP2040 | AliExpress / 秋月電子 |
LDO | XC6206-3.3V(SOT23-3) | AliExpress |
フラッシュ | U6 W25Q128JVS(SOIC-8) | AliExpress |
ハブコントローラーIC | SL2.1A(SOP-16) | AliExpress / aitendo |
クリスタル | Y1/Y2 12MHz(3225) | AliExpress / 秋月電子 |
その他 | ヒートインサート M2×4mm(OD3.5mm) ビス M2×6mm ※各4本 | ーーー |
最後に!
CAD作業でテンキーパッドを使う機会が多くなってきたことから、自作テンキーパッド2号機としてハブ機能が付いたものを製作してみました。
CAD作業ではFusion360やKiCadといったCADソフトのキーボードショートカットを割り当てたマクロパッドとテンキーパッドという組み合わせで使うことが最近多いのですが・・・
PCと接続するケーブルを減らせ、このテンキーパッドをベースとし作業用途により他のキーボードを接続したり、またマイコンボードに接続したり出来るので便利です。
コンパクトに仕上がっているので、ハブ機能を使わなくても通常のテンキーパッドとしてやマクロパッドとして使えるので結構気に入っています!
自作ってやっぱいいですね・・・!
















コメントを残す