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

【自作キーボード / JLCPCB】CAD作業に特化したマクロパッド『Disarray』の製作!

昨年から今年にかけて、自分で設計したものや、またオープンソースで公開されているものなども含め多くの自作キーボードを製作してきました。

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

特に自分で設計したものは誰かに求められたものではなく、「自分の作業環境にあったら便利そうだな」という発想からスタートすることが多いため、完成後も実際の作業環境で便利に使えるケースが多く、「自分のための道具を自分で作る」ことの面白さを感じる場面が多いです。

今回ご紹介するのは、そうした流れの中で生まれたCAD作業に特化したマクロパッド『Disarray』です。

Fusion360やKiCadといった普段CADを使った設計作業で頻繁に使うコマンドやショートカットだけをまとめて作業効率を高めてくれる、そんな自分にとって「ちょうどいいデバイス」にまとまったと感じています。

CAD作業に特化したマクロパッド『Disarray』の製作!

『Disarray』製作のきっかけ

昨年、電子工作の延長として自作キーボードの製作にも取り組むようになり、自分で設計したものに加えてオープンソースで公開されているものなども製作するようになりました。

自作キーボード関連の記事一覧

その中で特に気に入っているものの一つに、『Disorder30』というオープンソースのキーボードがあります。
サイズや用途的にはマクロパッドに近く、通常のキーボードとして使うにはキー数が少ないものの、CAD用マクロパッドとしては相性が良く私の作業スタイルにぴったりハマりました!

普段のCAD作業では、左手にSpaceMouse、右手に通常のマウスやトラックパッド、そして中央にこのマクロパッドを配置してよく作業するようになりました。
この配置だと省スペースで肩幅を広げず自然な姿勢のまま操作できるため、長時間作業でも疲れにくいのが魅力です!

またCADの操作では、コマンド呼び出しのショートカット入力が多いため、必要なキーを使いやすくまとめたこのようなマクロパッドがあると非常に便利だと感じます。

【自作キーボード】オープンソースで公開されている自作キーボード『Disorder30』を作ってみました!

そして半年ほどDisorder30を使い続ける中で、レイアウトや構成など、いくつか改良したい点も見えてきました。

まず気になったのがマイコンの選定です。
Disorder30ではPro Micro(ATmega32U4)が使われていますが、QMK/Vialなどのファームウェアを動かすにはフラッシュ容量が厳しく、カスタマイズ性に限界を感じる場面がありました。

Pro Microは電子工作ではおなじみのUSB機能が付いた便利なマイコンボードですが、もう古い世代のボードとなり使用するファームウェアによってはカスタマイズ性に限界があることから、Pro Micro互換のRP2040ボードを自作し、より柔軟に対応出来るようにして使っていました。

【自作基板 / 自作キーボード】Pro Micro互換のRP2040ボード(Micro Pico)の製作。Pro Microを使った既存キーボードに入れ替えてRP2040化してみる!

またレイアウト面でも、CAD用途に特化して考えると改善したい箇所がありました。

例えばテンキー操作はCAD作業では必須となりますが、Disorder30の右レイアウトをテンキーパッドとして使う場合、上段にある0.25Uのスペースは見た目は良いものの実際は使いづらい・・・

あと左手マクロパッドとして私は使っていますが、その場合ロータリーエンコーダーを使うなら左側に配置したい・・・

こうした細かな気づきを積み重ねるうちに、それなら「自分の作業環境にさらに最適化されたCAD専用マクロパッドを一から設計してみよう」と考え、今回の『Disarray』の製作につながりました。

Disarrayの特徴

簡単に今回製作したマクロパッド『Disarray』についての概要をまとめておきます。

Disarrayは、CAD用途で使うことを想定した、テンキーパッドを含め38~39キーの小型キーボードです。

オンボードでRP2040を搭載し、QMK/Vialファームウェアに対応しています。

1台のロータリーエンコーダーを搭載し(キースイッチに変更可)、オプションとして背面にRGB LEDを配置することも出来ます。(計10個)

基板データ(ガーバー・BOM・CPL)やケースデータ(STL)も提供しているので、はんだ付けの経験が無い方でもパーツ実装サービス(PCBA)を利用することで実装済み基板を作り、また自宅の3Dプリンタ等を使いケースを製作してもらうことが出来ます。

Disarrayの特徴
  • オンボードRP2040搭載
  • ホットスワップ対応
  • OLED搭載(レイヤー表示にカスタムしています)
  • QMK/Vialファームウェアに対応
  • 背面LED搭載(10個)※オプション
  • PCBAに対応(Gerber / BOM / CPL提供)
  • ケースデータ提供

ケース設計

製作後、普段のCAD作業でガチ使いのマクロパッドとして使うために、今回の『Disarray』で最もこだわったのがケース設計です。

CAD作業ではほぼ毎日のようにこのマクロパッドを操作するため、そのサイズ感や使用感はもちろん、ケースデザインやちょっとした遊び心も大切にしたいと考えました。
ただ使えるだけではなく、作業空間に置いておきたくなるような存在感を意識しています。(ちょっと言いすぎかな?)

そして今回もですが、既存のマイコンボードは使わずMCUをオンボードで搭載する構成としました。
これにより基板スペースを無駄なく使えるほか、ケース内部の設計自由度も向上します。

例えば、有線キーボードではケーブルの抜き差しが意外とストレスになることが多いですが、ケース側の作り込みがしやすく使い勝手が良いものが出来たと思います。

また、CAD用マクロパッドとしては実用面で全く必要のないケースLED(背面)もオプションとして搭載出来るようにしました。
ボトムケースを透明素材で作れば、作業中にふとLED点灯アニメーションの光が目に入るだけでも気分が変わるものですし・・・、当初入れる予定はなかったのですが、これは入れておいて正解でした!

結果として、『Disarray』くんは毎日のCAD作業を少しだけ楽しくしてくれる、そんな存在になりました!

自宅の3Dプリンタ(FDM)での試作を何度か行い、JLC3DPで製造することを想定して各所寸法等の調整を行っていきました。

最終的に傾斜角を4°入れ、CAD作業ではエンコーダーを使うことはあまりないかな?ということで、エンコーダー or キースイッチバージョンの2タイプのトップケースを設計しました。

以上、全体構成が決まり自宅の3Dプリンタでモックを作成、イメージも固まってきたので基板設計に移りました。

基板設計

3D CAD上でほぼ完成に近いケースモデルと基板形状・配置などが決まったので、基板の設計に移りました。

マクロパッドとしては比較的サイズが大きく実装スペースに余裕があることから、この時点で背面のRGB LEDもオプションとして搭載出来るようにしました。(V1.1としています)
LEDを取り付けボトムケースを透明レジンで仕上げると、また印象も変わっていいかと思います。

今回製作したDisarrayの全体回路構成です。

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

JLCPCB & JLC3DPに発注

基板をJLCPCB、そして3DプリントケースはJLC3DPに発注しました。

今回製作したマクロパッド『Disarray V1.1』の基板データ(ガーバー・BOM・CPL)、そしてケースデータ(STL)をいつものようにダウンロード出来るようにしておきます。

オンボードMCUで作っているのでフリロー等によるはんだ作業に慣れていない方でも、後述する発注手順に従い実装済み基板を発注することが出来ます。
参考になればと思います。

MEMO
トップケースは、エンコーダーの有無により2パターンのデータがあります。
発注の際にどちらのデータを使うか注意して下さい!
MEMO
PCBAサービスを利用する場合、JLC3DPとは同梱できないため個別での発注となります!

基板の発注(PCBAを利用)

RP2040や0603パッケージの実装など普段やっていて慣れてるよって方は、基板とステンシルのみを発注し自身でパーツを実装した方がかなりコスパはいいと思いますが、今回基板の発注はJLCPCBのパーツ実装サービス(PCBA)を利用しました。

コストはかかりますが、はんだ作業に不慣れな方でも実装済みの基板を製造してもらうことが出来るので安心です!

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

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

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

MEMO
自身で全てのパーツを用意して実装する場合は、このままカートに入れて発注して下さい。(基板単体またはステンシルも選択)

パーツ実装サービス(PCBA)を利用する場合、下にある[PCB組み立て]にチェックを入れ、以下項目を選択します。
[PCBAタイプ]は[エコノミック][組み立てサイド]は[ボトム面]を選択し、必要な枚数(2枚 or 5枚)を選択します。(今回5枚を選択しました)

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

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

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

MEMO
ホットスワップソケット・LED・ロータリーエンコーダー・OLEDディスプレイは、BOMリストには含まれていません!(エコノミック料金では実装できないため)
基板到着後、自身で用意し取り付ける必要があります。

最後に部品の配置に誤りがないかの確認です。
ICチップがいくつか正規の向きと違っているので、スペースキーを押して正規の向きに修正しておきます。(Q1/U1/U3/U4を修正)

ICチップの1番ピンの位置はフットプリントに打っているので分かるかと思いますが、こちらが正規の向きとなるので参考にして下さい。

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

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

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

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

3Dプリントケースの発注

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

JLC3DPはJLCPCBの関連サービスなので通常は同梱で発注することが出来ますが、PCBAサービスを利用する場合は出来ないので別発注となります。

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

今回、[9600 Resin]をベースに[表面仕上げ]に[スプレー塗装]オプションを付けてカラーを選択しました。
マットシルバーのトップケースとマットブラックのボトムケースの組み合わせで発注しました。

MEMO
トップケースは、エンコーダー有り(Disarray_Top_Case_Encoder.stl)とエンコーダー無し(Disarray_Top_Case_Key.stl)の2パターンのデータがあるので注意して下さい!

またRGB LEDの点灯を活かすために、8001レジンを選択した透明ボトムケースも一緒に発注することにしました。

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

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

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

また今回は9600 Resinをベースにスプレー塗装オプションを付けて発注しましたが、JLC3DPでは他にも多くのマテリアルが扱われています。
JLC3DPで扱われているマテリアルに関しては、こちらの記事も参考になるかと思います。

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

基板 & ケースの到着

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

まずパーツ実装済み基板の確認です。

エンコーダーの有無により2台は作っておきたいなと考えていましたが、一応予備として5枚発注しました。

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

次に3Dプリントで仕上げたケースです。
トップケースはシルバー塗装仕上げで、エンコーダーの有無によって2パターンを製造。

そしてボトムケースはブラック塗装仕上げのものと、透明レジンを使ったクリアタイプの2種類を作りました。

どちらも非常に綺麗な質感と仕上がりで、手にした瞬間に思わずニヤッとしてしまうほど・・・、反りなども無く完璧な仕上がりでした!

最終的なキーボードの完成度はケースの仕上がりが大半を占めると言っても過言ではないので、このクオリティには大満足です!

メインはシルバー×ブラックの組み合わせを想定していましたが、組んでみると透明ボトムケースにしてLEDを活かしたパターンもかなり良い雰囲気で・・・

ここまで綺麗に仕上げてもらえると、どのカラーバリエーションで使おうか本気で迷ってしまいますね。
まさに嬉しい悩みです!

未実装パーツの取り付け

ホットスワップソケットとRGB LED(5050 WS2812B)、そしてロータリーエンコーダーとOLEDディスプレイは未実装なので、これらを取り付けて基板を完成させます。

MEMO
他に未実装パーツがある場合(発注時に指定パーツの在庫が無かった場合)、後述する[使用パーツ一覧]を参考に自身でパーツを入手し実装する必要があります!

ソケットやLED、ロータリーエンコーダーは、手はんだでの実装はさほど難しいものではないので問題ないかと思います。

ロータリーエンコーダーはスイッチ付きの5Pタイプのもの、高さは14~15mm程度のものが最適です!

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

そしてOLEDディスプレイは、ロープロタイプのピンヘッダー&ピンソケットを使い取り付けます。(ケースとの高さを合わせています)

必要であればスタビライザーも取り付けておきます。

以上、未実装パーツを取り付け基板を完成させたらファームウェアを書き込み動作確認を行います。

MEMO
細かいパーツの仕様や詳細に関しては、後述する[使用パーツ一覧]を参照下さい!

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

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

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

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

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

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

またLEDを実装している場合は、[Lighting]からLEDの点灯に問題がないかの確認も行って下さい!

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

組み立て

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

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

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

このようなインサートナット用のチップがあると便利ですね!
下記リンクはFX600用です。

綺麗に圧入出来ました。

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

ボトムケース側からM2×12mmビスで固定(計8ヶ所)すれば完成です!

綺麗な仕上がりで大満足です!
ここまで綺麗に仕上がると、もう市販キーボードのような感覚で使えますね。

通常カラーのケースだとLEDの点灯は見えなくなってしまいますが、透明ケースではしっかりと活かすことができます。
こちらもかなりいい感じで、デスク上での存在感も抜群です!

CAD作業で使うマクロパッドとしてはLEDが必須というわけではありませんが、長時間設計に没頭しているとき、ふと視界の端でやさしく光っているのを見ると、ちょっとした気分転換やモチベーションのスイッチにもなりそうですね!

ケース設計時に外形以外にこだわったのが、USB端子まわりの形状です。

ケーブルの抜き差しがしやすく、見た目の一体感もあり、かなりいい具合に仕上がったと思います。

日常的に使う部分だからこそ、この小さなフィッティングの良さが意外と効いてきます!

使用パーツ一覧

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

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

パーツ定数入手先
コンデンサ
(0603)
C1-C11/C14-C23 100nF
C12/C13 15pF
C24/C25/C26 1μF
AliExpress
ダイオード
(SOD-123)
D1-40 1N4148WAliExpress
ヒューズ
(1206)
F1 500mAAliExpress
USB端子J1 Type-C(16P)AliExpress / 秋月電子
MOSFETQ1 BSS138(SOT-23)AliExpress / 秋月電子
抵抗
(0603)
R1 470Ω
R2/R3 5.1kΩ
R4/R5 27Ω
R6/R7/R8/R9 10kΩ
R10/R11 1kΩ
AliExpress
ESDU1 USBLC6-2SC6(SOT23-6)AliExpress
MCUU2 RP2040(QFN-56)AliExpress / 秋月電子
フラッシュU3 W25Q128JVPIQ(WSON-8)AliExpress
LDOU4 XC6206-3.3V(SOT23-3)AliExpress
クリスタルY1 12MHz(3225 4P)AliExpress / 秋月電子
[PCBA未実装パーツ]
パーツ定数入手先
RGB LEDLED1-LED10(5050 WS2812B)AliExpress / 秋月電子
MXソケットSW1-SW44 ソケットAliExpress / 遊舎工房
ロータリーエンコーダーEncoder1 EC12(5P H15mm程度)AliExpress
OLEDディスプレイOLED1 SSD1306
(0.91インチ 128×32 / I2C)
AliExpress
ピンヘッダー&ピンソケットロープロピンヘッダー・ピンソケット
※OLED用
秋月電子
秋月電子
スタビライザーStab1/Stab3 2Uスタビライザー
Stab2 3Uスタビライザー
※必要なら
遊舎工房
[その他パーツ]
パーツサイズ入手先
インサートナットM2×4mm(OD3.5mm) ×8AliExpress
ビスM2×12mm ×8ーーー
エンコーダー用ノブ直径20mm以下のものAliExpress

最後に!

今回製作した『Disarray』は、これまで作ってきたものより「自分の作業スタイルに合わせた一台」として満足出来るものになったと思います。

もともと気に入って使っていたDisorder30をベースに、もっとCAD作業に特化したマクロパッドをと思い立って設計したものですが、結果として理想にかなり近づけたと思います。

ケースの仕上がりやLEDのアクセント、USB端子まわりの細部など細かい部分までこだわった分、使うたびに「作ってよかった!」と感じられるデバイスになりました。

また、実際に毎日のCAD作業で使い込むことで、新しい発見やあらたな改良点などが見つかるのも、自作ならではの面白さだとも感じています。

自分の作業環境を自分で作る楽しさを、あらためて実感できたプロジェクトとなりました。
何かの参考になれば・・・。

コメントを残す