11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作キーボード / 電子工作】15キーのシンプルな自作マクロパッド『HandyPad15』の製作。CADのショートカットキーを割り当てて便利に使っています!

自作キーボードの世界に足を踏み入れてから、気付けばもう1年ほどが経とうとしています。

電子工作の延長として自作キーボード製作も始めたのですが、昨年は作ることが楽しくてほとんどブログにまとめることが出来ていませんでした。

成功・失敗にかかわらず、製作したものは基本的に自身で考察等を加え製作ブログとしてまとめるようにしています。

【自作キーボード】これまで製作した自作キーボード&マクロパッドまとめ!【2024年】

本記事でご紹介するマクロパッドはもう半年以上前に製作したものとなりますが、やりたいことが多すぎ手が回らず自分の中でアウトプットが出来ていなかったので、当時のことを思い返しながら製作過程を書いていこうと思います。

15キーのシンプルな自作マクロパッド『HandyPad15』の製作

最初は手探り状態でCAD操作の補助用に4キーのみの小さなマクロパッドを作ってみたのですが、それが自作キーボードの世界に足を踏み入れるきっかけになりました。

QMKファームウェアが動く構成で初めて自作したシンプルなキーボード(マクロパッド)で、思い通りに動かせたときの感動は今でもよく覚えています。

【電子工作 / PCB】初めての自作キーパッド『4KeyPad』の製作!

その後もキーボードづくりの楽しさに引き込まれ、今回ご紹介するのは自身2作目の自作となる15キー構成のマクロパッド『HandyPad15』となります。

前作で得た経験や気づきをもとに、キーの配置や全体のサイズ、ケース形状など、使いやすさと省スペースのバランスに悩みながら当時製作していた記憶があります。

また、ちょうどこの頃に使い始めたJLCPCBの3Dプリントサービスとなる『JLC3DP』のマテリアル(材料)の検証も兼ねて製作していて、綺麗なケースで完成させ満足出来るものに仕上がったと思います。

可愛い自作キーボード2号機くんです!

CADのイメージ

Fusion360やKiCadといったCAD作業では、普段SpaceMouseを愛用しています。
私にとってCAD作業では必須アイテムです!

CADの視点操作に特化した神デバイス『3Dconnexion SpaceMouse』について約3年ほど使ってみた感想などを書いてみました!

SpaceMouseを使ったCAD作業において、コマンドや数値入力といったことを行う補助的に使える左手マクロパッドというイメージで製作を進めていきました。

これらCADソフトでよく使うキーボードショットカットキーやテンキー(数値入力)などを考慮し、漠然としたイメージからまずラフモデルを作り・・・
欲しいキー数をそのまま入れるとサイズ的に大きく、使いづらいだろうな!

左手で使うことを想定し、キー数&形状を固めていきました。
自分が欲しい機能やキー数などをそのまま反映させるとこのようにまとまりがないものにいつもなりがちですが、使っている時のイメージを固める叩きとしては有効です!

左手マクロパッドとして使いやすいサイズ感、またレイヤーも考慮するとCADで使うコマンドキーならこれくらいのキー数があれば割り当てて使うことが出来そうです。

最終的にシンプルな形状にまとまりましたが、ロータリーエンコーダーの位置(自身の左手親指の位置に合わせています)や全体サイズ・形状などは、自宅の3Dプリンタでモックをいくつか作り微調整していきました。

モックの製作

CADでの設計が一通り完了したタイミングで、自宅の3Dプリンタを使ってモックを作成し実際に手に取って確認しながら使いやすいサイズ感になるよう全体の大きさや形状を少しずつ調整していきました。

CADの画面上だけでは見落としがちな、例えばベゼル幅による指の届きやすさや角の取り回し、また左手親指で操作するエンコーダーの最適な位置など、実際に触って操作してみることで初めて気付く点は多く、それらを都度モデリングに反映していきました。(製作後時間が経ってしまいモックに組み込んだ写真が残っていませんが!)

また、この当時はまだQMKファームウェアの構築やカスタマイズにも慣れておらず、動作確認をスムーズに行うためにMXスイッチ用のピッチ変換基板を作成し、これをモックと組み合わせる形でファームウェアのテストも並行して行っていました。

【電子工作 / PCB】MX互換キースイッチ用ピッチ変換基板の製作!

最近では上記のようにハードも含めた実際に動作するモックをここまで作り込むことは少なくなりましたが、この経験はキーボード製作に限らず、以後様々な製作物において実物に近い操作感を確認できるモックづくりのノウハウに活かされています。

全体構成は、メイン基板(PCB)にキープレート(PCB)、そしてトップケース&ボトムケースという構成になりました。

スイッチを全て抜くとスイッチプレートが落ちるので、3.4mm厚のプレートも入れました。
本来ポロンシートとかを使う部分なのかな・・・?

基板設計

モックを作り各所調整を重ね3Dモデルに反映していき最終的な形状が作れたので、基板設計に移りました。

今回製作したマクロパッドは、ATmega32U4をオンボードで搭載したものとなります。
全体の回路構成はこのようになりました。
ATmega32U4まわりの基本回路とスイッチマトリクスやLEDの接続といったシンプルな回路構成となります。

今回は3D CAD上でケースを含めた全体構成&配置を決めていたので、ケース干渉部分等をKiCadの方に持っていきパーツを配置して基板設計を進めていきました。

そして1回目の発注では、メイン基板のLED(SK6812 MINI-E)の配線(フットプリント)を間違えてしまい点灯させることが出来ませんでした。

SK6812 MINI-Eは自作キーボードでよく使われるRGB LEDです。

PCBにホールを開け実装させる向きによりLEDの点灯面(基板表面または基板裏面)を変えることが出来るちょっと珍しいパーツとなっています。

通常のパーツだと1番ピンの位置を合わせると他のピンの位置も合ってくれるわけですが、反転させて実装することが出来るこのようなパーツは1番ピンと対角位置にあるピンも考えておかないと全て入れ替わってしまうことになり今回のような失敗が起こりがちです。

反省を込めて以下記事にまとめています!

【電子工作 / PCB】自作キーボードでよく使われるRGB LED『SK6812 MINI−E』についての備忘録!

フットプリントを変え配線を修正したものを再度発注し無事完成させることが出来ました。(修正後のデータはRev1.1としています)

JLCPCB / JLC3DPに発注

基板(メイン・キープレート)をJLCPCB、ケース(トップ・ボトム・プレート)をJLC3DPに発注しました。
JLC3DPはJLCPCBの関連サービスなので、同梱で発注すれば送料も1回分で済むのでお得です!

今回製作したマクロパッド『HandyPad15 Rev1.1』の基板データ(ガーバーファイル)とケースデータ(STL)をダウンロード出来るようにしておきます。
何かの参考になればと思います。

メイン基板の発注

まずメイン基板の発注です。
基板はJLCPCBに発注しました。

JLCPCBのサイトにガーバーファイルをドラッグ&ドロップでアップロードします。

JLCPCBに発注する際の選択項目は特記すべきところはありませんが、余計なシルク文字がプリントされるのを避けるために[PCB上のマーク]は[マーク除去]を指定しておくのがいいと思います。
任意の位置に入ってしまう製造番号を削除することが出来るオプションとなり、無料で出来ます。

[PCBカラー(基板色)]はお好みで選択して下さい!

あとパーツの実装方法にもよりますが、私はリフローによる実装を想定していたのでステンシルも一緒に発注しました。
はんだ付けにある程度慣れた方であれば手はんだでの実装も十分可能なパーツ構成となっていますが、ヒートガンやリフローによる実装環境があるならステンシルを使うと作業効率が良く綺麗に実装することが出来ます。

ステンシルも一緒に発注する場合、下にある[PCBと一緒に発注する]を選択します。
JLCPCBのステンシル発注では、サイズを指定しないと結構大きなサイズで届いてしまい実装の際に面倒となるのでサイズを指定しておいた方がいいと思います。

基板サイズが約130mm×90mmなので、150mm×100mmにサイズを指定して発注しました。(サイズ指定は無料で出来ます)

ステンシル料金が7ドル加算され、メイン基板のトータルコストは15.5ドルほどとなります。

MEMO
本記事でご紹介している基板は、表面仕上げにENIG(金メッキ加工)オプションを付けています。(オプション料金がかかります)

JLCPCBの基本的な基板発注やステンシルの発注方法に関しては、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)
【JLCPCB】初めてステンシルを使ったリフローを行ってみました。JLCPCBでステンシルを発注する手順などを紹介!

キープレートの発注

キープレートの発注も上記と同様です。
こちらはステンシルは必要ありません!

製造料金は8.5ドルとなりました。

ケースの発注

次に3Dプリントパーツの発注です。
こちらはJLCPCBの3DプリントサービスとなるJLC3DPに発注しました。
上記基板と一緒に発注すると送料が1回分で済むのでお得です!

まずボトムケースです。
JLC3DPのサイトにこちらも同様、モデルデータ(STL)をドラッグ&ドロップしてアップロードします。

ボトムケースはアンダーグローを活かすために透明レジン(8001 Resin)を選択しました。
選択するマテリアルはお好みで・・・

次にトップケースです。
トップケースはマテリアルを変え、[8228レジン]と[CBYレジン]の2パターン作りました。

JLC3DPのレジン系マテリアルは、安価で利用でき仕上がりも綺麗なのでオススメです!

JLC3DPの基本的な発注方法や扱われている材料(マテリアル)の比較はこちらの記事で書いています。
初めてJLC3DPを利用される方や、マテリアルを選択する際の参考にして頂ければ思います。

【JLCPCB / JLC3DP】JLCPCBの3Dプリントサービス(JLC3DP)を利用してみました。発注手順などをご紹介!
【JLC3DP】JLC3DPの素材を比較!小さなモデルでマテリアルサンプルを作っておくと発注の際に便利です!

基板 & ケースの到着

今回、基板と3Dプリントしたケースを一緒に発注しました。
基板の製造は基本的に1~2日ほどで完了しますが、3Dプリントパーツの製造は時間がかかり選択するマテリアルによっても製造時間は大きく変わってきます。

今回の発注では配送方法にOCS Expressを選択し、発注から2週間ほどで手元に届きました。

この当時はまだJLC3DPを利用し始めたばかりの頃だったので、この仕上がりに感動したのを今でも覚えています!

こちらは完成後の写真となりますが、ほんと綺麗な仕上がりです。
8228レジンで作ったトップケースと8001透明レジンで作ったボトムケースとの組み合わせ。

そしてトップケースをCBYレジンで作ったバージョン。
JLC3DPは安価で利用でき表面処理も入りここまで綺麗に仕上がるので、完成品としてのクオリティーが一段上がりますね!

そして後にスプレー塗装したトップケースも作ってみました。

こちらも非常に綺麗な仕上がりです!

MEMO
(2025.06現在)
JLC3DPのスプレー塗装ラインナップが少し変更されたようで、上記グリーンカラーは選べなくなっているようです!

マクロパッドはキーボードの補助といった役割で何かと使う機会が多いと思います。
JLC3DPではこのクオリティーのものが比較的安価で製造出来るので、キーキャップに合わせたり、また気分に応じてケースを変えてみるのもいいかもしれませんね!

JLC3DPのスプレー塗装に関してはこちらの記事でも書いています。
あわせて見て頂ければと思います。

【JLC3DP/JLCPCB】JLC3DPのスプレー塗装サービスを利用してみました!

パーツの実装

ある程度基板製作ではんだ作業に慣れた方なら手はんだでの実装も十分可能で、ステンシルがあればリフローで比較的簡単に実装出来ると思います。
・・・が、本記事を見て頂いている方は自作キーボード関係の方が多いのかな?

今回製作した基板は、MCUオンボードタイプで全て表面実装パーツ(SMD)で構成されています。
手はんだでの表面実装パーツの取り付けや、またヒートガンやホットプレートの扱いにある程度慣れていないと難しいかもしれません!

特にマイコンチップATmega32U4はQFN-44パッケージのものを使っています。
QFPのものよりチップサイズが小さくリード線のピッチも0.5mmと狭いので、リフローでもブリッジしやすく当時は結構苦戦した記憶があります。

それではパーツの実装です。
ステンシルを使いはんだペーストを塗布します。(こちらは修正後の基板です)

ちなみに、ステンシルを使ったはんだペーストの塗布ではいつもこれを使っています。

パーツの配置でLEDの向きだけは気を付けて下さい!(フットプリントで分かるとは思いますが)
外周のLED16~LED25は、キースイッチ直下のLED(1~15)と向きが反対となっています。

パーツの実装はMHP50というミニリフロー装置を使いました。
PD電源が使えるコンパクトなホットプレートで、自作基板製作ではいつも愛用している非常に便利なリフロー装置です。

自作キーボードを製作されている方は、RP2040-Zeroといった端面スルーホールタイプのマイコンボードの取り付けや取り外しをやる機会が多いと思います。
1台持っていると便利で何かと重宝するかと思います!

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

また、今回製作した基板はMHP50のホットプレートサイズ(50mm×50mm)を超えるサイズだったため、このような専用スタンドを使いリフローしました。

MHP50を使ったリフローで、大きな基板にも対応することが出来るので便利です!

【電子工作 / PCB】Miniware MHP50で使えるスタンドの製作。大きな基板やいろんなリフロー方法に対応出来るので便利ですよ!

ファームウェアの書き込み

パーツの実装が出来たらファームウェアを書き込み動作テストを行います。
QMK/Vial対応ファームウェアは以下からダウンロードして下さい。

ファームウェアの書き込みは、QMK Toolboxを使いました。

QMK Toolboxを立ち上げ[Open]から上記ダウンロードしたHandyPad15用ファームウェア[handypad15_vial.hex]を選択し、MCUは[ATmega32U4]を選択しておきます。

本基板をPCと接続し基板背面にあるリセットスイッチを押すとQMK Tookboxで[Flash]ボタンを押せる状態になるので、これをクリックしてファームウェアを書き込みます。

ファームウェアの書き込みに成功するとこのような表示になると思います。

ファームウェアの書き込みが完了したら、ブラウザ版またはアプリ版のVialを開き、[Matrix tester]でキースイッチ動作が正しく行われるか?

またLEDの点灯に問題がないかの確認を行って下さい!
問題がなければ完了です。

ちなみに、レイヤー切り替えにより右側のスイッチ3つの点灯色が変わる仕様としています。
レイヤー1でグリーン、レイヤー2でブルー、レイヤー3でパープルに3つのLEDの点灯色が変わります。

書き込みモード(DFUモード)に入れない場合

ATmega32U4チップには工場出荷時にDFUブートローダーが書き込まれているとデータシートに記述があるのですが・・・
チップ出荷時の形態の違いなのかな?ブートローダーが書き込まれていない場合もあるようです。

本ボードではATmega32U4生チップを使用するのでブートローダーが書き込まれていない場合、USB経由でデバイスとして認識されないためファームウェアの書き込みモード(DFU)に入れず書き込みが行えない場合があります。
そのような場合は最初にISP経由でブートローダーを書き込んでおく必要があります!

ATmega32U4で使われるブートローダーはいくつか種類がありますが(基本どれを書き込んでも問題ありません)、QMKで使う場合Caterinaブートローダー(SparkFun Pro Micro用Caterinaブートローダー)を選ぶのが一般的ですが、Arduino Leonardo用などを使用しても特に問題ありません。

ArduinoやUSBaspなどのISP書き込み装置を用意し、本基板のICSP端子(パッド)に接続してブートローダーを書き込みます。

ブートローダーの書き込み方法に関して詳しくはこちらでは割愛しますが、以下記事の[ブートローダーの書き込み]が参考になるかと思います。

【電子工作 / PCB】ファミコンのコントローラーをUSBゲームパッド化する基板を作ってみました!

組み立て

動作確認が出来たら、最後に組み立てです。

まずトップケースにインサートナットを封入しておきます。
今回トップケースはレジン系マテリアルで作ったのであまり熱圧入には不向きですが、M2×5mm(OD3.5mm)で圧入出来るサイズに調整しています。

計5ヶ所インサートナットを圧入します。

インサートナットの熱圧入にはこのような専用コテ先があると便利です!

下記はFX600用です。

MEMO
これで抜けることはないと思いますが、流し込むタイプの瞬間接着剤でさらに接着しておくのもいいかと思います。
本来レジンではこちらが推奨されています。

あとはキープレートとメイン基板にキースイッチを取り付けます。
キースイッチの交換や変更時にスイッチプレートが外れると面倒なので、スペーサーパーツも挟んでおきました。(上記ダウンロードデータに含まれています)

ロータリーエンコーダーは高さ20mm、エンコーダーノブは約25mm×15mmのものを使いました。

最後にM2×15mmビスで固定して完成です!

はい、綺麗に仕上がりました!

自作の製作物って自宅の3DプリンタやCADで何度も試作を繰り返し時間をかけて形にしていくものなので、最後の完成品はJLC3DPといったサービスを利用し綺麗に仕上げるのは非常に有効な手段だと感じました!

今回の製作を通じて、JLCPCBの3Dプリントサービス「JLC3DP」を本格的に活用し始めるきっかけにもなりました。
そして以降の製作物にも活かせるようになり、気付けばJLC3DPを使う機会も自然と増えていったように思います。

使用パーツ一覧

今回使用したパーツの一覧です。

パーツ定数入手先
コンデンサ
(0603)
C1/C2 22pF
C3/C6 100nF
C4/C5 15pF
C7 4.7μF
C8 1μF
AliExpress
ダイオード
(SOD-323)
D1~D15 1N4148(SOD-323)AliExpress
ショットキー
(SOD-323)
D16 1N5819W(SOD-323)AliExpress
LED
(SK6812 MINI-E)
LED1~LED15 (Backside)
LED16~LED25(Frontside)
秋月電子 / AliExpress
USB端子J1 Type-C(16P)秋月電子 / AliExpress
抵抗
(0603)
R1/R6 10kΩ
R2/R3 5.1kΩ
R4/R5 22Ω
AliExpress
MCUATmega32U4-MU(QFN-44)AliExpress
クリスタル
(3225)
Y2 16MHz(SMD)秋月電子 / AliExpress
タクトスイッチSW1 3mm×4mm×2.5mm(SMD 4P)AliExpress
ロータリーエンコーダEncorder1 EC11 or EC12(5P)
※高さ20mm程度のもの
AliExpress
MXソケットMX_Key1~MX_Key15遊舎工房 / AliExpress
その他M2×15mmビス ×5
M2×5mm(OD3.5mm)ヒートインサート ×5
AliExpress
エンコーダーノブ
※幅25mm程度のもの
AliExpress

最後に!

今回ご紹介した自作マクロパッド『HandyPad15』は、私にとって2台目となる自作キーボードであり、自分なりに試行錯誤を重ねながら作り上げた一台です。

設計からモック作成、ファームウェアの検証までを一通り体験&学ぶことが出来たこのプロジェクトは、QMKを使った自作キーボード製作の基礎的なノウハウを学ぶ良い機会になり、そして何より「自分にとって使いやすいもの」を追求しながら形にしていく過程そのものが、自作の一番の醍醐味だと改めて感じたりもしました。

これからマクロパッドやキーボードの設計・製作に挑戦してみようと考えている方にとって、少しでも参考になれば嬉しいです!

コメントを残す