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

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

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

Disorder30はmkylama氏設計のキーボードとなり、CUSTOMKBDさんでキット販売されているものを購入し製作することが出来ます。
また同氏のGitHubには基板(PCB)やケースデータ、パーツリスト(BOM)等が公開されているので、自分で基板を発注し必要なパーツを集めて組むことも出来ます。

昨年(2024年)後半くらいから自作キーボードの世界にも足を踏み入れオリジナルの自作キーボードやマクロパッドなどを設計&製作するようになったのですが、偶然見かけたこのDisorder30というキーボードに一目惚れしたため製作してみることにしました。

オープンソースで公開されている自作キーボード『Disorder30』の製作

参考 Disorder30KBD news

Disorder30は標準レイアウトまたは右側のテンキーを含めた拡張レイアウトの2パターンから選択し製作することが出来るキーボードとなっています。

ご覧のようにキー数的にキーボードとして使うのは難しそうで、マクロパッドとしての位置付けになるのかな?
用途が限定されると思いますが、ご自分の使用用途と合致すれば便利なマクロパッドとして使うことが出来ると思います。

私はKiCadやFusion360といったCADソフトで使うショートカットキーやコマンドなどをマッピングして使っています。

CADの作業では基本的にマウスと左手デバイスとなるSpadeMouseなどでの操作がメインとなり、キーボードはコマンドを選択するショートカットキーや数値入力で使うといったサブ的な位置付けになるので、コンパクトなDisorder30はそのようなマクロパッドとして使うと便利だと思います。

興味ある方はCUSTOMKBDさんで販売されているキットを入手して製作することが出来ます。

参考 Disorder30CUSTOMKBD

また設計者のmkylama氏のGitHubページにはPCBやケース等必要なデータが全て公開されているので、ご自身で基板を発注しパーツを集め組み上げることも出来ます。

参考 mkylama / disorder30GitHub

私はJLCPCBに基板を発注、またケースデータに少し手を加えたものを同社の3DプリントサービスとなるJLC3DPに発注して製作しました。

Disorder30はごく一般的な入手しやすいパーツ構成で作られているので、私のように少し手を加えて製作したい場合では配布されているデータを使い製作するのがいいと思います。

また上記サイトで販売されているケースは3Dプリントされた白または黒の2パターンしかないようですが、JLC3DPではレジンを使いスプレー塗装したケースを安価で製造することが出来るので、自分好みのオリジナルのカラーリングで作ってみたいという方にもオススメです。(もちろん自宅の3Dプリンタで製作することも出来ます)

当記事ではJLCPCBに基板、JLC3DPにケースを発注する流れでDisorder30の製作過程を見ていきたいと思います。

組み立て自体は比較的簡単になるキーボードですがキースイッチの固定にホットスワップソケットが使われていないため、はんだ付けの手順を間違えるとかなり厄介となってくるのでビルドガイド的にも書いていきたいと思います。

CAD上で組み立てて確認してみる

私自身、自作キーボード歴がまだ半年ほどとなるため、公開されているデータを使って製作する場合も一旦全てCAD上で組み上げて確認してから製作に入るようにしています。(製作者様のCADテクニックを勉強させてもらう意図もあります)

CAD用のコンパクトなキーボードとして使いたいという私の使用用途では標準の75%レイアウトが最適なので、この構成で組んでみました。
右上はキースイッチまたはロータリーエンコーダーの選択が出来るので、今回製作したものではエンコーダーを取り付けることにしました。(使用するケースデータが変わってきます。)

非常にシンプルなキーボードとなり、ISOエンターが可愛いですね!
この標準レイアウトではケースを含めたサイズは約200mm×100mmとかなりコンパクトなキーボードになります。
このサイズ感、CAD作業では結構重宝するんですよねー!

CADで組んでみてケースデータの気になる部分を修正し、POMプレート(キープレート)はPCBで作ることにしました。

販売されているものとは少し変わってきますが、オープンソースでデータを公開して頂いているので自分好みの構成に修正&製作することが出来るのも自作キーボードの醍醐味の一つですよね!
以下2点を修正し製作しました。

オリジナルからの修正点
  1. ケース及びプレートの取り付けビスはインサートナットで受けるように修正
  2. キープレートはPCBで製作

①ケース及びプレートの取り付けビスはインサートナットで受けるように修正

オリジナルのデータを見るとキープレートの取り付けとトップおよびボトムケースとの取り付け穴は1.8mmで設計されています。
おそらく通常のM2ビスやタッピングビスを使用して3Dプリントケースに直接固定する構成だと思います。

キーキャップを交換する際などで結構負担がかかる部分なのでインサートナットで受けるようにデータを修正しました。

1.8mmホールならFDM機(フィラメント)で出力した3Dプリントケースなら溶けるのではんだゴテを使いM2インサートナットを熱圧入することは可能だと思いますが、私はJLC3DPのスプレー塗装サービスを利用してケースを製作する事を想定しており、レジン系のマテリアルでは溶けてくれないのでこのホールサイズでは圧入することが出来ないためM2×5mm(OD3.5mm)のナットを打てるように修正しています。

②キープレートはPCBで製作

販売されているPOMプレート(トッププレート)は3Dプリンタ製のものが同封されているのかな?
自宅の3Dプリンタで製作してもよかったのですが、しっかりとしたPCB製で作ることにしました。

JLCPCB / JLC3DPに発注

GitHubからダウンロードしたメインPCBとPCBデータにしたトッププレートをJLCPCBに発注、また修正したケースデータをJLC3DPに発注しました。
JLC3DPはJLCPCBの関連サービスなので同梱で発注&発送してもらうことが出来ます。

私と同じ構成で製作してみたいという方がいらしたら以下から発注したデータをダウンロード出来るので使って下さい。

基板はJLCPCBのサイトに基板データ(ガーバーファイル)をアップロードし発注項目を選択してカートに入れます。

発注時の選択項目に関しては特に特記すべきことはありません。
デフォルトで選択されている項目を選んでおけば問題ありませんが、[PCB上のマーク]は[マーク除去]を選択しておくと余計なシルクプリントがされなくていいと思います。(無料です)
[PCBカラー]はお好みで選択して下さい。

JLCPCBの基板発注方法に関してはこちらの記事で詳しくまとめているので合わせて見て頂ければと思います。

【電子工作】はじめての基板製作!JLCPCBさんに基板を発注してみました。ユーザー登録・データ納品・基板到着までの一連の流れをご紹介!

ケースはJLC3DPのサイトに同様にSTLデータをアップロードしてマテリアル(材料)を選択するだけです。

今回マテリアルに[SLA(Resin)]の[LEDO6060]を選択、スプレー塗装オプションを付けて塗装してもらいました。

JLC3DPのスプレー塗装サービスは2025年1月現在、15色のカラー(マット or 光沢)全30パターンから選ぶことが出来ます。
標準料金にプラス数ドル程度で綺麗な塗装をしてもらえるのでオススメです。

ちなみに今回製作したトップケースは[マットシルバー]を選択。

ボトムケースに[マットブラック]という組み合わせで発注しました。

非常に綺麗な塗装です!
JLC3DPでは他社の同様なサービスを利用するより格段にお安く製作することが出来ます。

基板および3Dプリントパーツをそれぞれカートに入れ、同梱で発注すれば送料は1回分で済みます。

JLC3DPのスプレー塗装サービスの利用方法に関してはこちらの記事を参考にして頂ければと思います。

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

基板のパーツ実装

発注から12日ほどで基板&ケースが手元に届きました。(配送方法はOCSを選択しました)

それでは組み立てていきます。(必要なパーツは後述します)

基板をカットする

今回右側のテンキー部分は使わない構成で組むので、基板のミシン目部分でカットして切り離します。
定規等を当てて折り曲げると簡単に切り離すことが出来ます。

カット部分にはバリが出ますがケースとは干渉しないのでこのままでも問題ないのですが・・・
FR-4(基板の材質です)はヤスリ等を使って簡単に削ることが出来るので、綺麗にしておきましょうかね!
このようなダイヤモンド棒ヤスリがあると便利です。

ダイオードの取り付け

次にダイオードの取り付けです。
ダイオードは1N4148のスルーホールタイプまたは表面実装タイプ(SOT-123)が使えるハイブリットなフットプリントとなっています。

今回は手はんだでも簡単なスルーホールタイプのダイオードを使いました。
標準レイアウトでは31キー構成となるので31本のダイオードが必要となります。

スルーホールパーツのリード線の折り曲げにはリードベンダーがあると便利です。
綺麗に折り曲げることが出来るので、基板に配置した時に左右均等なスペースを取れ綺麗に実装できます。

この後トッププレートにキースイッチを取り付けてはんだ付けするのですが、スイッチを固定してしまうともう修正が出来なくなってしまいます。
はんだ付けは簡単ですがくれぐれもダイオードの向き(極性)は注意して取り付けて下さい!

MEMO
下写真の向きでダイオードのアノード(A)は上側、カソード(K)は下側になるような向きで取り付けて下さい!

ロータリーエンコーダーの取り付け

右上にロータリーエンコーダーを取り付けます。
エンコーダーではなくキースイッチにすることも可能ですが、その場合はケース形状が変わってくるので注意して下さい!(別のケースデータを使用)

14mm高のエンコーダーを使いました。

Pro Microの取り付け

Pro Microは逆付けで取り付けます。
Type-C端子の高さは約3.5mmあるのでピンヘッダーで直接取り付ける場合は1mmほど基板から浮いてしまいうので(ハウジング部分が2.5mmなので)、うまく真っ直ぐになるように取り付けて下さい。

今回は3.5mm高のコンスルーを使いました。
Pro Microを取り外すことはないと思いますが、Type-C端子が取れてしまった場合などでボード交換が容易に出来ます。

スタビライザーの取り付け

ISOエンターキー及びスペースバー(2.75U)部分にそれぞれ2Uのスタビライザーが必要となります。

MEMO
スタビライザーは無くてもいいのですが、後から取り付けることが出来ないので必要な場合はこの時点で取り付けを行って下さい!

スイッチの動作テスト

先述のようにダイオードの向きの間違えやはんだ不良などがあると後からバラしてはんだ付けをやり直すというのが大変となるので、この時点でファームウェアを書き込んでスイッチテストをしておいた方がいいかもしれません。

ファームウェアはviaおよびvial対応のものが公開されています。(ファームウェアの書き込み手順は後述を参考)
QMKToolbox等を使ってファームウェアを書き込みスイッチ入力テストを行い、問題がなければ次のスイッチの取り付けに進みます。

キースイッチの取り付け

キープレートにスイッチをはめ込みメイン基板と位置を合わせて差し込み、はんだ付けします。

OLEDの取り付け

最後にOLEDを取り付けて完成です。
販売されているキットではOLEDモジュールのディスプレイ部分を浮かせてケースとの高さを合わすように組まれているようです。

OLEDモジュールのディスプレイ部分を引き離すのは結構大変で(上手くやらないとディスプレイが割れます!)、CAD上でケース底面と合うピンヘッダーの組み合わせを試しました。

結果としてはOLEDモジュールに通常サイズのピンヘッダーを取り付けてハウジング(樹脂部分)をもう1段追加し、基板側の受けとなるピンソケットはロープロタイプのものを使うとケース底面とピッタリ密着する高さにすることが出来ます。

MEMO
上部ディスプレイ面よりもピンヘッダーが高くなるとケースと干渉するので、その場合はニッパー等でディスプレイ面より高い部分をカットして下さい!

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

上記テストの段階でファームウェアの書き込みが完了していない場合は書き込みを行います。
GitHubでviaおよびvial用のファームウェアが配布されているのでダウンロードして書き込みます。
またjsonファイルも配布されているのでREMAPを使うことも出来ます。

普段REMAPを使ってキーマップを変更することが多いので、via用のファームウェアをQMKToolboxを使い書き込みました。

QMKToolboxはMacならQMK.Toolbox.app.zipWindowsならqmk_toolbox.exeをダウンロード&インストールして下さい。

参考 QMK ToolboxGitHub

PCとボードを接続し書き込むファームウェアを選択します。

Pro Microの裏側にリセット用のパッドがあるのでピンセット等を使い短絡させるとPro MicroにリセットがかかりDFUモードに入ります。

書き込み[Flash]ボタンをクリックできる状態になるので、クリックしてファームウェアを書き込みます。

「DISORDER30」というロゴがディスプレイに表示されると成功です。

あとはスイッチテストを行い問題なければ基板は完成です。

ケースの取り付け

GitHubで公開されているケースデータを修正しM2×5mm(OD3.5mm)のインサートナットを打てるようにサイズ調整しています。
基板固定用の6ヶ所およびケース固定用の4ヶ所、計10ヶ所にインサートナットを封入します。

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

ナットを熱圧入する際にコテとケースの壁との距離が近いため注意して下さい!

今回JLC3DPで製作したケースではレジンを使っているのでコテが当たっても溶けることはないので安心なんですが、フィラメントを使った3Dプリントケースだとコテが接触すると簡単に溶けてしまうのでカプトンテープなどを使い保護しておくといいかもしれません。

綺麗に封入することが出来ました。
完璧です!

基板の固定はM2×4~6mmケースの固定はM2×5mmビスを使います。

底面の滑り止め用ラバー取り付け部分の切り込みは直径9mmとなっています。

こちらのクッションゴムを使いました。

完成です!
JLC3DPのスプレー塗装は安価の割にかなり綺麗な仕上がりになるので、完成のクオリティーはなかなかなものですね!

使用パーツ一覧

今回私が組んだ構成でのパーツリストです。
基板をカットせずテンキー部分が付いた構成のものを作る場合は数が変わってくるので、本家サイトで確認して下さい!

ダイオード(1N4148) ※スルーホール or SOT-123

ダイオードはスルーホールタイプまたは表面実装タイプ(SOT-123)のものを31本使います。

Pro Micro

Pro MicroはSparkFun製のボードがオリジナル(本家)となりますが、今どきmicroUSB端子を使う方はいないと思います。
Type-C端子になっている互換Pro Microを使われると思いますが、互換ボードは多数販売されているのでType-C to Type-Cケーブルでも使えるようにプルダウン抵抗が入ったボードを選択しておくのがいいと思います。

下記AliExpressのリンクにあるショップのPro Microは自作キーボード用にこれまで何度か購入し利用していますが、紫ボードはプルダウン抵抗が入って比較的安価なのでオススメです!

またPro Microを取り外し出来るようにしたい場合は、3.5mm高のコンスルーが必要になります。

ロータリーエンコーダー

ロータリーエンコーダーはスイッチ付きのEC12(またはEC11)を使います。
取り付けるツマミ(ノブ)のサイズにもよりますが、高さ15mm前後のものが最適だと思います。(14mmのものを使用しました)

SSD1306 OLED(128×32 0.91インチ)

I2CタイプのSSD1306 OLEDディスプレイ(0.91インチ)を使用します。

上記実装ではロープロタイプのピンソケットも使いました。

ビス&インサートナット

インサートナットはM2×5mm(OD3.5mm)のものを10本使用します。
またビスはケース固定用にM2×5mmを4本PCB固定用にM2×4~6mmを6本使用します。

その他

MXキースイッチ×31、キーキャップ、エンコーダー用ノブはお好みで用意して下さい。
また必要なら2Uスタビライザーを2本用意して下さい。

ちなみにエンコーダー用のノブは直径20mm以下のもの選択して下さい。(ケースのホールサイズは20mmとなっています)

ディスプレイの表示をカスタム

本家ファームウェアのディスプレイ表示はロゴが表示されるようになっています。

ファームウェア作成の練習としてvia/REMAP用のファームウェアを一から作ってみました。
ディスプレイに現在のレイヤーを表示出来るようにしてみたのですが、0.91インチと小さいディスプレイなのでこのような表示方法は分かりやすくていいですね!

最後に!

キー数的にキーボードというよりはマクロパッドに近い構成となり使用用途は限定されそうですが、私のようにCADのショートカットを割り当てたマクロパッドとして使ったりと、使用用途に合致すればコンパクトなキーボードとして使いやすいと思います。
ゲーム用のキーボードとしても良さそうですね!

今回製作したDisorder30ではビス1本に至るまで全てCAD上で一度組んでみて個人的に気になった部分を修正して作ってみたのですが、CAD設計において学ぶことが非常に多かった気がします。
製作者様に感謝です!

オープンソースで公開されているキーボードで他にもいくつか気になっているものがあります。
他の方が設計されたものを作ってみるのは自分の設計にも活かせるので、今年は定期的に作ってみようかと考えています。

楽しいですね、自作キーボードの世界って・・・!

コメントを残す