モトグッチのバイクの日記

モトグッチでサーキットを走る日記

自作キーボード(その11)完成

自作無線分割キーボードが完成しました。

f:id:ugkintoki:20251117230859j:image

 

初めてのPCB基盤設計から試作機の作成、

キーキャップやケースの3D CADでの設計からプログラムまで、

一通り作ってみました。

 

半田付けも多少手際よくできるようになりました。

 

IKEA効果(自分で作ったものに愛着が湧く効果)も相まって、

満足感があります。

艶のあるスプレー仕上げのキーキャップが綺麗です。

f:id:ugkintoki:20251117230916j:image

 

ケースも同様の仕様にしたところ、

届いたものを確認すると、下側は良かったのですが、上側はかなり反っていました。

スプレーペイントが表面(上面)だけの為、乾燥の際に反ってしまったようです。

f:id:ugkintoki:20251117234701j:image

 

60℃のお湯で熱して形を戻しました。

f:id:ugkintoki:20251117234714j:image

 

ケースとキーキャップはレジンのスプレーペイントの仕上げで、

Blush NanoとBrown Nanoのキースイッチでの打鍵音を確認されたい方は、

Youtubeの動画をどうぞ。


www.youtube.com

 

※これはMacにペアリングしたキーボードとマウスをiPadに共有しています。

キーボードはBluetooth接続なので直接iPadにも接続できます。

 

自作キーボード(その10)キーキャップ色々

前回でキーボードのケースを作ったので、今度はキーキャップを作りました。

f:id:ugkintoki:20251029234512j:image

 

これまでいくつかキーキャップを使ってきて、

どれもロープロファイルのものを選んできました。

 

最初のCorne Cheryでは、MXのロープロファイルのキーキャップを使いました。

f:id:ugkintoki:20251030002354j:image

これは質感も打鍵感も良かったので、これが一つの指標になりました。

 

次に自作キーボードの有線分割試作機では、17mmピッチに合うJunana MXを使用してみました

f:id:ugkintoki:20251029234812j:image

形状が独特で指にフィットする感じで良かったです。

ただ、17mmピッチ用で、17.78mmピッチにすると隙間が大きくなり、

親指部分は前後が持ち上がっている形状がしっくりこないところがありました。

(Junana MXは凸形もあるので、親指には凸型がいいかもしれません)

 

 

そして17mmピッチ用の自作の試作キーキャップ

tinkercadで作ったので、デザイン自体も荒くプリミティブな感じのキーキャップで、

レジンのサンディング仕上げで、ホームポジションの突起を削られてしまい、

指を当てる部分は凹ませ方が足りず、ほぼ平になってしまい、

10個のキーキャップを連結してJLC3DPに発注したのですが、自分でニッパーで切り離す際に連結部分のサイドにバリが残ってしまい、見た目もよろしくない感じで、

支柱部分の十字は仕様通りの1.17mmにしたものの、ちょっと噛み合いが緩い感じになってしまって、

色々課題の残るものでした。

 

 

次は自作の無線分割17.78mmピッチキーボードに最適化し、freecadで作り直して細部に拘って作り込みました。

連結部分も裏側で繋ぐようにしました。

支柱はちょっとキツくなっても良いかと1.1mmで作り、

素材はレジンでもスプレーペイント仕上げで(少し)コストをかけて発注しました。

ホームポジションは別ファイルに1個でスカイブルーのペイント指定で作り、メモにホームポジションの突起があるけど意図したものだから削らないでね、と添えました。

※発注してから、片手分の合計20個しか発注してないことに気付きましたが、まぁ仕上がりのチェックもしないとだから、とりあえず片手分で良いか、とキャンセルせずに到着を待つことにしました。

 

 

自作キーキャップができる前に、keychronのK3&K7のキーキャップが使えそうと分かったので、使ってみました。

f:id:ugkintoki:20251029235250j:image

 

これは市販されているキーボードのキーキャップなので、

表面の質感、触り心地、タイピングの安定感、どれも素晴らしく、

Sale中のため14.99$で買えたのはラッキーでした。

(商品と同じくらいの送料がかかりましたが・・送料高いだけあってすぐ届きました)

Keychron K7 Keycap Setwww.keychron.com

※日本語のサイトでは売り切れで、本国の方でもk3は売り切れ、k7のみsaleでした。

 

自作キーキャップを発注したものの、

keychronのキーキャップには、色がグレーという点以外はかなり満足していたので、自作キーキャップがこれを超えられそうにない気がしていました。

試作キーキャップの仕上がりの荒さから、レジンの3DPでは難しいかな、と思っていたのでした。

 

ところが、届いた自作キーキャップの仕上がりは素晴らしいものでした。

ツルツルに仕上がった表面は美しく、ホームポジションの突起もしっかり期待通りで、

打鍵感も含め、満足度はkeychronのキーキャップを上回るものになりました。

支柱はかなりキツくなってしまったので、あまり抜き差しはしない方が良さそうですが、

その分ブレがなくかっちりしているので打鍵感が良いです。

 

キーキャップのスプレーペイント仕上げが良かったので、

同様の仕上げで、残りのキーキャップとキーボードケースも発注しました。

 

これでハードは設計完了です。

f:id:ugkintoki:20251029235900j:image

※写真は一部keychronのキーキャップ、これはこれで面白い

 

ソフトは自前のソースを自動再接続やマルチデバイスに対応したり省エネ対応するのが難しそうなので、RMKというESP32C6に対応したファームウェアや、マイコンを変更してZMKという選択肢もありかなぁとゆっくり妄想中です🤔

 

自作キーボード(その9)自作無線分割キーボード、一旦完成

発注していたケースが届いたので、キーボードを組み立てました。

f:id:ugkintoki:20250926002406j:image

 

電源スイッチの位置の計測を間違ってしまったようで、

若干ケースの内側を削って、スイッチ部分を確保しましたが、

他はOKでした。

f:id:ugkintoki:20250926003026j:image

 

底面にGRIPLUSを全面に貼って、小型軽量のキーボードの安定性と音質向上を図りました。

f:id:ugkintoki:20250926002502j:image

 

そうして数日運用してみると、blush nanoのキータッチがやや物足りないような気もしてきました。

スコスコっという感じの静電容量無接点方式に似た感覚があり、静かで良いのですが。

 

そこで、タクタイルのbrown nanoメインに切り替えてみると、タイプ音が大きくなりますが、タイピングしている感覚が分かり易い気がしました。

f:id:ugkintoki:20250926002533j:image

 

また、キーは自作の試作キーキャップからJunana MXに変更してみたところ、タクタイルのコトコト感がよりしっかりして心地よいです。

f:id:ugkintoki:20250926002551j:image

 

USBソケット部分は、ケーブルはマグネット式のものを付けても出っ張らないように、かなり引っ込めて作ってみました。

f:id:ugkintoki:20250926002604j:image

f:id:ugkintoki:20250926002620j:image

 

これでしばらく運用してみようと思います。

自作キーボード(その8)無線分割キーボードの設計 XIAO ESP32C6

先日方式を検討したので、設計を進めていきます。

 

以下の順序で進めていきました。

  1. ブレッドボードでマイコンを変更して検証
  2. EasyEDAでの基盤の設計
  3. JLCPCBへの基盤の発注
  4. Shapr3Dでのケースの下書き
  5. freecadでのケースの詳細設計
  6. JLC3DPへのケースの発注

 

試作基盤に繋いだブレッドボードのマイコンを、

ESP WROOM 32(E)からXIAO ESP32C6に変更し、

プログラムを書き込んでみると、Bluetoothのエラーになって動きませんでした。

 

BleKeyboardをESP WROOM 32で利用する際にもそのままでは動かず、部分的に修正していたのですが、NimBLEで作り直して一先ず動作するようにしました。

 

ESP nowが欠落して右側の入力が不安定だったため、リトライの回数と間隔も調整しました。

 

動作確認用の最低限のところまで作成して一応検証は済みとして、装飾キー系は後回しにします。

 

次は基盤の設計です。

試作機からキーピッチやレイアウトを調整して、Gateron LowProfile3.0用に設計し、基盤を発注。

 

ケースはShapr3Dでイメージを固めて、freecadでケースの詳細を作成。

freecadは直感的ではないので、最初は苦労しました。複雑になってくるとアプリが落ちることもあり、イメージしたものを形にしていくのは難しかったですが、やり方を覚えていって、意図通りに作成していけるようになりました。

発注したケースはレビューも一発で通りました。

 

キーキャップは、今のレジンの試作品はホームポジションも削られているので、

設計をブラッシュアップして、素材をナイロンにして作ろうかと思います。

 

 

届いた基盤に半田付けして実装します。

試作機で半田にもなれたので、今回は半田も全て上手くいきました。

f:id:ugkintoki:20250918225509j:image
f:id:ugkintoki:20250918225513j:image
f:id:ugkintoki:20250918225516j:image

 

後はケースが届いたらケースに収めて、底面に滑り止めを付けて、プログラムを仕上げれば完成です。

 

GNSS Circuit Logger BLE-LNS GPSロガーデバイスの作成v1.0

先日発注したロガーデバイスのケースが届いたので、組み立ててみました。

 

f:id:ugkintoki:20250825212552j:image

これを半田付けしていきます。

 

一通りできたところで動作確認していきます。

室内から動作確認するとなかなかGPSを拾わなくて、ちゃんとできているのかどうか解りにくいです。

配線ミスが一箇所あったのを修正して、動作確認OK。

f:id:ugkintoki:20250825212657j:image

 

今回買ったGPSモジュールにはM8Lが載っていて、M8Nの上位互換なのですが、モジュールにパッドが増えていて、それの影響かGPS取得が安定しなかったので、一旦バラしてM8Nのモジュールのものに載せ替えました。

f:id:ugkintoki:20250825212715j:image

 

前回作ったものと比較すると、PCBに穴を開けてアンテナを埋め込んだのと、OLEDのピンソケットを無くして基盤直付けにしたので、ユニバーサル基盤のプロトタイプのものよりも3mmほど薄くできました。

f:id:ugkintoki:20250825213231j:image

 

作成してみて、更なる改善点も見えてきました。

XIAO ESP32C3の背面の配線の半田付けが面倒なのと、もう少し薄くできそうなので、XIAO ESP32C3は基盤に直付けしようかなと思います。

 

ケースの設計もディテールを整えたいです。

これまではtinkercadで作っていたのですが、freecadで細かいところを作って行こうかなと思います。

 

Shapr3Dは操作感が直感的でとても良いのですが、プロ版は月間5,500円か年間42,800円とちょっと高い(といっても3D CADの中では安い方なのですが)ので事業としてちゃんとやらないと辛い感じです。

 

ツールとしてはFusionが最強と思いますが、フリーでは商用に使えないので、他の選択肢を探している感じです。

 

Shapr3Dのフリー版だと、STLを出力できる点はありがたいのですが、解像度の荒いものしか出力できず、プロ版でないと高解像度のSTLや、その他のSTEP出力などができないので、フリー版であくまでイメージを膨らませる用途に使おうと思います。

 

 

今回は PCBでの実装で、プロトタイプからの改良が出来たので良かったです。

自作キーボード(その7)3D CADツールを色々試してみた

GNSSバイスのケースや、キーキャップの作成には、

これまでtinkercadを使っていましたが、

細かいところを作り込んでいくのに、tinkercadだとちょっと難しくなってきました。

tinkercadはブラウザで使えるので気軽で良いのですが、一回セッションが切れてデータがちょっと前のセーブされていた時のものに戻ってしまったこともあり、普通にローカルにインストールして使うツールでも良いかなぁと思ってきました。

(上記キャプチャはFreecadで作ったモデルを読み込んだものです)

 

そこで、色々3D CADツールを探して使ってみました。

 

先ずblender

これは超多機能で3D CGアニメーションもできるようなツールなので、テクスチャやライティングにカメラワークなど、テンション上がる機能満載なのですが、3Dプリンター用のデータモデリングとしては、ちょっと細かい作業は大変そうでした。

(上記キャプチャはFreecadで作ったモデルを読み込んだものです)

 

 

次はFree CAD。

こちらもフリーでありながら精密なモデリングが可能で、平面に設計図を書いていく感じは、3Dプリンター用の寸法を厳密に指定したモデリングに適しています。

ただ、いかんせん直感的な操作とはいかないので、最初のハードルが高いです。

慣れてくれば良さそうですが、拘束とかも最初は苦しめられます。

 

アプリを快適に使うために、スペースマウスとか、3D CAD用の高機能マウスとかのデバイスも検討し始めていたのですが、

 

ふと、iPadのペンシルを使ってできると良さそうだと思い、

Shapr3Dを試しました。

使ってみると、最初のチュートリアルに動画説明もあってとても分かり易く、操作性もすごく良いです。

画面で直接ペンを動かすので、脳の色々な感覚が刺激されてるような気もして、ダイレクト感があって良いです。

無料版でも3Dプリンター用のstlファイルは出力できるので(ただし低解像度のみ)、しばらくこれをメインで使ってみようかと考え中です。

 

 

Free CADは時間はかかるのですが、きっちり形を作れるので、Shapr3Dでざっと作ってみて、Free CADで清書するとかもありかもしれません。

 

tinkercadipadアプリもあるので、こちらも空間操作がタッチパッドで直感的にできて、操作感が良いので、図形を簡単に並べてイメージを膨らますには良さそうです。

 

また、tinkercadやShapr3DのipadアプリはAR機能もあるので、こんなことができてしまうのがすごいですね。

 

自作キーボード(その6)自作無線分割キーボードの検討

キースイッチはGATERON blush nanoの軽さと静かなところが良かったので、

全般的にblush nanoにして、一部brown nanoにしようかなと考えています。

 

17.78mmピッチにして、少しチルトさせて、下の空間に、XIAO ESP32C6をキーソケットに重なる感じに裏面実装にして、 バッテリーも薄型のものを下の空間に入れる形にして、

上から見ると小さくなる感じにしようかな。

 

格子配列で傾斜もなくすと綺麗だけど、何か遊びが欲しいなぁと。

そうすると、カラムスタッガードにしたいし、最下段、親指をどうするかは悩ましい・・

使い勝手的にはチルトは欲しくて、Corneや先日作ったものもゴム足を二段にしたりして若干のチルトは設けています。

なので、チルトさせてそこにマイコンとバッテリーやスイッチを入れるのは理にかなっている。

 

あとはデザインと機能性をどの辺に持っていくか、というのが設計の面白いところ、なんだろうなぁ。

 

とりあえずESP32C6でも使い方次第では運用できそうなので、先ずはあんまりスリープなしで使ってみて、スリープでのプログラム的な省エネ化や、ゆくゆくはMG24とかで超省エネ化&ドングルを使った超低遅延の独自無線化も狙ってみたいなぁ。

 

 

また、今の無線分割キーボードを運用していて、気になった点が出てきたので、プログラムでそこを解消しました。

 

まず、ブレッドボードからの配線の接触不良の関係でキーのダブりが生じていただけで、デバウンスディレイは1msまで短くしても問題なかったので修正したのと、

キーを押してからレイヤーを切り替えてキーを離すと、最初のキーを押したレイヤーのキーと、切り替えた後のレイヤーのキーの2つがタイプされてしまう不具合があったので、これをキーを押下した際のレイヤーのキーとして適切に処理するように修正しました。

 

この修正だけで、気になっていた部分が解消されて、ストレスなく早くタイピングできるようになりました。

 

遅延は若干はあるものの、上記修正後は気にならないレベルでは使えています。

 

キーマップの変更はArduino IDEでソースを書き換えてコンパイル&書き込みですが、QMKではブラウザでマッピングを書き換えてベイクして、ダウンロードして、QMK toolkitで書き込む形だったので、むしろ手間が減って楽かもしれません。

 

ただ、修正したプログラムを書き込む際に、ボードの指定を間違ってESP32-WROOM-DA Moduleを指定してしまった際に、青色LEDが高速点滅しっぱなしになって焦りました。

原因を確認するために、色々ソースを修正して調べたものの解消せず、もしかして、とESP32 Dev Moduleに切り替えたら青色LEDが消灯のままになりました。

 

あとは、良く使う画面キャプチャとかのショートカットのマクロをレイヤー2の余ったキーに割り当てて、使い勝手を良くしました。

 

 
f:id:ugkintoki:20250819002522j:image
先日JLC3DPに発注したキーキャップも届いたので、付けてみました。
 
ホームポジション用に突起を2つのキーに付けていたのですが、バラされて丁寧に全部削られてしまってました😭
f:id:ugkintoki:20250819002533j:image
 
サンディングもONにして、メモも何も書かなかったので、バリを取ってる際に、バリと間違われたのでしょう。
 
次回は対策を考えないと。
 
キーキャップ自体の大きさや形、ステムのサイズなどはOKでした。指の腹部分はもう少し凹ませても良いかな。
 
見た目はそんなに変わりませんが、手が触れる部分なので、細かい違いが操作感に大きく作用します。
 
この辺も凝り出すとキリがありませんね💦