バツイチとインケンのエンジニアブログ
プログラムやプログラムじゃないこと

はじめての自作キーボード -redox ビルドログ-

2019-02-27
書いた人 : バツイチ
カテゴリ : 自作キーボード | タグ : redox, 分離キーボード

毎年ゴロゴロダラダラいつの間にか終わっているお正月ですが、 2019年はキーボードを自作して有意義なお正月を過ごすことにしました。
そもそもキーボードを自作しようと思ったきっかけは、周りで分離キーボードが流行っていて、「肩こりにいいですよ〜」と勧められ、分離キーボードを探したら、かわいい自作キーボードがたくさん出てきた → 「作ろう!」、というわけです。

作成したのは、こちらの redox という 7×5 Column-Staggered のキーボードです。

https://github.com/mattdibi/redox-keyboard


redox-1.jpg

材料

パーツ集めですね。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というマルチメーターですが、テストの仕方はどのデジタルテスターでもだいたい同じかと思います。

  1. ロータリ・スイッチをダイオード(こんな感じのシンボル: ー▷|)に合わせます
  2. FUNCボタンでダイオードモードに設定します(液晶上に ー▷| が表示されます)
  3. COMの黒端子をカソードに、VΩの赤端子をアノードにあてます ※ここで回路図使います
  4. 正しく接続できていれば、 0.56V 前後を示します

回路図とPCBは下記図のように対応しています。

Pro Microの信号受信ホール(=カソード側)に黒端子、ダイオード用丸型ホールに近い方のスイッチ穴(=アノード側)に赤端子を当てて測定します。
(行方向もしくは列方向のどちらかだけで大丈夫ですが、140個全てテストします。)

PJ-320A TRRS コネクタの実装

左右のキーボード間の通信を行うTRRS用コネクタです。

左右とも、4つの足をはんだ付けします。

TRRSコネクタは、分離キーボードをつなぐ超重要パーツです。
ここに不具合があると片側だけしか動かないキーボードになってしまいます💦
なのはんだ付けしたらしっかり 導通チェック を行っておきます。

  1. ロータリ・スイッチを導通(こんな感じのシンボル: ))))に合わせます
  2. FUNCボタンで導通モードに設定します(液晶上に ))) が表示されます)
  3. COMの黒端子をTRRSコネクタの足に、VΩの赤端子をPro Microにあてます
  4. 正しく接続できていれば、ビープ音がなります

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 の場合は下記になります。

  1. Homebrewをインストールする
  2. 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 に上げています。

Redox 自作キーボード作ってみた 前編

Redox 自作キーボード作ってみた 後編

次回は、後回しにしてしまった RGB LEDテープ について書きたいと思います。
では、ハッピー・キーボード・ライフを♪

このエントリーをはてなブックマークに追加
Tweet

← 動画広告のffmpegのよく使うオプション
管理画面テンプレートの使い方 CoreUI AdminLTE →

 

最近書いた記事

  • ぽちっとジャンキー
  • ホテルでリモートワーク・テレワーク
  • Ryzen7 3800XT でmini ITXオープンフレームPCを作る
  • Pythonで機械学習入門 競馬予測
  • HP ENVY 15 クリエイターモデルレビューとRAID0解除

カテゴリー

  • Android
  • Apache Flink
  • API
  • AWS
  • bazel
  • BigQuery
  • Cassandra
  • Docker
  • Druid
  • Elasticsearch
  • Git
  • Golang
  • gradle
  • HDFS
  • JavaScript
  • jvm
  • Linux
  • MongoDB
  • MySQL
  • Nginx
  • Nodejs
  • PaaS
  • PHP
  • Python
  • RabbitMQ
  • Raspberry Pi
  • React Native
  • Redis
  • Riak
  • rust
  • scala
  • Scheme
  • SEO
  • solr
  • Spark
  • spray
  • Sublime Text
  • Swift
  • Tableau
  • Unity
  • WebIDE
  • Wordpress
  • Youtube
  • ひとこと
  • カンファレンス
  • スケジューラ
  • マイクロマウス
  • リモートワーク
  • 広告
  • 技術じゃないやつ
  • 株
  • 機械学習
  • 競馬
  • 自作キーボード
  • 自然言語処理

アーカイブ

  • 2022年2月
  • 2022年1月
  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年5月
  • 2018年3月
  • 2018年2月
  • 2017年9月
  • 2017年8月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年1月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年6月
  • 2015年5月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年9月
  • 2014年6月
  • 2014年5月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月

書いた人

  • バツイチちゃん
  • インケンくん

このブログについて

エンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。

バツイチ

アイコン

IT業界で働くエンジニアです。名前の通りバツイチです。
理論や抽象的概念が好きだけど人に説明するのが下手。

インケン

アイコン

バツイチちゃんと同じ業界で働いています。
理論とか開発手法とかは正直どうでもよくて、
生活する上で役に立つことに使いたい

Copyright 2023 バツイチとインケンのエンジニアブログ