KBD75v2を組み立てた
KBD75v2とは
- KBDfansで売ってる75%の自作キーボードキットです。
- アルミのケースの間にアクリルが挟まっており、フルカラーで光ります。
- QMKファームウェアに対応しています。
- split spacebarに対応しています。
目次
- KBD75v2とは
- 目次
- どのへんが購入動機につながったのか?
- 構成
- 注文
- 参考にした組み立て手順
- PCBの動作チェック
- バックライトLEDの検討
- 組み立て
- キーレイアウトを検討
- キースイッチのマウントプレートに1u以外のキースイッチを組み付け
- キースイッチのマウントプレートに最上段の両端のキースイッチを組み付け
- スタビライザーのルブ
- スタビライザーの設置
- キースイッチを組み付けた部分に対応する箇所にLEDを差し込む
- PCBにキースイッチを組み付けたマウントプレートを乗せて合体させる
- PCBを裏返してバックライト用LEDをはんだ付け
- 電源を入れてバックライトLEDの動作を確認する
- のこっている1uキー部分のLEDを差し込む
- のこっている1u部分のキースイッチをマウントプレート&PCBに組み付け
- PCBを裏返してLEDをはんだ付け
- 電源を入れてバックライトLEDの動作を確認する。
- キースイッチをすべてはんだ付け
- PCBで気になった所
- ファームウェアの書き込み
- 組み立て終わって
どのへんが購入動機につながったのか?
- 一体型
- テンキーレス
- カーソルキーがある
- split spacebar対応
- スペースバー周りにボタンが多いといろいろな機能を割り当てられそう。
- 光る!!!
構成
- 本体: KBD75v2 Type-Cコネクタ
- スイッチ:kailh boxの黒軸
- グラつきがすくなくて、リニアで、ちょっと重めで選んでみた。
- キーキャップ: SA Lime
- maxkey, pimpmykeyboardのミックス
- maxkeyの分ではsplit spacebar用のキーキャップが足りなかった。
- pimpmykeyboardで追加のキーキャップを購入した。
- 両方から買ってみて若干色味が違うのに気づいた。
- バックライトLED: aitendoで買ってきた2mmx3mmx4mmの白色LED
最初っからこの構成にしようと決めていたわけではなくて、 なんとなく気に入ったキーキャップを買っておいたり、 キーボードキットを買っておいたりしたら この構成になったという感じです。
注文
KBD75v2のPCBとケース
- 3/13にkbdfansへ追加のPCBスタビライザーと一緒に注文。
- 4/11に発送。
- 4/14に受け取り。
キーキャップ
メインのキーキャップ Maxkey Lime Keycap Setはkono storeから以前に買ってあったもので、 split spacebar用に追加で2.25uと2.75uのキーキャップが必要になったので、pimp my keyboardから購入しました。
- 4/20にpimp my keyboardへ追加のキーキャップを注文。
- 4/23に発送
- 5/5に受け取り。
参考にした組み立て手順
このキットの公式のビルドガイドが見つけられなかったので、 asciiのDZ60の組み立て記事を参考にしました。
https://ascii.jp/elem/000/001/612/1612870/index-5.html
作業する上で大事なのは“慎重さ”と“注意力”だ。
KBD75v2のPCBは多様なレイアウトに対応するために、1つのキーに対して複数のスルーホールが空いており、 この中から適切に選択しないとキーキャップがはまらなくなります。 そのため、必要なパーツが全て揃ってから組み立てた方が良いです。
PCBの動作チェック
実際に組み立て始める前に、PCBが問題ないか動作チェックを行いました。 キースイッチをやLEDを組み付けたあとでPCBがおかしい事に気づいても、リカバリが大変だからね。
- まずはPCに接続してみて、アンダーグロウのLEDが光るかどうか。
- 次にピンセットでキースイッチ用のパターンをそれぞれ短絡させて、キー入力が行われるかどうか。
- 最後にファームウェアのアップデートができるかどうか。
バックライトLEDの検討
アンダーグロウLEDはすでに実装されているけど、バックライトLEDがほしい。 キースイッチ用だと、2mmx3mmx4mmの角型LEDか、φ1.8mmのLEDが必要になるらしい。 遊舎工房近くのaitendoでどっちも取り扱っているので、数種類買って比較してみることにしました。
あと、キースイッチはkailhのbox軸にすることにしていたので、キースイッチ内部に入るかどうかも重要でした。
LEDの比較
- 2x3x4白の透明
- 2x3x4白の拡散
- 2x3x4青の透明
- 2x3x4赤
で比較してみました。
キースイッチをはんだ付けする前にバックライトLEDの動作確認を行うためには、 PCBの動作確認と同じようにピンセットで短絡させる必要があります。
デフォルトのファームウェアだとバックライトLED関係のキーは以下の通りです。
FN + C In-switch back light decrease BL_DEC FN + V In-switch back light toggle on/off BL_TOGG FN + B In-switch back light increase BL_INC FN + N In-switch back light step through BL_STEP
FNキーとNキーを両方同時にピンセットで短絡させる必要があります。 2キーまでならピンセットでまだなんとかなるレベルです。
PCBにLEDを仮実装してみたところ
キースイッチなしでバックライトLEDを光らせてみたところ
キースイッチをおいてバックライトLEDを光らせてみたところ
キーキャップもつけてバックライトLEDを光らせてみたところ
バックライト用LEDの決定
2x3x4白の拡散が一番光ってたっぽいけど、これはaitendoの店頭に在庫が少なくて 必要数が揃わなかったので、2x3x4白の透明で行くことにしました。
バックライト用LEDの取り付け方法について
KailhBoxタイプのキースイッチだと、キースイッチの中にバックライト用LEDを入れる必要があるので、 バックライト用LEDを先にPCBに挿してからスイッチを組み付けました。
先にキースイッチをはんだ付けしてしまうと バックライト用LEDの取り付け、取り外しができなくなるので、 キースイッチのはんだ付けはバックライト用LEDのはんだ付けと点灯確認が終わったあとに行います。
2x3x4の角型LEDだとPCBに直付けする方法A案と、 Boxスイッチのトップ側カバー部分まで背伸びさせる方法B案があって、 あんまり光り方が変わらないみたいに思えたので、 組み立てが楽そうなBoxスイッチのトップ側カバー部分まで背伸びさせる方法を選択しました。
組み立て
ほぼGH60クローンと同じ組み立て手順でした。 2回目になりますが、asciiの組み立て記事がとても参考になりました。
https://ascii.jp/elem/000/001/612/1612870/index-5.html
今回はバックライトLEDをキースイッチの取り付け前に実装する必要があったので、 間違いそうな1uキー以外の箇所のLEDのはんだ付けを先に行いました。
キーレイアウトを検討
キースイッチにキーキャップをはめて、 PCBに置いてみて検討します。 この段階でははんだ付けしません。
- 最下段
- スタビライザーを使うあたり
- 選択式になっている部分
キースイッチのマウントプレートに1u以外のキースイッチを組み付け
1u以外のキーは位置が決まってないので先に組み付けてずれないようにします。
キースイッチのマウントプレートに最上段の両端のキースイッチを組み付け
マウントプレートの四隅のキースイッチを組み付けておいて、 PCBとスイッチを組み付けたマウントプレートを合体させるときにズレたり、反ったりないようにします。
スタビライザーのルブ
PCBから外した状態で事前にスタビライザーにドライファストルブを塗布しておきました。
カチャカチャという音はあんまり軽減されませんが、 スタビライザーの戻りがスムーズになるので使っています。
ごらんの通り、白く粉を吹くので、PCBから外して処理したほうが良いです。
スタビライザーの設置
スタビライザーはスタビライザーの爪をPCBに引っ掛けて固定するタイプのものを使ったんですが、 斜めになりやすいので設置したあと斜めになっていないか確認します。
キースイッチを組み付けた部分に対応する箇所にLEDを差し込む
LEDを差し込むスルーホールも選択式になっているので注意が必要です。 概ねLEDの極性の方向は統一されているみたいでした。
PCBにキースイッチを組み付けたマウントプレートを乗せて合体させる
- キースイッチの足がすべてPCB側に出ているか確認。
- マウントプレートとPCBが全ての辺で並行になっているか確認。
合体させるだけです、リカバリが必要になるかもしれないので、 キースイッチはまだはんだ付けしません。
頻繁に裏返したり戻したりすることになるので、 マスキングテープでPCBとマウントプレートを固定しておきます。
PCBを裏返してバックライト用LEDをはんだ付け
LEDの足を曲げて固定していなかったので、LEDがプラプラしていましたが、 バックライト用なので、多少曲がってハンダづけされていても気にしないことにしました。
電源を入れてバックライトLEDの動作を確認する
のこっている1uキー部分のLEDを差し込む
1uキーの部分はLEDの極性にだけ気をつければOKです。
のこっている1u部分のキースイッチをマウントプレート&PCBに組み付け
キースイッチをPCBと合体させたマウントプレートに押し込んで組み付けます。 キースイッチがハマりにくかったら、キースイッチの引き抜き工具などで爪を押してキースイッチを組み付けます。
PCBを裏返してLEDをはんだ付け
外側のLEDを1列ずつはんだづけして、終わったらその列のLEDの足を切る を繰り返してはんだ付けしました。
LEDのアノード側とカソード側ではんだの濡れやすさが違う気がするのですが、 半導体の極性となんか関係あるんでしょうか?
電源を入れてバックライトLEDの動作を確認する。
キースイッチをすべてはんだ付け
一方向から順にはんだづけしていくと、マウントプレートとPCBが平行にならず、 片側で浮いたりしやすいので、
- 四隅と中央をはんだ付け
- 十字になるように中央から外側に向かってはんだ付け
- 田の字になるように外周をはんだ付け
- 残りの部分をはんだ付け
みたいな感じではんだ付けしていきます。
PCBで気になった所
PCBの最上段のスルーホールのサイズが他の段のスルーホールと比べて大きいようです。 設計ミスなのかも。
まあ、はんだ付けで組み立てる上では問題はありませんでしたが、 ベリリウム銅のソケットなんかを使おうとする場合はちょっと注意が必要だと思います。
ファームウェアの書き込み
promicroを使ったやつだとavrdudeで書き込むパターンが多いですが、 これはdfuで書き込むみたいです。
公式のREADMEにはdfuを使う手順は書いてませんが、以下のコマンドを実行して、
make kbdfans/kbd75/rev2:default:dfu
QMK Firmware 0.6.345 Making kbdfans/kbd75/rev2 with keymap default and target dfu avr-gcc (GCC) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: text data bss dec hex filename 0 23984 0 23984 5db0 .build/kbdfans_kbd75_rev2_default.hex Copying kbdfans_kbd75_rev2_default.hex to qmk_firmware folder [OK] Checking file size of kbdfans_kbd75_rev2_default.hex [OK] * The firmware size is fine - 23984/28672 (4688 bytes free) dfu-programmer: no device present. Error: Bootloader not found. Trying again in 5s. dfu-programmer: no device present.
このような状態になったら、 fnキーとバックスペースを押してキーボードをリセットします。
それでファームウェアが更新されるはずです。
組み立て終わって
ケースがアルミ削りだしのケースでずっしり重いです。 アンダーグロウがエッジしか光らないけど、キレイです。 シルバーのマウントプレートにバックライトLEDが反射するので、思った以上に光ります。
ケースがシルバーとグレイの組み合わせだったはずだけど、ぱっと見には違いがわかりません。 いろいろな角度から比べてみて初めて色の違いが分かる程度でした。
意外とケースのシルバーとグレイがSA Limeのキーキャップとマッチしていてよかった。
Dozen0を組み立てた
はじめに
Dozen0を組み立てたので記録を残しておきます。
ミスったところを書いておきます。
Dozen0とは
Dozen0を購入した動機
- 組み立て後もスイッチの交換ができる。
- キースイッチを実際に動作させて試すことができる。
- 自作キーボードキットに使うキースイッチの選定に使えそう。
組み立ててみた後の印象
- キースイッチソケットのはんだ付けは独特だけど、難しくない。
- 組み立て後は隠れちゃうけど、ボトムプレートPCBにも◤◢◤◢◤◢◤◢がワンポイントではいっててカッコいい。
- はんだ付け箇所が少なく、キースイッチの選定に使えるので、これから自作キーボードをはじめようっていう人におすすめ。
あったほうが良い工具
Dozen0の組み立てに必要な工具は公式のビルドガイドの通りですが、 個人的にあったほうが良いと思う工具
- 先の細いこて先
- ソケットのコの字型の部分に先端が入るやつであれば何でもOK
- 白光 こて先 1.6D型 T18-D16
- 逆動作ピンセット
- ソケットがPCBから浮かないように押さえるのに使いました。
- goot TS-16
- LED付きヘッドルーペ
- ソケット部分にちゃんとハンダが流れてるのかとかProMicroのはんだ付けちゃんとできてるかとか、はんだ付け作業をしながら確認できます。
- キースイッチ引き抜き工具
組み立て記録
難しいところはありませんでしたが、 あんまり難しくないだろうとナメてかかってたのでミスりました。
ソケットのはんだ付け
ソケットを逆動作ピンセットで挟んで固定して、はんだ付けしました。
ソケットのコの字型の部分にコテ先を入れて、十分に加熱してからハンダを入れます。 いつもの270度の設定で、2,3秒くらい温めてという感じでやりました。
コの字部分の底にスリットが空いていて、加熱が十分だとここからハンダが流れて PCBのパッドと接合するみたいです。
やらかし1:ロープロファイルのキースイッチと普通のキースイッチが混載できるんだと思ってた。
これは私の完全な思い込みだったんですが、 最初こんな感じでロープロファイルのキースイッチ(右下の3つ, choc系スイッチ)と通常のキースイッチ(Cherry MX系スイッチ)を混載してみたんですが、
こうなりました。 ロープロファイルの方のキースイッチの端子がソケットに届いてません。 Dozen0自体は両方に対応していますが、混載はできません。
気を取り直して全部Cherry MX系のスイッチに切り替えました。 その後、プレートに取り付けたキースイッチをソケットのついたPCBに 全体を均等に少しづつ押し込んでいったんですが、 別の理由でうまくはまらない箇所がありました。
やらかし2:ソケットの方向を間違えてはんだ付けしていた
ソケットのはんだ付け方向を間違えていました。 これによってPCBの真ん中の穴が塞がれ、スイッチがPCBにちゃんとはまりませんでした。
ハンダ吸い取り線ではんだを除去。 ハンダを吸い取っただけだとソケットが取り外せないので、 はんだごてでソケットの端子を加熱しつつ、ピンセットで交互にちょっとずつ浮かしてソケットを取り外しました。
うまく行ってよかった。
ファームウェアを書き込んで動作チェック
最初はQMK Toolbox(mac版)を使おうとしたんですが、うまく扱えなかったので、 QMKのビルド環境を作ってファームウェアを書き込みました。
macでのビルド環境の作り方 https://docs.qmk.fm/#/getting_started_build_tools?id=macos
qmkのファームウェアをクローンしてくる
git clone https://github.com/qmk/qmk_firmware.git
Dozen0のファームウェアのビルドとインストール
Dozen0をPCに接続して、以下のコマンドを実行。
cd qmk_firmware; make dozen0:default:avrdude
Detecting USB port, reset your controller now.......
と表示され始めたらDozen0のリセットスイッチを1回または2回連続で押す。
Dozen0の動作チェック
以下のサイトをつかってキー入力のテストを行いました。
動作チェックしてたんですが、反応しないキーがある。 いったん全部スイッチを外して、ソケットのついたPCBを眺めてみました。 はんだ付けは問題なさそうです。
PCBを明かりに透かしてみると、ソケット部分の端子がやたらと大きく開いてるのがある。 原因はこれっぽい。
やらかし3: ソケット端子がキースイッチの端子に接触してない
たぶん、ソケットのはんだ付け方向を間違えたせいで、ソケットの端子に無理な力がかかったんでしょう。 ソケット内部の端子が広がりすぎてスイッチの端子に接触してない状態になっていました。
問題の起きたソケット内部の端子を壊さないように、 ドライバーセットの千枚通しのようなしっかりした先の細いやつでこじって広がった端子を狭めました。 これもうまく行って良かった。
※精密ピンセットはこういう力のかかる用途に使ってはいけません。 先を曲げてだめにしてしまいます。
キースイッチソケット、意外と繊細ぽいので注意しよう。
完成
もういっかい組み直して無事完成しました。
マスキングテープを使って、安全にProMicroのモゲ対策をする
はじめに
ProMicroのmicroUSBコネクタには穴が空いており、コネクタのモゲ対策で接着剤を盛ろうとすると容易にコネクタ内に接着剤が侵入します。
マスキングテープを使うことで安全に接着剤を盛ることができたので紹介します。
作業に必要なもの
- マスキングテープ
- 先が細い精密ピンセット
microUSBコネクタ内に突っ込めるくらい先が細いピンセットが必要です。
今回使ったのはgootのTS-10です。
マスキングテープでコネクタの穴を塞ぐ
上面に2つ、左右の下側に2つ穴が空いているので、これらをマスキングテープで塞ぎます。
※コネクタ内部のmicroUSBの端子部分を壊さないように注意してください。
- マスキングテープを適当な大きさに切ります。
- 粘着面を外側にして二つ折りにします。
- ピンセットでマスキングテープをつまみコネクタ内に入れます。
- マスキングテープをコネクタの一番奥まで突っ込みます。
- ピンセットの先端でマスキングテープをコネクタの内側から外側に向かって押しつけてマスキングテープを貼り付けます。
- コネクタの穴がちゃんとふさがっているか、マスキングテープとコネクタの間に隙間ができていないか確認します。
反対側の穴も同様にマスキングテープで塞ぎます。
スルーホールの保護
スルーホール内に接着剤が侵入すると困るので、
スルーホールにもマスキングテープを貼って保護します
接着剤をmicroUSBコネクタ周辺に盛る
あとは接着剤をmicroUSBコネクタ周辺に盛るだけです。
スルーホールのマスキングテープの上に接着剤がかかってしまった場合は、
接着剤がゴム状に半分固まったくらいになってから
マスキングテープを剥がして接着剤を整え、スルーホールが塞がらないようにします。
接着剤が固まったらマスキングテープを剥がして完成です。
isaax勉強会#24(ラズパイでオムロン環境センサを使ってみる)に参加してきた
参加しようと思ったきっかけ
自室の温度とか湿度の記録を取りたいなと思っていて、 ウェザーニュースのWxBeacon2(オムロンの環境センサーのOEM)と Raspberry Pi 3B+を買ってたんだけど、 放置したままだったので、これはまさにぴったりの勉強会ではないかと思って参加してみました。
isaaxについての知識はありませんでした。
ハンズオンの中身
ハンズオンで使ったテキストは以下で公開されています。
オムロン環境センサ・Ambient・isaaxハンズオン – Isaax Camp
ハンズオンで利用するプログラム(Pythonスクリプト)はすでにgithubに用意されていて、 それをforkして使いました。
GitHub - isaaxug/envsensor-ambient
全体のシステム構成はこんな感じだと思います。
sshでraspberry piに入って、isaaxdのプロセスとかディレクトリを見てたら、 isaaxdがgithubからraspberry piで動かすPythonスクリプトをダウンロードしてきて実行してました。
事前に用意されていたのは、以下の2つのPythonスクリプトでした。
- オムロンの環境センサーからBLEでデータ読み出しをするもの(sample1.py)
- それに可視化サービスambientへデータを送信する部分が追加されたもの(sample2.py)
コードを書く部分はあまりなくて、 isaax, github, ambientなどの連携や設定がほとんどでした。
githubに上げられない秘匿情報はisaax側に保存しておいて、環境変数として参照できるみたいです。
多少のトラブルがあったものの、 環境センサーから取得したデータをambientに送って可視化することができました。
勉強会をふりかえってみて
isaaxむっちゃ便利!!
家でも使おうと思う。
これまで趣味でraspberry piをちょこちょこいじってたんだけど、 raspberry pi上でプログラムを動かすとなると、
- PC上でraspberry pi上で動かすプログラムのソースコード書く
- raspberry pi上に転送
- raspberry pi上で実行
- 必要ならサービスの作成
とまあ、わりとめんどくさい手順が必要だったんだけど、 isaaxを使えば、
という風にすごく楽にプログラムの修正と反映ができる。
個人が趣味で使っている分には、raspberry piが手元にあるので、 実感できる便利さはこの程度なんだけど、 isaaxの真価はインターネットにつながってさえいれば、 リモートでプログラムの更新ができるところにあるらしい。
swiftでQRコードジェネレータを作ってみた
だいぶ前だけど、swiftでQRコードジェネレータを作ってみた
今回はSwiftとRxSwiftを使ってみようということで、
またしてもMac上で動くQRコードジェネレータを作ってみた。
QRコードのエンジン部分にはQRCoderを使った。
テキストボックスと、スライダーの両方を監視して、
どちらかに変更があったらQRコード画像を生成し直すっていう処理が比較的少ないコード量で書ける。
ただ、RxSwiftの参考書などを見ずにやってたから、このくらいだったら大丈夫だけど、もっと複雑なことをやろうとしたら大変そうだなって感触。
あとMacOS用のRxSwiftはRxCocoaというサブセットで、
サポートされているGUI部品がiOS用のものとだいぶ違うらしい。
たとえば、MacOSだとテーブルはNSTableViewを使うんだけど、
このあたりのサポートがなかったりする。
griffonでQRコードジェネレータを作ってみた
macでQRコードを生成するツールZebraがあって、
便利に使ってたんだけど、URLを変更するときにいちいち別の画面を開かないといけないのが面倒だったんで、QRコードジェネレータを作ってみた。
Zebraでもショートカットキーをつかえば簡単にできるけどね。
バイナリはここから
https://bitbucket.org/cnaos/quickqrgen/downloads/qucickQrGen-0.1-jar.zip
ソースコードはここに。
https://bitbucket.org/cnaos/quickqrgen/src
参考にしたのはこのあたり。
- http://www5.ocn.ne.jp/~coast/programming/groovy/griffon.html
- http://beta.mybetabook.com/showpage/4f27bb060cf26106dca875c4
QRコードジェネレータ部分はgoogleのzxingを使いました。
GitHub - zxing/zxing: ZXing ("Zebra Crossing") barcode scanning library for Java, Android
結構作るのに手間取ったけど、
groovyのswing builderの使い方とか、
Javaのswingのあたりの基礎力が足りないんだろうな。