毎年ゴロゴロダラダラいつの間にか終わっているお正月ですが、 2019年はキーボードを自作して有意義なお正月を過ごすことにしました。
そもそもキーボードを自作しようと思ったきっかけは、周りで分離キーボードが流行っていて、「肩こりにいいですよ〜」と勧められ、分離キーボードを探したら、かわいい自作キーボードがたくさん出てきた → 「作ろう!」、というわけです。
作成したのは、こちらの redox という 7×5 Column-Staggered のキーボードです。
https://github.com/mattdibi/redox-keyboard
材料
パーツ集めですね。PCB と ケースを除いた、殆どの電子部品は AliExpress で調達しました。
数量 | アイテム | 備考 | 購入場所 |
---|---|---|---|
70 | Cherry MX 互換スイッチ | ※後述 | AliExpress |
2 | Redox PCB | リポジトリ内のgerber使用 | Elecrowで発注 |
70 | 1N4148ダイオード | 表面実装ダイオード可 | 秋月電子 |
2 | PJ-320A 4極 3.5 mm TRRS コネクタ | AliExpress | |
2 | 4.7 kΩ レジスタ | 片側のPCBにのみ実装 | 秋月電子 |
2 | タクトスイッチ | 6mm x 6mm x 4.3mm | モノタロウ |
2 | Arduino Pro Micro ATmega32U4 | AliExpress | |
1 | TRRS ケーブル (4極のオーディオ・ケーブル) | 黒い線が2本のものは3極なので使用できません💦 | AliExpress |
1 | micro USB ケーブル | ※手持ちのもので可 | AliExpress |
70 | Cherry MX 互換キーキャップ | 10x 1.25u, 6x 1.5u, 54x 1u (全て1uでも大丈夫🙆) | AliExpressで爆買いw |
14 | WS2812/WS2812B | オプション RGB-underglow | AliExpress |
14 | 24AWG以下のビニール線 | オプション | 秋月電子 |
16 | 鍋ネジ M3x4 | ※ アクリル・ケースの場合 | aitendo |
8 | スペーサ M3x8 | ※ アクリル・ケースの場合 | aitendo |
工具類
下記を使いました。ご参考までに。。。
アイテム | 備考 | 私が購入した場所 |
---|---|---|
はんだごて | 必須。 | 自宅あったものを使用。 |
こて先クリーナー | こて台に付いているものもある。 | モノタロウ |
はんだこて台 | あると便利。 | モノタロウ |
はんだ(ヤニ入り) | 必須。 | モノタロウ |
はんだ吸い取り線 | 必須。 | モノタロウ |
はんだシュッ太郎NEO | はんだ付けをミスって慌てて買いに行きました💦 | 千石電商 |
ニッパー | 必須。 | モノタロウ |
カッティング・ボード | 作業台があれば不要かも。 | 近所のホームセンター |
マルチメーター | 必須。 | Amazon |
リードベンダー | あるとダイオード140個の折り曲げ作業が楽になる。 | Amazon |
絶縁テープ | LEDテープ付けないなら不要。 | 千石電商 |
みのむしクリップ付きコード | あるとデバッグが楽に。 | aitendo |
ブレッドボード | あるとデバッグが楽に。 | 秋月電子 |
ジャンパワイヤ | あるとデバッグが楽に。 | 秋月電子 |
お正月に作るつもりだったので、12月の上旬には全て発注を終わらせました。
(年末年始は、足りないパーツがあっても店が空いていないので注意が必要です、、、私は1月4日に aitendo に駆け込みました、、、)
Cherry MX 互換スイッチ
軽い打鍵感が好きなので、下記の3種類を買ってみました。
- Cherry MX スピードシルバー
- Gateron 白(クリア?)
- Kailh シルバー
この中で、最も軽いのは Gateron 白 だったのですが、実際にケースにはめて打ってみると、かっちり感のあるCherryシルバーの方が好みでした。
PCB
PCBは同じデザインのものを 10 枚注文しました。
下の写真のように裏面を片側として使うので、 5組のキーボードが作れます。
Pro Micro
Pro Micro の USBインターフェイスはもげやすくて有名です💦
組み立て前に、エポキシ接着剤で補強しておくと良いそうです。
ProMicroのモゲ防止ついでにQMK_Firmwareを書き込む
ケース
キーボードのケースは、redoxリポジトリ内の SVG を使ってアクリル板をレーザーでカットしました。
詳しくは前回の記事をご覧くださいませ 🙇
パーツが揃ったら実装です👍
回路図とにらめっこになるので、リポジトリ内の回路図 を開いておくと良いかもしれません。
ダイオードの実装
ダイオードは電気の流れを一方通行にする部品です。
キーボードでは、スイッチ打鍵による電気信号をPro Micro方向に流す役割を担います。
というわけで、ダイオードには方向があります。
1N4148ダイオード は 線がある方がカソード、線がない方がアノードです。
方向に注意しながら、片側70個 全部で140個のダイオードをPCBに通していきます。
リードベンダー があると、折り曲げ作業が楽です。
通し終わったら、はんだ付けです。
ダイオードの足側からはんだを流し込みます。
はんだ付けが完了したら、ダイオードの足は邪魔なのでニッパーなどで切っておきましょう。
※ 結構短くしておかないと、組み立てた際にケースにぶつかります💦
ダイオードの実装テスト
さてここで、はんだ不良やダイオード自身の不良がないか、テスターを使ってチェックします。
私のはMS8209というマルチメーターですが、テストの仕方はどのデジタルテスターでもだいたい同じかと思います。
- ロータリ・スイッチをダイオード(こんな感じのシンボル: ー▷|)に合わせます
- FUNCボタンでダイオードモードに設定します(液晶上に ー▷| が表示されます)
- COMの黒端子をカソードに、VΩの赤端子をアノードにあてます ※ここで回路図使います
- 正しく接続できていれば、 0.56V 前後を示します
回路図とPCBは下記図のように対応しています。
Pro Microの信号受信ホール(=カソード側)に黒端子、ダイオード用丸型ホールに近い方のスイッチ穴(=アノード側)に赤端子を当てて測定します。
(行方向もしくは列方向のどちらかだけで大丈夫ですが、140個全てテストします。)
PJ-320A TRRS コネクタの実装
左右のキーボード間の通信を行うTRRS用コネクタです。
左右とも、4つの足をはんだ付けします。
TRRSコネクタは、分離キーボードをつなぐ超重要パーツです。
ここに不具合があると片側だけしか動かないキーボードになってしまいます💦
なのはんだ付けしたらしっかり 導通チェック を行っておきます。
- ロータリ・スイッチを導通(こんな感じのシンボル: ))))に合わせます
- FUNCボタンで導通モードに設定します(液晶上に ))) が表示されます)
- COMの黒端子をTRRSコネクタの足に、VΩの赤端子をPro Microにあてます
- 正しく接続できていれば、ビープ音がなります
TRRSコネクタは4足(x2)全てテストします。
タクトスイッチの実装
タクトスイッチ、押して信号を送るシンプルなやつです。
Pro Microをリセットするのに使います。
両側のPCBにはんだ付けします。
これは実装をミスったらリセットできないので、わかりやすくはあるのですが、これも一応導通チェックをしておきましょう。
抵抗の実装
4.7kΩ の抵抗を2本、片側だけに実装します。
なお、RGB LEDテープを取りつける場合は抵抗の実装は不要です。
抵抗を実装したら、テスターで抵抗値を確認するのをお忘れなく。。。
Pro Microヘッダーピンの実装
ここではヘッダーピンのみ実装します。
決してPro Micro本体を実装してしまったり、 ヘッダーピンにPro Microを接着してから PCB に実装してはなりません… 😰
(私はここでミスって Pro Micro x 2とPCB x 2を無駄にしました、、、)
redox の README では、 使うケースによってここの手順は変えてね、と記述があります。
私はアクリル版でケースを作成したので、一番近しそうな bamboo ケースの場合 を参考にしました。
bamboo ケースの場合 は標準のヘッダーピンで良いとのことなので、 Pro Micro に付いてきたヘッダーピンを普通にPCBへはんだ付けします。
はみ出た足は、ニッパーなどでカットしておきます。(硬くて大変ですが・・・ 💦)
README では次工程は RGB LEDテープなのですが、これはいつでも付けられるので後工程にします。
スイッチの実装
いよいよスイッチの実装です。
(非常に面倒ですが、スイッチ不良も無くはないので、実装前にスイッチ単体での導通テストを行っておくと動かなかったときの手戻りが少なくてすみます💦)
私はこの redox を組み立てていたとき、 スイッチのホットスワップ部品の存在を知らなかったので、PCBに直付けしてしまったのですが、下記のようなホットスワップ化パーツを使うと好きなスイッチにいつでも交換できるようになります。
次の組立時にはホットスワップ化しようと思います。
crkbd (コルネ DIY keyboard) をキースイッチスワップ仕様で組んだ
140個のスイッチを アクリル版に挿していきます。
PCB を裏返し、そこにアクリル版+スイッチを乗せ、スイッチの足を PCB のスイッチ穴に嵌めます。
PCB とスイッチをはんだ付けします。
裏返すとこんな感じです。
だんだんキーボードらしくなってきました。
Pro Microの実装
Pro Micro の実装には注意が必要です。
恐らくほとんどの Let’s Split系キーボードと同様、Pro Micro の向きが 左右で異なります。
それと、チップはあまり熱に強くないので、はんだごてで長時間熱し過ぎないよう注意です。
この2点に気をつけてささっと 12×2 全穴はんだ付けします。
※ 遊舎工房さんで販売している スプリングピンヘッダ を使えば、Pro Micro とピンヘッダをはんだ付けする必要がなくなるので、楽ちんかもしれません。
私も買ってみたので、次回作はスプリングピンヘッダ使おうと思っています。
※ Pro Micro の実装をミスったり、 Pro Micro のUSBインターフェイスがもげた場合の対処法について、別の記事で書こうと思います。
組み立て
Pro Micro の実装が終わったら、ケースを組み立ててスイッチにキーキャップを嵌めます。
どんなキーキャップにしようか、楽しい作業です♪
Pro Micro にキーマップを書き込む
Qmk Firmware
redox は Qmk Firmware をファームとして使っています。
この辺も他のLet’s Split系キーボードと同じですね。
Qmk Firmware の公式ドキュメントにインストールガイドがあるので、これの通りインストールすればOKです。
https://docs.qmk.fm/#/newbs_getting_started
Mac OSX の場合は下記になります。
- Homebrewをインストールする
-
git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git cd qmk_firmware util/qmk_install.sh
書き込み
上の工程↑で既に Qmk Firmware のリポジトリは clone 済みかと思います。
このリポジトリの中に、 redox用プロファイル があるので、このプロファイルを指定してビルドするのですが・・・(ビルド時のmakeプロセスで書き込みが走ります)
cd path/to/qmk_firmware make redox/rev1:default:avrdude
初回は左右どちらにも書き込む必要があり、且つ若干の手順があります。
また、この時点ではまだ TRRSケーブルを繋ぎません。
(使っていくうちにいろいろ調整したくなって何度もキーマップを書き込むことになるので、最初はあまり考えずにデフォルトのプロファイルを書き込んでしまって良いかもしれません💦)
1. MASTER_LEFT を定義
qmk_firmware/keyboards/redox/keymaps/default/config.h に MASTER_LEFT を定義します。
/* Select hand configuration */ #define MASTER_LEFT // #define MASTER_RIGHT
2. 左手に書き込み
左手用のキーボードの Pro Micro にUSBケーブルをつないで書き込みを行います。
make redox/rev1:default:avrdude
途中で Pro Micro のリセットを求められるので、タクトスイッチを押してリセットします。
ここまで完了すると、左手だけ使える状態になります。
3. MASTER_RIGHT を定義
qmk_firmware/keyboards/redox/keymaps/default/config.h に今度は MASTER_RIGHT を定義します。
/* Select hand configuration */ // #define MASTER_LEFT #define MASTER_RIGHT
2. 右手に書き込み
右手用のキーボードの Pro Micro にUSBケーブルをつないで書き込みを行います。
make redox/rev1:default:avrdude
右手用も途中で Pro Micro のリセットを求められるので、タクトスイッチを押してリセットします。
5. TRRSケーブル
USBケーブルを Pro Micro から外し、左右のキーボードをTRRSケーブルで繋ぎます。
qmk_firmware/keyboards/redox/keymaps/default/config.h を MASTER_RIGHT に戻します。
/* Select hand configuration */ #define MASTER_LEFT // #define MASTER_RIGHT
左手用キーボードにUSBケーブルをつないで書き込みを行います。
make redox/rev1:default:avrdude
これで完了です。左手用が MASTER になっています。
今後変更したキーマップを書き直す場合は、左手にUSBケーブルを繋いだ状態で make を行えば左右ともに反映されます。
ご参考までに、私のキーマップはこんな感じです。
左手の Fキー でshell用レイヤ、右手の Jキー で 数字レイヤになるようにしています。
詳しくはGitHubに上げさせて頂いたのでこちらをご覧くださいませ。
https://github.com/x1-/qmk_firmware/blob/add-redox-x1-profile/keyboards/redox/keymaps/x1/keymap.c
完成したキーボードがこちらになります。
※ このページのトップ画像のキーボードはインケンくんが作ったやつです。
ビルドログを YouTube に上げています。
次回は、後回しにしてしまった RGB LEDテープ について書きたいと思います。
では、ハッピー・キーボード・ライフを♪