普段趣味でやっている電子工作の延長として自作キーボードの世界にも興味を持ち、昨年後半くらいから自分で設計した自作キーボードやマクロパッドを製作するようになりました。
自作キーボードの製作はいろんな楽しみ方があるかと思います。
自分の環境で使いやすい構成やサイズ感のものなど自分で設計して作ってみたい・・・、これも自作キーボード製作の楽しみ方の一つだと思います。

昨年、全く知識が無い状態からいきなり設計し自分好みのものを製作するようになったのですが・・・
自作キーボードはオープンソースで公開されているものもたくさんあるようですね!
昨年末に『Disorder30』というオープンソースのキーボードを組んでみたのですが、これがかなり気に入ってしまい・・・

今年は設計データが公開されているもので自分好みのものがあれば積極的に製作し、自分に足りない知識などを補っていこうかとも考えています。
ということで今回はオープンソースで公開されている自作キーボード『鶴の恩返し(Tsuru No Ongaeshi)STM』を製作した話となります。
オープンソースの自作キーボード『鶴の恩返し(Tsuru No Ongaeshi)STM』の製作
オープンソースで公開されている『鶴の恩返し(Tsuru No Ongaeshi)STM』はcalvin-mcdさん設計のキーボードです。
30%サイズのキーボードになるのかな?
可愛いサイズ感のキーボードですね!(画像引用: Printables)
このキー数のキーボードを使いこなす自信は現時点では全くありませんが、いろんなタイプのキーボードに触れてみたいというちょっとした興味本位から製作してみることにしました。
この『鶴の恩返し(Tsuru No Ongaeshi)STM』(以後tsuru-STMとします)は、MCU(マイコンチップ)にCH552T(またはSAMD21)が使われたオリジナルのtsuruからSTM32に変更されたバージョンになるようです。
CH55xはデフォルトでQMKには対応していませんが(一応動かせます)、tsuru-STMではMCUがSTM32に変更されたことによりQMK/vialに対応しています。
CADで組んでみる!
自作キーボード歴半年ほどの初心者なので公開されているデータをそのまま発注するのでは全くイメージ出来ないのと、またどのような設計をされているのかも理解したかったのでPCB・ケースを含め全て一旦CADで組んでみました。
メインPCBはシンプルな設計になってます。
また面白い?ダイオードが使われています。
キーボードの基板はキーマトリクスで結構多くのダイオードが使われるため構成や場合によっては実装面積が逼迫することがありますが、ツインダイオードっていうのかな?が使われ実装面積を確保することが出来そうで、今後自分で設計するものにも使えそうです!
ダイオードが2つパッケージされたこのチップ、いいなぁ…と見てたらいっぱい持ってた。
自作キーボードで使うとパーツ数減らして実装スペース確保出来るから良さそうね📝 pic.twitter.com/1y9PhyS3pb
— ガジェット大好き!! (@smartphone_jp1) January 11, 2025
キープレートのスイッチ取り付け部分はメッキを露出させる設計になっています。
自作キーボードではこのような設計になっているものをよく見かけることがあり以前試したことがあるのですが、設計方法によっては追加料金がかかってしまう場合があります。
どうやって作っているのか前々から興味あったのですが、tsuru-STMのキープレートPCBではKiCadで非導体ゾーンを作りマスクを切るという方法が使われているようです。
やり方はいろいろとあると思いますが、一つの方法として参考になり追加料金もかからず製造出来ました。
非導体ゾーンにマスク切るって方法でもいけるのか!
今度キーボードのトッププレート作る時に試してみよう📝 https://t.co/VoxKyCgxkt pic.twitter.com/OIXTODWqMO
— ガジェット大好き!! (@smartphone_jp1) December 29, 2024
メインPCBとスイッチプレートの2枚の基板構成で、これをケースに固定する形状になっています。(トレー式って言うのかな?)
PCBを固定するケース側のビス穴は1.7mmで設計されています。(『Tsuru Travel Keyboard Case』を使用しました)
通常のM2ビスまたはタッピングビスを使って固定するのだと思います。
キースイッチやキーキャップの交換時に負担がかかる部分なので、インサートナットで受けれるようにデータを修正したものを発注しました。(後述します)
キーレイアウトの変更も出来るのでどのレイアウトで使うか迷います。
ISOエンターキーと3Uスペースバーを入れるのが見た目カッコ良さそうなんですが・・・
キーを割り当てたイメージをしてみると、こちらのレイアウトの方が自分には使いやすいかな?
とりあえずこのレイアウトで組んでみることにしました。
でも、そもそもこのキー数のキーボード使いこなせるのか?
GitHubからデータをダウンロード
tsuru-STMのデータは、以下GitHubページからKiCadの設計データや基板データ(ガーバーファイル)、vialファームウェアなどをダウンロードすることが出来ます。
基板を発注し自身でパーツを入手して実装したり、またBOM(部品表データ)やCPL(部品配置リスト)もダウンロードデータに含まれているので、パーツ実装サービス(PCBA)を利用することも出来ます。
参考 calvin-mcd / tsuru-STMGitHubケースデータは『Tsuru Travel Keyboard Case』を使用
ケースデータは、以下オリジナルのtsuruからダウンロード出来ますが・・・
参考 kilipan / tsuruGitHub今回こちらの『Tsuru Travel Keyboard Case』に少し手を加えたものを使いました。
カラビナベルトを付けるフックが付いていてカッコいいです!
基板の発注(基板のみ)
メイン基板
基板の発注はJLCPCBを使いました。
キーボードの基板はサイズがそこそこ大くなりますが、他社と比べて圧倒的にお安く製作することが出来ます。
そして自作キーボードの基板発注はPCBAを利用される方が多いのかな?
tsuru-STMでは一般的によく使われるパーツ構成となっており特殊なものはなく手元にあるパーツばかりだったので、私は基板のみ発注しパーツの実装は自分で行いました。
電子工作的には自分で実装する方が面白く、普段製作している自作基板と比べるとパーツ実装の難易度はそれほど高くないのでかなりお安く製作することが出来ました。
それでは基板の発注を見ていきます。
PCBAを利用される方はこの項目は飛ばして下さい!
ダウンロードした基板データ(ガーバーファイル)をJLCPCBのサイトにドラッグ&ドロップしてアップロードします。
発注項目の選択は特記すべきところはありませんが、[PCB上のマーク]の[マーク除去]は無料で出来るオプションとなり、余計なシルクプリントがされないため選択しておいた方がいいでしょう。
PCBカラーはお好みで!
またtsuru-STMのメインPCBはハンドソルダーパッド(HandSolder)という、手はんだでの実装もやりやすいように通常より少し大きなパッドが使われています。
そのためはんだ作業に慣れた方なら手はんだでの実装も十分可能だと思います。
実装方法にもよりますが、リフローで実装出来る環境があるならステンシルも発注しておいた方が実装は楽に出来ます。
私は基板とステンシルを発注し、パーツの入手&実装は自分で行いました。
基板のみの発注だとメイン基板は8.5ドルとなります。
JLCPCBの基本的な基板発注方法はこちらの記事で詳しくまとめているので、あわせて見て頂ければと思います。

ステンシル
ステンシルも発注する場合は[PCBと一緒に発注する]にチェックを入れます。
JLCPCBではステンシルを発注する際にサイズを指定しないとかなり大きなサイズで届いてしまいます。
tsuru-STMのメイン基板のサイズは約207mm×57mmとなっています。
250mm×100mmにサイズ指定して発注しました。(サイズ指定は無料です)
実装面は裏面(底)になるので指定を間違わないように!
ステンシル料金7ドルがプラスされ、メイン基板は15.5ドルとなります。
JLCPCBのステンシル発注方法はこちらの記事でまとめているので、あわせて見て頂ければと思います。

スイッチプレート
次にスイッチプレートです。
同様にガーバーファイルをサイトにアップロードします。
発注項目の選択は上記と同じです。(ステンシルは必要ありません)
料金は8.6ドルとなり、上記メイン基板と配送料金11.92ドル(OCS EXpressを選択しました)を合わせたトータル価格は約36ドルとなります。
あとこれはオプション料金がかかってしまいますが、表面処理にENIG(金メッキ加工)を選択すると通常のHASLよりもパッド表面が平らで見た目も綺麗な基板に仕上がります。
ENIGは時間経過とともにパッド部分の酸化や腐食等から保護するために金メッキの処理をするのですが、自作キーボードの基板は基本的に届いてすぐにパーツを実装してしまうので特に選択する必要はありませんが・・・
ただtsuru-STMのプレートは、スイッチ部分周辺のメッキを露出させた設計になっています。
自作キーボードではよく見かける設計方法ですね!
HASLではシルバーになりますが、ENIGでは見た目がゴールドになりカッコいいかな・・・と個人的には思います。
私はメイン基板・スイッチプレートともにENIGを選択して製作しました。
基板の発注(PCBAを利用する場合)
ハンドソルダーパッドが使われているので慣れていれば手はんだでの実装も十分可能だと思いますが、STM32やLDOなどピッチが狭い小さなICチップがいくつかあるので、リフローによる実装環境が無い方やはんだ作業に不慣れな方は料金は高くなりますがパーツ実装サービス(PCBA)を利用することも出来ます。
メイン基板のPCBAを見ておきます。
JLCPCBのPCBAの利用には[エコノミック]と[標準]があり、[エコノミック]では対応出来ないオプション(ENIG利用など)や実装出来ないパーツがあると[標準]扱いとなり料金はかなりお高くなってしまうので、こちらではエコノミックで発注出来る範囲でメイン基板の発注を見ていきます。
上記と同じ方法でガーバーファイルをJLCPCBのサイトにアップロード&発注項目を選択した後、[PCB組み立て]を選択します。
[ボトム面を組み立てる]、[PCBAタイプ]は[エコノミック]を選択し[次へ]進みます。実装面の確認です。
ボトム側で問題ないので次へ進みます。
GitHubからダウンロードしたBOMファイル(部品表データ)とCPLファイル(部品配置リスト)をドラッグ&ドロップしてアップロードし[BOMとCPLを処理する]へ進みます。
LCSCの方でType-C端子が不足しているようです。
その他は部品タイプ[ベーシック]となっているのでエコノミック料金で発注出来そうです。(Extendedと表示されるものは標準扱いとなります)
不足パーツがある場合このように警告されますが、[配置しない]を選択して次へ進みます。
次にパーツの配置に問題ないか確認します。
パーツが反転していたり位置が合っていないことがよくありますが・・・
ダイオードやSTM32などの向きが合っていないようですね!
パーツを選択し右クリックで回転させる角度を選択し正しい位置になるように修正しておきます。
修正が完了したら次へ進みます。
実際にレビュー後の価格を確認していますんが、PCBAを利用した際の概算料金は約60ドル程となるようです。
この例ではType-C端子が不足していたのでPCBAから省いています。
そのため自身でパーツを入手し届いた基板に実装させる必要があります!
メイン基板のPCBA料金60ドルとスイッチプレートの料金8.6ドルと合わせると70ドルほど、送料と合わせると約80ドルくらいになると思います。(LEDはオプション扱いなので必要なければカットすればもう少しお安く出来ると思います!)
LEDに接続されている抵抗値に誤りがあるようです!
tsuru-STMでは、必須ではありませんがオプション扱いでアンダーグロー(RGB LED)を取り付けて点灯させることも出来るようになっています。
パーツ実装の際にLEDも取り付けたのですが、点灯しないトラブルがありました。
LEDのデータラインに繋がっている抵抗R3は10kΩとなっています。
この定数ではLEDが点灯してくれないので500Ω前後の抵抗値に変更する必要がありました。
詳しくは後述しますが、LEDを点灯させたい場合でPCBAを利用される場合は提供されているBOMデータの値 R3は10kΩとなっているので470Ωに変更しておいた方がいいと思います。
JLC3DPにスプレー塗装ケースを発注
ケースはJLCPCBの3DプリントサービスとなるJLC3DPに発注しました。
基板のみの発注であれば同梱で発注することが出来るので送料も1回分で済ますことが出来ます。(PCBAを利用する場合は別発注になると思います)
今回JLC3DPのスプレー塗装サービスを利用しました。
通常のマテリアル(材料)料金に数ドルプラスする程度で利用できます。
今回製作したものは、[マット]でカラーは[オレンジイエロー]を指定しました。
製造料金は19.25ドルでした。
ちなみにJLC3DPのスプレー塗装は記事執筆時現在(2025.01)15種のカラーからマット or 光沢の全30パターンから選択することが出来ます。
JLC3DPの基本的な発注方法やスプレー塗装サービスの利用方法はこちらの記事で詳しくまとめているので、あわせて見て頂ければと思います。


スプレー塗装されたケースでは光がほぼ透過しないのでメイン基板にオプションで用意されているアンダーグローを活かしたい場合は、透明レジン[8001レジン]などを選択するのもいいかもしれません!(透明ケースも追加で作ってみようかな?)
パーツの実装
配送方法にOCS Expressを選択し、基板と3DPケースは発注から12日ほどで手元に届きました。
ENIGは非常に綺麗な仕上がりです!
それではパーツの実装です。
PCBAを利用される方はこの項目は飛ばしてください。
リフローによるパーツ実装に慣れている方なら比較的簡単な実装で、チップ抵抗やコンデンサは0805サイズのものが使われているので手はんだでの取り付けも十分可能な基板だと思います。(Type-C端子やSTM32の実装は慣れていないと少し難しいかもしれませんが)
tsuru-STMはPCBAを前提として設計されているからかな?
基板にリファレンスのシルクプリントが入っていないので、自身でパーツを実装する場合間違いやすいので入れておきました。
下記項目のパーツリストを参考に照らし合わせながらパーツを配置していきました。
実装はミニリフロー装置MHP50を使いました。
自作基板の製作でいつも愛用している非常に便利なリフロー装置です。

キーボードの基板は普段電子工作で製作する基板サイズよりかなり大きくなりMHP50のホットプレートサイズ(50mm×50mm)を超えてしまうので、このような治具を使ってリフローしました。
ホットプレートサイズを超える大きな基板にも対応することが出来るので便利です。

表面実装パーツを扱う際(リフローでの実装)に便利なアイテムはこちらの記事でまとめています。
あわせて見て頂ければと思います。

パーツの実装が出来たら、まず電源ラインのチェックです!
普段はテスター等を使い行いますが、最近便利なボードを製作したのでこれを使いました。
USB電源ラインの短絡チェッカーとしても使えるので大変便利です!
はい、電源ラインどっか短絡しております😅
肉眼では分からねので、マイクロスコープくんの登場です…てかこの短絡チェッカーにも使える自作ボード、クソ便利👍 pic.twitter.com/FgfROM6Rl9
— ガジェット大好き!! (@smartphone_jp1) January 20, 2025

どうやらType-C端子のVBUS・GNDラインがブリッジしていたようです。
小さな表面実装パーツを扱う場合やブリッジ箇所の発見などマイクロスコープがあると便利です。
私はAndonstar AD249Sを愛用しています。
コスパのいい便利なデジタルマイクロスコープです。
今まで見えなかったものが見えるぞー🤩
これ面白いね!チップの実装で結構きわどい箇所も見つけた😅 pic.twitter.com/oZFJSs2D2O
— ガジェット大好き!! (@smartphone_jp1) March 23, 2024
ファームウェアの書き込み & 動作テスト
ファームウェアの書き込みです。
GitHubからダウンロードしたファイルにvialに対応したファームウェア(tsuru_stm_vial.bin)があります。
これをSTM32に書き込みます。
CLIコマンドを打ち込み書き込むことも出来ますが、こちらではQMK Tookboxを使いました。
QMK TookboxってATmega◯◯UシリーズのAVRチップへの書き込み専用だと思っていたのですが、STM32にも普通に書き込むことが出来るんですね!
参考 QMK ToolboxダウンロードQMK Toolbox書き込むファームウェア[tsuru_stm_vial.bin]を選択します。
基板の[boot]スイッチを押した状態でUSBケーブルを差し込みPCと接続するとDFUモードで立ち上がります。
[Flash]ボタンが押せる状態になるのでクリックします。
ファームウェアの書き込みに問題がなければ、このように表示されると思います。
ファームウェアの書き込みが完了したらvialを使いスイッチやLEDの点灯テストを行います。
LEDが点灯しない?
LED(アンダーグロー)はオプション扱いとなっています。
LEDを実装し点灯させたい場合は、基板の[rgb]パッドをはんだで短絡します。
そしてvialからLEDのテストをしても全く点灯しないことに気付きました。
tsuru-STMではRGB LEDに6つのSK6812が使われています。
あまり入手製のよいLEDではないので、私は手元にあったWS2812(5050)を使いました。
動作電圧やピンアウト、サイズともに互換性がありファームウェアでもWS2812ドライバが使われていたので問題ないだろうと思っていたのですが、vialから設定しても全く点灯してくれず・・・
回路図を見返してみるとSK6812のデータピン(DIN)に接続された抵抗R3が10kΩとかなり高い値となっていました。
一般的にMUCとLEDデータラインの間には、突入電流を抑制・反射やノイズの軽減等で400Ω前後の抵抗を入れるのですが・・・
WS2812およびSK6812のデータシートで確認したところ、500Ωの抵抗値が推奨されていました。
R3を470Ωの抵抗に付け替えて無事LEDが点灯してくれました。
PCBAを利用される方でLEDも点灯させたい場合は、BOMデータのR3の値を変更しておく方がいいと思います。(SK6812だと点灯するのかな?)
余談ですが、3.3V LDOに接続されたコンデンサC1も1nFと少しおかしな値?のものが使われていました。
これは変更しなくても動くと思いますが、1μFに変更しておきました。
『Tsuru Travel Keyboard Case』ケースの修正
今回JLC3DPで製作したケースはPrintablesに公開されている『Tsuru Travel Keyboard Case』のビス固定部分をインサートナットで受けれるようにデータ修正したものを使いました。
修正データはこちらからダウンロード出来るようにしておきます。
M2×4mm(OD3.5mm)のインサートナットを4本使います。(基板との固定はM2×4mm or 5mmビス)
JLC3DPのスプレー塗装ではマテリアルがレジンなのでFDMフィラメントのように溶けてくれませんが、はんだゴテの熱で圧入出来るサイズに調整しています。
このようなインサートナット専用のチップ(コテ先)があると便利です。
下記はFX600専用のチップです。
キースイッチを取り付けて完成
メイン基板の動作確認が出来たらキースイッチを取り付けてケースに固定すれば完成です!
スイッチプレートが付いた状態ではUSB端子がケースと干渉し入れにくいのですが、斜めにしてなんとか入りました。
ケースカラーに合わせてUSB端子の色を変え可愛く仕上げました。
PCBAでは出来ないポイントですね!
完成です!
使用パーツ一覧
今回使用したパーツの一覧です。
PCBAを利用する場合でも発注のタイミングによりLCSCのパーツが不足していて、そのパーツだけ自身で実装する必要が出てくる場合もあるかと思うので参考にして下さい。
パーツ | 定数 | 入手先 |
コンデンサ(0805) | C1 ※1μF C4/C5/C6/C7/C8/C10 100nF C9 10μF | AliExpress |
ダイオード | D1~D15 BAV70(SOT-23) | AliExpress |
LED | D16~D21 SK6812 ※WS2812B(5050)で代用 | AliExpress |
ヒューズ | F2 500mA(1206) | AliExpress |
USB端子 | J1 Type-C端子 | AliExpress / 秋月電子 |
抵抗(0805) | R1/R2 5.1kΩ R3 ※470Ω R4 10kΩ | AliExpress |
タクトスイッチ | SW1 3×4mm(SMD) | AliExpress |
ESD | U1 PRTR5V0U2X(SOT-143) | AliExpress |
LDO | U2 AP2112K-3.3(SOT-23) | AliExpress |
MCU | U3 STM32F072C8T6 | AliExpress |
その他 | ホットスワップソケット×31 ※レイアウトにより異なります | AliExpress / 遊舎工房 |
その他 ケース固定用 ※修正ケース | M2×4mm(OD3.5mm)インサートナット ×4 M2×4mm(or 5mm)ビス ×4 | ーーー |
ISOエンターキーを使う場合と3Uスペースバーを使う場合にそれぞれ2Uスタビライザーが必要となってきます!
スペースバーセンター部分はロータリーエンコーダーに変更することも出来ます。
最後に!
オープンソースで公開されている自作キーボード『鶴の恩返し(Tsuru No Ongaeshi)STM』を製作してみました。
自作キーボードは製作者の方が配布されているキットを購入し製作するのも面白いと思いますが、私の場合電子工作としての楽しみも取り入れたいと思っているので販売されているものよりもどちらかと言うと公開されているデータを使い自分なりに細部を検証、そしてPCBを発注し自分でパーツの実装も行い組み立てるようにしています。
そしてこのキー数のキーボードは初めてなので、少し脳トレ状態になっていますが・・・
まだこのキー数のキーボードを使いこなす自信はありませんが、なかなか楽しい製作でした。
何かの参考になればと思います。
















コメントを残す