Lenovoキーボードをもっと俺好みにしたい2

これまでのあらすじ

市販キーボードをカスタマイズするため、中身を分解、解析しました。

shk-maker.hatenablog.jp

ここからは再構築することを考えます。
先に完成した姿をお見せします。

再構築案

キー配列をカスタマイズ可能にするためProMicroマイコンのチップATmega32U4(以下、単純にマイコン)を搭載した新しい基板を作ります。
キースイッチ板ユニットは、新しい基板に接続してマイコンと直接に通信するようにします。
トラックポイントとマウスボタンキーは、元の基板に接続して、PCとの通信はUSBハブを経由させることにします。
よって新しい基板には、USBハブコントローラ、マイコン、フレキ用コネクタ、などを載せたいと思います。
ついでに、市販キーボードの不満の一つでもあった、CapsLockやFnLockの状態が分かるように、ステータスLEDも追加したいです。

回路設計

USBハブとマイコンを実装するメイン基板とLED用小基板を設計、JLCPCBで発注しました。
回路図や部品リストなどは、後述の別サイトに掲載しています。
ケアレスミス連発して試作基板を作りまくるハメになりました。良い勉強になったと自分に言い聞かせてます。

実装、ハード組立

市販品への現物加工も伴うため、今後はサポートは受けられなくなる覚悟を決めて、作業を進めます。

キーボードのフレームカバーを外して、キースイッチ板ユニット、メイン基板を底カバーから剝がし取ります。

底カバーの無線用バッテリー室と思われる箇所の壁(赤四角)をニッパーなどで切り取り。
メイン基板の図面を等倍に印刷した紙を使って、リセットスイッチ用の穴(赤丸部)もあけます。
作ったメイン基板を実際に置いてみて位置がずれていないか確認(写真上側)

同様に、LED用小基板の図面紙を使って、フレームカバーにもLED表示穴をあけます。
穴があいたままはアレなので透明接着剤で塞ぎます。表からセロテープで蓋をしてから裏面から少しずつ接着剤を充填しました。

取り出したメイン基板にリード線を半田付け。キースイッチ用コネクタの4ヶ所「MR,MM,ML,MO」、USBコネクタ付近の4ヶ所「VC,D-,D+,GND」、合計8本です。
視覚的に分かり易いように色を変えておくと良いと思います。

新しい基板に部品を実装。ICとクリスタルは向きが決まっているので注意、他は極性無いです。
半田付け完了した時点で動作確認。半田パターンの「KV,K+,K-,KG」の4ヶ所にリード線付きUSBコネクタを半田付けしてPCと接続。実装したAtmega32U4のCOMポートが見られることを確認。ArduinoIDEなどからシリアル通信のプログラムを試しに書き込んでも良いです。
確認が終わったら半田を取って、念のためテープで覆って絶縁しておきます。
ブートローダが書き込まれてないAtmega32U4を使ってしまうとUSB経由でプログラム転送できないようです。念のためArduino UNO等と同じ配列のICSP端子も基板上に用意しました(下記リンク参照)

ht-deko.com

LED用小基板にも部品を実装。リード線3本はLED実装と同じ表面に半田付けします。スルーホールから裏面に半田が溢れすぎると上手く組み付けられなくなるかもなので、カプトンテープを貼ってから半田付けしました。
LED基板実装面の裏面に両面テープを貼り、フレームカバーに貼り付けます。カバーの丸いボス形状に基板の円弧形状を当て付けて、フレーム端面に水平になるように位置決め。

新しい基板と元の基板を底カバーに両面テープで貼り付け。
リード線を新しい基板にも半田付けして両者を接続します。底カバーの上で半田付け作業する場合は樹脂製のカバー部品を溶かさないように注意。各接続先は、
・キースイッチ用コネクタ部の4本 => 新しい基板右下側の「MR,MM,ML,MO」
・USBコネクタ付近の4ヶ所 => 新しい基板下側の「MV,M+,M-,MG」
・LED基板 => 新しい基板左上側の「V,L,G」
新しい基板の余った半田パターン「AV,A+,A-,AG」は内蔵USBハブと繋がっています。USBケーブルのリード線を半田付けしておいて、キーボード横などから出しておけば、別途テンキーなども繋げられるハズ。

キースイッチ板ユニットのキー配列用フレキを新しい基板に接続。
トラックポイント用フレキを表裏に気を付けながら元の基板に接続。
キースイッチ板ユニットを元の位置に組付け(貼付け)。
リード線を挟まないようにフレームカバーを元通りに閉じて固定。
これでハードウェアは完成です。

QMK書き込み

専用QMKファームウェアは下記の場所に置きました。
QMK公式さんにマージしてもらっていません、ご容赦ください。
基板の図面、回路図、部品リストも、同じ場所に入れています。

github.com

私の環境ではUSBコネクタ(基板上のUSBハブ経由)でも書き込みできましたが、問題あるようであれば「KV,K+,K-,KG」の半田パターンを使ってUSBケーブルから接続するとUSBハブを経由せずAtmega32U4に直接アクセス可能。
念のため初回はカバーを閉じる前に書き込み確認しておいた方が良いと思います。経験上、大抵はUSBコネクタ部品の半田不良な事が多いので、問題あった場合は各実装部品の半田付け状態を確認。
基板への書き込み方は、下記のリンクを参考にしました。

www.kanepee.jp

本当はREMAPに対応させたかったのですが、LED点灯などレイヤー切替制御が難しそう(対応不可?)なので断念しました。

キーカスタマイズ

いよいよ、お楽しみ(?)の時間です。
上記GitHub上に、デフォルトとカスタム例のキーマップを入れています。
デフォルトは元のキーマップを殆ど再現したもの。
カスタム例は、CtrlとFnキーの入れ替え、FnとF数字キーで出せるショートカット機能も少し変更しました。

発注した基板は数枚余っています。
もっとスマートなやり方があるかも知れませんが同じ方法で実現したい方、基板が欲しい方がいれば領布します。
構想から約2年以上経ってしまいました。商品自体も発売から10年のロングセラーらしいです。商品の中身が記事の内容から変わってしまっている可能性もあります。ご了承ください。
また、書いた内容で間違い等あればコッソリ指摘いただけると助かります。