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

【自作キーボード / JLCPCB】横長シンプルなマクロパッド『Keyno』を製作してみました!

電子工作の延長として、これまで自作キーボードやマクロパッドをいくつか製作してきました。

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

特にキーボードの補助として使えるコンパクトなマクロパッドは、作業内容を問わず便利に使える場面が多く、ショートカットキーやメディアコントロールなど、ちょっとした操作を割り当てておくと作業効率がぐっと上がる印象を受けます。

今回製作した『Keyno』は、そんなマクロパッドの中でも「横1列のスリムな構成」にこだわったモデルです。

8キーにプラスしてロータリーエンコーダーを1つ搭載し、マクロパッドとしては最小限ながらも必要十分な操作性、キーボードの上にちょこんと置いて使えるシンプルさを目指して製作しました。

横長シンプルなマクロパッド『Keyno』の製作!

今回製作した1×8キー(+エンコーダー)の『Keyno』は、シンプルながらも出来る限りコンパクトなサイズ感に収めることを意識して製作しました。

そのため、既存のマイコンボードは使わずRP2040(マイコンチップ)をオンボードで実装し、QMK/Vialで動く構成としています。

ハードウェア的にRP2040やその周辺パーツの最適な配置を維持しつつ、私の現状持ちうるスキルで作れる最小幅までベース基板のサイズをコンパクトに作ることを1つの目標として製作していたので、電子工作・PCB設計的にも面白かったプロジェクトになりました。

そして今回、基板の製造をJLCPCB、3Dプリントケースの製造をJLC3DPに発注することを前提で基板設計やケースのモデリングを進めていました。

製造されたケースは非常に綺麗な仕上がりで、製作時のCADイメージ通りの満足出来るものになりました!

CADのイメージ

これまでにも、ミニサイズのマクロパッドはいくつか製作してきました。
用途を問わずキーボードの横に置いておくだけで補助的に使えるので、このようなマクロパッドは便利に使える場面は多いと思います。

【自作キーボード / 電子工作】ミニマクロパッド『SnapMate』の製作。オンボードRP2040搭載の回路や基板設計について!
【電子工作 / 自作基板】静電容量式タッチキー搭載の自作マクロパッド『PockeTouch』の製作!

そして自作キーボードを製作するようになってからは、これまで使ったことのなかった40%サイズのキーボードなども用途によってはメインで使うことも増えてきました。

そして同時に、小型キーボードではキー数が限られるため、ショートカットキーやファンクションキーなどを別デバイスに割り当てておくと便利な場面が多いとも感じるようになりました。

そこで「キーボードの上にさりげなく置ける、1列タイプのシンプルなマクロパッドが欲しい」と思ったのが、今回の『Keyno』を製作するきっかけとなりました。

形状や内部のハードウェア構成はあくまでシンプルに。

メインのキーボードよりも主張せず、シンプル・スマートなマクロパッドを目指して設計を進めていきました。

最終的に作りたい形状・サイズから逆算していくと、3Dプリントケースの厚みを2.5mm確保した場合、内部に収まる基板の幅はおよそ22mmほど。
おや、想像以上にスペースが限られるぞ!

この中に、スイッチやエンコーダー、USB端子、特にメインとなるマイコンチップ(MCU)周辺パーツをどのようにレイアウトするかが設計上の大きなポイントになりました。

基板設計

基板の縦方向に余裕がなく、そして横方向もキースイッチ(ソケット)との干渉も発生するため、MCUまわりのレイアウトが難しくなってきました。

さらにスイッチ直下にRGB LEDを組み込む設計としたことで、0402サイズのパーツを使ってもレイアウトがかなり厳しくなってくることから、4キー・4キーの間に0.25U分のスペースを設けることで、MCUスペースを確保できデザイン的にもバランスの良い配置に落ち着きました。

このわずかなスペースを設けたことで、基板設計の余裕が生まれ配線の引き回しもスムーズになりました。

MCUまわり以外のレイアウトは特に問題なく、LEDやOLED(I2C)拡張用端子を追加するスペースも確保することができ、将来的にディスプレイ搭載タイプの別ケースを作成するなどの楽しみを残すことも出来ました。

最終的な全体回路構成は以下のようになりました。

以上、基板設計が完了しパーツとの干渉部分などを再確認した上でケース側の一部寸法を修正し、JLCPCBおよびJLC3DPに発注しました。

JLCPCB & JLC3DPに発注

基板をJLCPCB、そして3DプリントケースはJLC3DPに発注しました。
JLC3DPはJLCPCBの関連サービスなので、同梱で発注すれば送料も1回分で済むのでお得です!

MEMO
今回、基板の発注はパーツ実装サービス(PCBA)を利用しました。
PCBAを利用する場合、JLC3DPとは同梱で発注できないため個別での発注となります!

今回製作したマクロパッド『Keyno V1.0』の基板データ(ガーバーファイル)とケースデータ(STL)をダウンロード出来るようにしておきます。

今回はPCBAサービスを利用したので、BOMとCPLファイルも含まれています。
何かの参考になればと思います。

基板の発注(PCBAを利用)

今回PCBAサービスを利用しましたが、RP2040や0402パッケージの実装など普段やっていて慣れてるよって方は、基板とステンシルのみを発注し自身でパーツを実装した方がかなりコスパはいいと思います。
私もリフローでの実装は毎回楽しいので、普段は自分で実装してしまう派なのですが・・・

JLCPCBでのPCBA発注の手順も順を追って書いておきます。

いつものようにJLCPCBのサイトにガーバーファイル(GERBER-Keyno.zip)をドラッグ&ドロップしてアップロードします。

発注項目の選択ですが、[PCB上のマーク]は[マーク除去]を選択しておいて下さい。
基板カラー(PCBカラー)はお好みで!

パーツ実装サービス(PCBA)を利用する場合、下にある[PCB組み立て]にチェックを入れ、以下項目を選択します。

[PCBAタイプ]は[エコノミック][組み立てサイド]は[ボトム面]を選択し、必要な枚数を選択します。(今回5枚を選択しました)

[次へ]をクリックし、パーツ実装面の確認です。
ボトム面で問題がないので[次へ]進みます。

BOM(部品表リスト:BOM-Keyno.csv)とCPL(部品配置データ:CPL-Keyno.csv)をドラッグ&ドロップしてアップロードします。

次に実装パーツの確認です。

発注するタイミングによっては在庫が無いパーツが発生する場合もあります。
その際は他のパーツを選択するか、チェックを外して未実装とし、後述する[使用パーツ一覧]から必要なパーツを入手し自身で実装する必要があります!

また、本記事執筆時にBOMを再確認しましたが、私が発注した時には [エコノミック]扱いだったRGB LED(SK6812MINI-E)が[標準]扱いに変更されていました。

エコノミックから標準扱いになると、それだけで30~40ドルほど料金が高くなってしまうので、こちらではこのパーツのチェックを外し未実装(配置しない)としエコノミックで発注することを前提として続けていきます。

最後に部品の配置に誤りがないかの確認です。

Q1/U1/U2/U3チップの向きが合っていないようなので、

パーツを選択しスペースキーを押して回転させ正規の向きに修正しておきます。

以上確認&修正が完了したら[次へ]進み、料金を確認して発注という流れになります。

今回実装基板の枚数を5枚として発注しましたが、1枚あれば十分だと思うので枚数を減らせば(2枚を選択)、料金もある程度お安くなるかと思います。

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

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)
【自作基板 / 電子工作】JLCPCBのパーツ実装サービスPCBAを試してみました!自作基板の製造からパーツ実装までをおまかせ発注

ケースの発注

次にケースの発注です。
こちらはJLC3DPに発注しました。

小さなケースとなり、JLC3DPでは非常に安価で製造してもらうことが出来るので、レジンのスプレー塗装でいくつかカラーバリエーションを加え発注しました。

ケースデータ(Keyno_Top_Case.stl / Keyno_Bottom_Case.stl)をJLC3DPのサイトにドラッグ&ドロップしてアップロードし、あとは製造するマテリアル(材料)を選択します。

今回、[9600 Resin]をベースに[表面仕上げ]に[スプレー塗装]オプションを付けてカラーを選択しました。

トップケース・ボトムケースともに約4ドルほどで製造することが出来ます。
非常にお安いですね!

MEMO
上記基板を単体で発注する場合は3Dプリントパーツも同梱が可能ですが、PCBAを利用すると個別で決済する必要があります!

JLC3DPの基本的な発注方法は、こちらの記事でまとめています。
あわせて見て頂ければと思います。

【JLCPCB / JLC3DP】JLCPCBの3Dプリントサービス(JLC3DP)を利用してみました。発注手順などをご紹介!
【JLC3DP/JLCPCB】JLC3DPのスプレー塗装サービスを利用してみました!

またJLC3DPで扱われている材料(マテリアル)に関しては、こちらの記事が参考になるかと思います。

【JLC3DP】JLC3DPの素材を比較!小さなモデルでマテリアルサンプルを作っておくと発注の際に便利です!

基板 & ケースの到着

今回PCBAサービスを利用したので、基板と3Dプリントケースは個別で発注しました。
パーツ実装済みの基板は発注から8日、ケースの方は10日で手元に届きました。(ともに配送方法はOCS Expressを選択)

まずパーツ実装済み基板の確認です。
2台は作っておきたいなと考えていましたが、一応予備として5枚発注しました。

導通チェック&ファームウェアを書き込み動作確認を行いましたが、全ボード全て問題なく動作してくれました。

次に3Dプリントケースです。
JLC3DPは非常にお安いので、カラーバリエーションを変えていくつか作ってみました。

非常に綺麗な仕上がりです!

自作キーボードの完成度は、最終的なケースの仕上がりに大きく左右されるものですが、このレベルで仕上げて頂けると本当に大満足です!

ここまで綺麗に仕上がっていると、使用するキーキャップによりどの組み合わせのカラーがいいかなど考えるのも楽しくなってきますね!

未実装パーツの取り付け

ホットスワップソケットとロータリーエンコーダーは未実装なので、これらを取り付けて基板を完成させます。

MEMO
他に未実装パーツがある場合(上記PCBA発注の例ではRGB LEDを未実装としました)、後述する[使用パーツ一覧]を参考に自身でパーツを入手し実装する必要があります!

エンコーダーはスイッチ付きの5Pタイプのものを使用します。
高さは14~15mm程度のものが最適です。

また、エンコーダーのノブは直径20mmを想定してケースを設計しています。

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

未実装パーツの取付が完了したら、ファームウェアの書き込みです。
QMK/Vialに対応したファームウェアは以下からダウンロードして下さい。

本基板にUSBケーブルを挿し込みPCと接続します。
[BOOT]スイッチを押した状態で[RST]スイッチを押すと、USBマスストレージデバイスとして認識されます。

MEMO
初回起動時は自動的にUSBマスストレージとして認識されます。

あとは上記ファームウェア(keyno_vial.uf2)をドラッグ&ドロップして書き込めば完了です。

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

また、[Lighting]からLEDの点灯に問題がないかの確認を行って下さい!

ちなみに、使用する環境によりエンコーダーを左側に配置、または右側に配置(USB端子の位置)でキーマップを反転出来るようにしています。
[Layout]からエンコーダーの位置をどちらで使用するか選択して下さい。

以上、動作確認で問題がなければケースに組み込みます。

組み立て

トップケースとボトムケースの固定は、M2ビス&インサートナットを使います。

M2×3mm(OD3.5mm)のインサートナットを8ヶ所トップケースの方に圧入します。

今回JLC3DPに発注したケースは、レジンで製造したものとなります。
本来レジン系マテリアルは熱圧入には不向きとなりますが、ホールサイズを調整しているので上記指定サイズのインサートナットを使えば綺麗に圧入することが出来ます。

このようなインサートナット用のチップがあると便利ですね!

下記リンクはFX600用です。

綺麗に圧入出来ました。

あとはトップケースにキースイッチを取り付けて基板と接続し

ボトムケース側からM2×11mm(または10mm)ビスで固定(8ヶ所)すれば完成です!

カッコ可愛いマクロパッドになりました!

JLC3DPで製造したケースの仕上がりに感謝です!

使用パーツ一覧

今回使用したパーツの一覧です。
パーツの実装を自身で行う場合、サイズや定数など参考にして下さい。

またPCBAサービスを利用する場合も発注するタイミングによっては在庫切れパーツが発生し実装出来ない場合もあるかと思います。
その際は、自身で実装する必要が出てくるため参考にして下さい。

パーツ定数入手先
コンデンサ
(0402)
C1/C2/C5/C6/C8/C9/C10/C11/C14 100nF
C3/C4C/C12/C13 1μF
C15/C16 15pF
AliExpress
ヒューズ
(1206)
F1 500mAAliExpress
USB端子J1 Type-C(16P)AliExpress / 秋月電子
MOSFETQ1 BSS138(SOT-23)AliExpress / 秋月電子
抵抗
(0402)
R1/R7/R8/R10 10kΩ
R2/R9 1kΩ
R3/R4 5.1kΩ
R5/R6 27Ω
AliExpress
タクトスイッチSW1/SW2 3mm×4mm(4P SMD)AliExpress
LDOU1 XC6206-3.3V(SOT23-3)AliExpress
フラッシュU2 W25Q16JVUXIQ(USON8)AliExpress / 秋月電子
ESDU3 USBLC6-2SC6AliExpress
MCUU4 RP2040(QFN-56)AliExpress / 秋月電子
クリスタル
(3225)
Y1 12MHz(4P)AliExpress / 秋月電子
RGB LEDLED1~LED8(SK6812MINI-E)AliExpress / 秋月電子
[PCBA未実装パーツ]
パーツサイズ入手先
ホットスワップソケットKEY1~KEY8 MX KeilhソケットAliExpress / 遊舎工房
ロータリーエンコーダーEncoder1 EC12(5P H15mm前後)AliExpress
[その他パーツ]
パーツサイズ入手先
エンコーダーノブ直径20mm以下AliExpress
インサートナットM2×3mm(OD3.5mm) ×8AliExpress
ビスM2×11mm(または10mm) ×8ーーー

最後に!

今回製作した『Keyno』は、これまで製作したミニマクロパッドの中でも、よりシンプルでスマートを追求したモデルになりました。

1列8キー+エンコーダーという構成で、22mmという狭い基板幅の中にRP2040をオンボードで実装するというチャレンジを通して、今後の自作基板設計にも活かせる多くの学びも得ることが出来た楽しいプロジェクトになりました。

完成させ2ヶ月ほど使っていますが、どんなキーボードとも自然に馴染むコンパクトなマクロパッドに仕上がったと思います。
キー割り当てを工夫すれば、作業補助からメディア操作、ショートカットの実行など、幅広く活用出来そうなのも魅力の一つです!

今後RGB LEDをさらに拡張したり、OLEDディスプレイを搭載できるカスタムケースを製作したりと、楽しみが広がっています。

シンプルだけどしっかり使える、そんな小さなマクロパッドを探している方にとって、Keynoがひとつの参考になれば嬉しいです。

コメントを残す