この記事はあくあたん工房2023アドベントカレンダーの22日目です.
どうもomzn教授(キーボード改造学)です.
まもなくクリスマスですよ.クリスマスプレゼントに自作キーボードなんか贈ったらダメですよ.
この記事は,1週間前からの続きです.
令和版NeXTキーボード V2
実は無改造のNeXTキーボードも1台所有しているのですが,こちらはジャンク品で通電しても動かなかったものです.
こいつも改造してしまうことにしましょう.
ちなみに2023年12月時点でNeXTキーボードのeBay価格はご覧の通りです.
もったいなくてハラハラしますね…
さて,今回は以下の3点を実現します.
- パターンカットしない
- 物理キーを互換品に変更
- 光らせる
キー配置
今回のキーボードは前回のものよりも,多少新しい時代に製造されたものです.(それでも1990年代前半です)キー配置も似ているのですが,Returnが逆L字になり,そのあおりを食ってバックスラッシュキーがテンキーパッドに押し出されています.
ここはちょっとどうにかしてやらないと使いづらそうなところですね.
また,刻印が昔のMacintoshっぽくなってきています.
物理キー
こちらのキーボードはALPS黒軸を採用しています.ALPS黒軸はクリーム軸の後に採用されたものですが,キーのクリック感がややマイルドになっています.
キーマトリクス解析
キーボードのマトリクスパターンを解析します.目視とテスター片手に裏面のパターンを追いかけます.今回はパターンカットをしない縛りで作っていきますので,既存のマトリクスを最大限利用することになります.また,Raspberry Pi Picoを載っける基板を作り,オリジナルのコントローラを抜いたところにはめ込んでやります.
解析結果を以下の図に示します.
近いキーがコンパクトにまとまっていて,8x10に収まりそうな感じのきれいなマトリクス・・・と思ったら,モディファイアキーだけ飛び出してしまっています.なんじゃこりゃ.よく見るとR10と書いた行はGNDです.てことは,これらのキーはマトリクスではなく,ダイレクトキーになっているってことですね.
さすがにそこまで富豪なピンがあるマイコンは使っていないので,モディファイアキーもマトリクスに統合します.GNDだったパターンを追いかけてジャンパを抜いてGNDから外して1本のバスにしてしまいます.
最終的に決定したマトリクスは以下のようになります.モディファイアをどこの列に統合するかは,今回作成するPi Pico基板の都合でPCBを作りやすいように決めています.
このマトリクスをPi Picoへ変換する基板を作ります.この基板の上だけで,モディファイアキーの列の統合も行います.そのおかげで今回はほとんどジャンパワイヤを飛ばす必要がなくなりました.
設計したらElecrowに発注.基板制作費は$1.00. 送料が$15ほどで1週間弱で届きます.バグの入り込む手配線を必死でやるよりはお金で解決した方が良かろうということです.
実装
キーの裏からLEDでキーを光らせたいと思っているので,どうにかならないかといろいろ眺めましたが,結局スイッチを全部取り替えることにしました.
基板は片面パターンなので,はんだ吸い取りは簡単にできます.
しかし,古い基板なので銅箔パターン自体がもろくなっており,簡単に剥離してきます.
細心の注意を払いながら,はんだ除去とスイッチの撤去を行います.
キースイッチはFILCOダイレクトさんから,Matias Click Switch Gray(タクタイル)とWhite(クリック)を入手しました.テンキーだけ,Whiteでカチャカチャ言うように作ってみます.
さらに表面のジャンパもLEDストリップが通るところは邪魔になりますので撤去して裏面に再実装します.はんだ吸い取り線の消費速度が異常です.結局実装されていた部品の9割以上は外す羽目になりました.
ついでに,Caps Lock LEDを白色LEDに変更します.
続いて,光らせるためのLEDストリップを敷設します.LEDストリップは,よく見かける10mm幅のものだとキースイッチに干渉しそう(ギリギリでなんとなならないこともない)なので,今回は5mm幅のものを入手します.制御はWS2812のドライバでできるので,安心です.
これで基板のほうでやることは終わりなので,キースイッチをはんだづけしていきます.
キースイッチをはんだづけしてしまうと,LEDストリップには手が出せなくなるので,接触不良のダブルチェックが必要になります.実際,後述するようにキーを全部付けた後で,一部のキーの不認識というバグを出しました.
仕上げ
キースイッチをはんだづけし終わった頃に,キーマトリクス変換基板が深圳から届きました.
基板上にはI2CとWS2812用のコネクタも引き出しています.
これを使ってRaspberry Pi Picoとキーボード基板の橋渡しをします.
基板にバグさえ無ければ,ワイヤを1本も繋ぐこと無く配線作業が完了です.
透過OLEDもI2C経由で取り付けます.
ここらはV1と全く同じなので,簡単にできます.
後は組み上げるだけです.
完成
QMKのコードは以下に置いてあります.
RGB LightingとRGB Matrix
QMKには2種類のRGB LED制御があります.RGB Lightingはws2812のようなシリアルLEDを操作するための機能,RGB Matrixはマトリクス構造になっているLEDを制御するドライバを利用するためのものです.ただ,RGB Matrixでもws2812がサポートされています.
RGB Lightingは最初からシリアルLEDを使う前提なので,設定が楽です.通し番号だけで制御できます.また,レイヤーへの対応などがサポートされています.きれいなアニメーションが用意されています.
RGB Matrixは汎用のマトリクス制御なので,LEDとキーの対応を作ってやらねばなりません.これがまあまあ面倒で,キーマトリクス→LEDマトリクスの対応表と,LEDマトリクス→物理キーの場所の対応表の2種類を作らねばなりません.アニメーションも用意されていますが,こちらはタイピングに反応したアニメーションが利用できるのが強みです.
こんなExcelを書いて,コードに落とし込んでやります.
どちらの方法でも同じことを実現はできそうですが,自分で作ること考えると出来合いのものを使いたくなりますね.
キータイプに反応して光るのはこんな感じになります.
なお,ws2812を使う場合は,これら2つの方法を共存させることはできません.
バグとか途中の失敗とか
- 当初,メイン基板のLEDの点灯方法を勘違いしていて,5VラインをGNDだと思っていました.そのまま最初の変換基板を作ってしまったので,大幅なやり直しが必要になり,結局再注文しました.
- LEDストリップを敷設後,キースイッチを全てはんだづけした後で,キーマトリクステストをしたら,1行分が反応無しになりました.テスターで調べていると,LEDストリップを接続したときだけ5Vと当該行がつながってしまっていました.これは,ジャンパワイヤを付け替えたときにほんの少し表に出た部分がLEDストリップの5Vと接触していたためでした.
おわりに
古いキーボードを改造して現代によみがえらせる遊びは楽しいですよ.
私自身,20年前には持っていなかった電子工作のスキルを得て再改造を試みると,できることが増えていて嬉しかったです.
1990年代のメカニカルスイッチ採用のキーボードは打鍵感も良いので,よみがえらせる価値があります.
みなさんもジャンク屋でよさげなキーボードを見つけたら即確保!
では,Merry Christmas and a happy new year!