Ergo42(Towel)をLEDテープでアンダーグロウ化した

はじめに

LEDテープを使ってErgo42Towelのアンダーグロウ化に成功したので、記録を残しておきます。

SK6812miniを搭載したLEDテープを利用したので、Ergo42本体に付属しているスペーサーを交換せずにアンダーグロウ化できました。

※この改造は自己の責任で行ってください。

f:id:cnaos:20191230174347j:plain

参考にさせて頂いたもの

目次

必要な材料

  1. 超極細 NeoPixel MiniテープLED(テープ幅4mm SK6812)
    • LEDパラダイスで購入(https://www.led-paradise.com/product/2277)
    • よくあるLEDテープはテープ幅が10mmですが、キースイッチの端子の間を通すために超極細 NeoPixel MiniテープLEDを選択
    • 小さくなればなるほどLEDテープのはんだ付け用のランドも小さくなるので注意。
  2. AWG24相当の配線
    • 今回つかったのは住友電工製のイラックスA
  3. カプトンテープ
    • 基板のスイッチをはんだ付けした部分とのLEDテープ絶縁のため。
    • 6mmと10mmを使った。
  4. フラックス
    • LEDテープのはんだ付け用のパッドおよび導線に塗ってはんだ付けしやすくする。

必要な工具

  1. ワイヤストリッパ
  2. 曲尺(かねじゃく)
    • LEDテープをコの字型に配置したので直角を作るのと、縦と横のLEDテープの相対位置を決めるのに利用した。
  3. ピンセット
    • 配線を持ってはんだ付けするために必要。

作業手順

LEDテープを接続する端子の特定

  1. Ergo42のKiCadデータを見てVCC, GND, TX0, TRRSジャックのXTRA DATAを見つけておく。
  2. Ergo42左手側のTX0から左手側LEDテープのData-INへ、
  3. 左手側LEDテープのData-OUTからErgo42左手側のTRRSジャックのXTRA DATAへ
  4. Ergo42右手側のTRRSジャックのXTRA DATAから右手側LEDテープのData-INへ
左手側

f:id:cnaos:20191231151139p:plain
Ergo42Kicad左手
f:id:cnaos:20191231151224p:plain
Ergo42Kicad左手拡大
f:id:cnaos:20191231151400j:plain
Ergo42実基板左手

右手側

f:id:cnaos:20191231151531p:plain
Ergo42Kicad右手
f:id:cnaos:20191231151641j:plain
Ergo42実基板右手

LEDテープ配置の検討と切り出し

  1. Ergo42の基板に切り出す前のLEDテープを重ねて、どのように配置するか検討する。
  2. LEDテープから利用する分のLEDテープを切り出す
    • 今回は片手分を 縦LED3個x2, 横LED6個 x1にした。
    • 今回は4mmのLEDテープを利用したので、スイッチの端子の間に通すことができた。

※LEDテープの側面がキースイッチの足に触れないように注意する。

f:id:cnaos:20191229192042j:plain
LEDテープの幅の比較
f:id:cnaos:20191231152356j:plain
極細NeoPixel RGBテープLED
f:id:cnaos:20191231152507j:plain
超極細 NeoPixel Mini テープLED
f:id:cnaos:20191231152647j:plain
LEDテープの配置の検討

LEDテープ同士のはんだ付け

LEDテープ同士をはんだ付けしたらErgo42の基板上においてみて問題ないかチェックしつつやると良い。

  1. 切り出したLEDテープを実際に配置する場所において、曲尺(かねじゃく)で縦のLEDテープと横のLEDテープの相対位置を調べる。
  2. はんだ付けマットの上にLEDテープを移して、調べたLEDテープ同士の相対位置を再現して、マスキングテープで固定する。
  3. 配線材を切り出す。
    • 今回利用した配線材はあまり柔軟性が無いものだったので、事前にちょうどよい長さになるように切り出した。
  4. 配線材をはんだ付けする。
    • LEDテープ側にはんだを盛っておく。
    • 剥いた配線材にもフラックスを塗っておく。
    • はんだがブリッジしやすいので注意。
  5. はんだ付けした部分がブリッジしていないかテスターの導通モードを使って確認する。
    • 真ん中のData-IN/Data-OUTとVCCは導通していないこと。
    • 真ん中のData-IN/Data-OUTとGNDは導通していないこと。
    • 接続したLEDテープ同士のVCCとVCCは導通していること。
    • 接続したLEDテープ同士のGNDとGNDは導通していること。
    • 接続したLEDテープの末端同士のData-INとData-OUTは導通していないこと。

f:id:cnaos:20191231153021j:plain
LEDテープ同士のはんだ付け

Ergo42とLEDテープのはんだ付け

TX0へのはんだ付けはProMicroを外して、他の端子にはんだが付着しないようにカプトンテープなどで保護しておく。 また短い導線からはんだ付けすると良い。

  1. Ergo42の基板上にLEDテープを仮止めする。
  2. 配線材をちょうどよい長さになるように切り出す。
  3. 配線材をLEDテープにはんだ付けする。
  4. LEDテープから出ている配線をErgo42の基板にはんだ付けする。

Ergo42の端子とLEDテープが正しくはんだ付けされているかテスターで導通チェック

  • 左手側
    • Ergo42のVCCとLEDテープのVCC
    • Ergo42のGNDとLEDテープのGND
    • Ergo42のTX0とLEDテープのData-IN
    • LEDテープのData-OUTとErgo42のXTRA_DATA
  • 右手側
    • Ergo42のVCCとLEDテープのVCC
    • Ergo42のGNDとLEDテープのGND
    • Ergo42のXTRA_DATAとLEDテープのDATA-IN

Ergo42のアンダーグロウLED対応ファームウェアを書き込む

RGBLIGHT_LIMIT_VALがデフォルト値のままだと電力不足で不安定になるため、最大輝度に制限を入れる。

デフォルト値のままRGBLED_NUMを14から24に増やしたところ、 一瞬だけテープLEDが光って消えるようになり、リセットスイッチを押してもファームウェアの書き込みすらできなくなってしまった。 ProMicroを取り外して、RST端子とGND端子をピンセットで短絡させ、ファームを書き込んで戻したところ問題なく動作するようになった。

※TRRSケーブルを外してファームウェアを書き込む

※左手、右手とも同じファームウェアを書き込む。

  1. qmk_firmwareのkeyboards/ergo42/keymaps/default-underglow以下のconfig.hに以下の変更を入れる
    • RGBLED_NUMを14から24に変更する。
    • 「#undef RGBLIGHT_LIMIT_VAL」を追加する
    • 「#define RGBLIGHT_LIMIT_VAL 128」を追加する。
  2. コマンドラインから「make ergo42:default-underglow:flash」を実行してファームウェアを書き込む。

テープLEDを仮止めして動作チェック

テープLEDのはんだ付け部分がErgo42のはんだ付け部分に接触しないように、マスキングテープなどで覆ってから動作チェックを行う。

まずは左手側のみで動作チェックを行う。

f:id:cnaos:20191230140001j:plain
左手側のみで動作チェック

問題なければ右手側もTRRSケーブルで接続して動作チェックを行う。 右手側だけではテープLEDの動作チェックはできない。

f:id:cnaos:20191231154141j:plain
右手側も接続して動作チェック

Ergo42の基板にカプトンテープを貼ってパターンとスイッチのはんだ付け部分を絶縁

f:id:cnaos:20191230171731j:plain
カプトンテープで絶縁

LEDテープを貼って完成

f:id:cnaos:20191230173743j:plain

環境センサviewerというAndroidアプリを作った

どういうアプリ?

Omronの環境センサ2JCIE-BL01の測定データの読み取り、測定データのグラフ表示、測定データのエクスポートができるアプリです。

環境センサ2JCIE-BL01を使ったデータ観測の例では、環境センサの動作モードをデータ保存なしのビーコンモード(IM/EP)に変更して観測する例が多いのですが、他のアプリとの同時利用も想定してデータ保存ありのモードでの運用ができるようにしました。

play.google.com

できること

  • 環境センサの現在の測定データの読み取り
  • 環境センサ内の過去の測定データの読み出し
  • アプリ内に取り込んだ測定データのグラフ表示(最大二週間まで)
  • アプリ内に取り込んだ測定データのTSVエクスポート
  • 環境センサの測定間隔の変更&内部タイマー設定

f:id:cnaos:20191204230551p:plainf:id:cnaos:20191204230607p:plainf:id:cnaos:20191204230628p:plainf:id:cnaos:20191204230634p:plain
スクリーンショット

作った動機

  • スキルアップ
    • 仕事でAndroidアプリのメンテナンスをしてるけど、機能追加などの開発が乏しく積極的にコストをかけてJetpackの導入やKotlinへの置き換えができないため、新しい技術のスキルが積めない。
  • KotlinでAndroidアプリを1本つくってみたい。
  • 既存アプリへの不満
    • 複数の環境センサーのデータが読めない。
    • データのエクスポートができない。
    • 動作が不安定
    • わざわざアカウントつくらないと使えない
    • 日時設定にタイムゾーン周りのバグがあるらしく、時刻が9時間ずれる。

アプリを作る過程で習得したこと

  • Kotlinをそこそこ使えるようになった
    • Javaと比べていろいろと書きやすい気がする。
      • 匿名クラスまわり
      • いちいちgetter, setterを書かなくていい。
      • mapやlistをリテラルで書ける
    • Kotlinイイね。
    • Kotlin coroutine
      • なんとか使えてるという程度
  • AndroidでBLEデバイスを扱えるようになった
  • Omronの環境センサを扱えるようにった
    • 環境センサから測定データを読み出す
    • 環境センサから読みだしたデータを加工して表示する
    • 環境センサから読みだしたデータをアプリ内DB(Room)に保存する
    • アプリ内DBに保存したデータを利用して測定データの差分読み込みを行う
  • Android Jetpackを扱えるようになった
    • DataBinding
    • LiveData
    • Room
    • Navigation
  • その他
    • グラフ描画ライブラリandroidplotの利用

必要になりそうな新しい技術を、別の実験的なプロジェクトで試してみて、おおよその使い方が分かって行けそうだと思ったらアプリに組み込むという事を繰り返していました。

苦労したところ

測定データの差分取り込み

とくに何も考慮しない、アプリ内の取り込み済みのデータと、環境センサの現在の測定データまでの差分取り込みだけは割と楽に実装できましたが、 環境センサのリングバッファ構造を考慮した差分取り込みのための工夫とか、 環境センサが測定間隔の変更などを行うと最新ページが0にリセットされるので、その後どうやって差分取り込みを行うかとかで2,3回くらい内部の方式を変更しました。

グラフ表示に使ったAndroidplot

サンプルは豊富にあったんですが、日時でグラフを表示する例がなくて試行錯誤が必要でした。 まだ表示に改良の余地があるかなと思います。

Android BLEの133エラー

やっぱりよくわからん。 端末のbluetoothのON/OFF切り替えで直るときもあるし、だめなときはだめだし。

アプリに組み込んだ便利だったライブラリ

  • peko
    • https://github.com/deva666/Peko
    • AndroidPermission用のライブラリ
    • Perrmission関係のコールバックをcoroutineやLiveDataなどに置き換えられる。神
    • 特にViewModel側でPermissionが必要な処理を一旦Activityに戻して処理する必要がある場合に便利。
  • able
  • androidpolot
    • http://androidplot.com/
    • グラフの表示用
    • MPAndroidChartでは精度がfloatしか使えず、今回の用途には不十分だったので。
  • databinding-ktx

つくってみて

ちょっとずつですが、機能が増えていくのが楽しかったです。

XD75Reを組み立てた

f:id:cnaos:20191016213535j:plain
XD75Re

今回のキーボードの構成

組み立て

はんだ付け箇所はなし、スイッチはめてネジ止めするだけのハズだったんですが、ポリカーボネートケースの加工が必要だったのと、使用したステンレスプレートの制限から、PCBをケースにネジ止めした後にスイッチを固定する必要があるなどハマりポイントがありました。

ポリカーボネートケースの加工

XD75Reにはケース側の面にキースイッチ用のソケットとダイオードがついているため、 そのままだと60%のポリカーボネートケースについているネジ止め用の突起が邪魔になって組付けできませんでした。

どこかで買ってきた3本組(平、丸、半丸)で売ってるヤスリを使って、ネジ止め用の突起を削って対応しました。

※PCBのリビジョンや、ケースのモノによっては加工方法が変わるかもしれないので、現物に合わせてください。

加工箇所

  • ネジ止め用の突起を削る 3箇所
  • USBケーブル接続用の口の拡張

f:id:cnaos:20191016213750j:plain
ケースの加工箇所

左上のネジ止め用の突起を削る

赤がMXソケット用に削った部分で、 緑がダイオード用に削った部分です。

f:id:cnaos:20191016214054j:plain

f:id:cnaos:20191016214120j:plain

f:id:cnaos:20191016214134j:plain

真ん中のネジ止め用の突起を削る

ガタつかないようにするには、 ここが一番重要かも。

MXソケットに対応するためにかなり深くまで削ります。

f:id:cnaos:20191016214256j:plainf:id:cnaos:20191016214318j:plainf:id:cnaos:20191016214330j:plainf:id:cnaos:20191016214356j:plain

右上のネジ止め用の突起を削る

ここもMXソケットに対応するために、かなり深くまで削ります。 f:id:cnaos:20191016214507j:plainf:id:cnaos:20191016214520j:plain

USBケーブル接続用の口の拡張

手持ちのケーブルだと根本までちゃんと刺さらなかったので、ヤスリで削って穴を拡張しました。

f:id:cnaos:20190907183836j:plain
削って開口部を大きくしたUSBケーブル接続用の穴

ポリカーボネートケースへの組付け

XD75Re用のステンレスプレートですが、空いているネジ穴が小さすぎて、PCBとポリカーボネートケースを止めるためのネジをステンレスプレートの上から通すことができません。

また、ステンレスプレートに空いている穴を通るような ドライバーも手持ちではありませんでした。

つまり、PCBとステンレスプレート、キースイッチを組み付けた後ではポリカーボネートケースに固定することができません。

先にPCBをポリカーボネートケースにネジで固定したあとで、キースイッチを組み付ける必要がありました。

はんだ付けが必要なタイプのXD75Amだったら詰んでたかも。

f:id:cnaos:20190907184324j:plain
ステンレスプレート

PCとの接続

macとXD75ReをType-C to Type-Cのケーブルで接続しても、電源が入らないみたいでキーボードを認識しませんでした。

Type−C to Type−Aメスの変換ケーブルをかまして Type−C to Type−Aメスの変換ケーブル --> Type-Aオス to Type-Cケーブルという形だと電源が入りました。

kbdfansのkbd75v2では同じType-C to Type-Cケーブルで認識しているので、XD75Reの方の問題だと思います。

解体して確認するのが手間なので確認してないんですが、どうもXD75ReのType-Cコネクタ側にUSBデバイス(Upstream facing port (UFP))として認識させるために必要なプルダウン抵抗が入っていないらしい。

community.cypress.com

キーボードブリッジを作った

Amazonに売ってるクリアーのやつはやたら高いし、 アクリル板1枚だしレーザー加工機で作れそうだなって思ったので作ってみた。

f:id:cnaos:20190915214234j:plain
キーボードブリッジ
f:id:cnaos:20190915175236j:plain
13インチ mac book proに載せたところ

設計

mac book pro 13インチのおおよその寸法を採取

  • 本体の横幅が300mm
  • 本体の上端からキーボードの下端までの縦幅が120mm
  • トラックパッドの横幅が135mm

PFUのを参考にトラックパッドにかからないように適当に下に20mm伸ばして、凹みを作る。

できたデータ

github.com

※見やすいように線幅を広めにしてあります。 レーザー加工機の仕様に合わせて線幅や線の色を調整してください。

切り出しデータの作成ソフトと出力形式

切り出しデータは利用するレーザー加工機に合わせて作る必要があります。

私がよく利用しているFabLab世田谷のレーザー加工機では、Adobe Illustratorで切り出しデータを読み込める形式になっていないといけないため、Adobe Illustratorを使うのがまっとうな方法なのですが、 年に数回程度のちょっとしたレーザー加工のデータを作るのに使うには値段が高すぎるため、Affinity Designerを使って以下のようなフローで加工しています。

  1. Affinity Designerを使ってデータを作成
  2. データをPDFで出力してUSBメモリに保存
  3. FabLabのAdobe IllustratorUSBメモリに保存されたPDFを読み込み
  4. Adobe Illustratorで最終的な調整を行って加工データを保存

これまでの経験から言うと、なんだかんだでPDFが一番安定して読み込めるみたいです。

Inkscapeから出力したPDFでも加工できなくは無いんですが、Inkscape自体の操作がいろいろとつらいのでAffinity Designerを使っています。

テスト印刷

紙に印刷してmac bookの実物に合うか試してみようとして、セブンイレブンネットプリントで出力してみたところ、微妙に縮尺がずれていたり、端っこがかけていたりとあんまり参考にはなりませんでした。

A4ギリギリサイズのデータだったので、余白のあるB4の紙の中央に印刷したらなんとかなったのかも。

素材

  • アクリル板(270x320×3mm ガラスカラー)
  • ゴム足

東急ハンズでアクリル板を買ってきました。

東急ハンズには135x320x3mmの板があったようなので、 トラックパッド用の凹みとか角の加工とか気にしなければこれで間に合うかも。

はざいやさんだと 220x300x3mmのサイズのアクリル板があるけど、 余白がまったくなく加工が難しそうだったので、 今回は使いませんでした。

切り出し

FabLab 世田谷のレーザー加工機を借りて切り出しました。

※機器を利用するには事前に講習を受ける必要があります。

予約を入れて1枠45分 2000円で借りる事ができます。

結果

目論見どおりという感じです。

PFUのヤツとそんなに値段が変わらないけど、 まあガラス色がキレイなので良しとしよう。

自作キーボードのアンダーグロウ用アクリルの検討

はじめに

自作キーボードのアンダーグロウLEDがちょっと眩しすぎるのと、 光があまり広がらないので マット加工されたアクリルでもう少しなんとかならないかと、 色んな種類のアクリルでどのように見えるか比較してみました。

比較したアクリル一覧

  • 透明アクリル
  • 両面マット 透明 カナセライト #77300
  • 両面マット 乳半 コモグラス DFA2 446L
  • 片面マット ファンタレックス ドリーム D-707M
  • 片面マット ファンタレックス ドリーム D-710M

「透明アクリル」と「両面マット 透明 カナセライト #77300」

キット付属の透明アクリルと、 両面マット 透明 カナセライト #77300の比較です。

両面マットでも透明だとあんまり光が拡散しないみたいです。

f:id:cnaos:20190525222525j:plain

f:id:cnaos:20190525222553j:plain

「両面マット 透明 カナセライト #77300」と「片面マット ファンタレックス ドリーム D-710M」

ファンタレックス ドリームは 高透過、高拡散をうたうアクリルです。

www.clarex.co.jp

片面マット ファンタレックス D-710Mの方が、 両面マットの透明 カナセライト #77300よりも光が拡散しています。

f:id:cnaos:20190525222747j:plain

f:id:cnaos:20190525222759j:plain

「片面マット ファンタレックス ドリーム D-710M」と「片面マット ファンタレックス ドリーム D-707M」

D-710Mの方が透明度が高く、すごくうっすらPCBが見えてますが、 D-707MはほとんどPCBが見えません。

D-707Mの方がより光が拡散しています。

f:id:cnaos:20190525223826j:plain

f:id:cnaos:20190525223837j:plain

「片面マット ファンタレックス ドリーム D-707M」と「両面マット 乳半 コモグラス DFA2 446L」

あんまり違いがわかりません。

f:id:cnaos:20190525224011j:plain

f:id:cnaos:20190525224023j:plain

結論:アンダーグロウに良さそうなアクリル

「両面マット 乳半 コモグラス DFA2 446L」

  • 両面マットで扱いやすい
  • 値段が手頃
  • 光の拡散具合もファンタレックス ドリーム と比較しても遜色ない

Helixを組み立てる際に工夫した所とか失敗した所とか

はじめに

自作キーボードHelixを組み立てる際に工夫した所とか失敗した所を記録に残します。

モデルは「Helix ステンレス5行版バックライト 両手セット」、 キースイッチはkailhのロープロファイル茶軸と白軸です。

工夫した所

ステンレスプレートのバリ取り

指でステンレスプレートのエッジを触ったときにバリが気になったので、 ヤスリをかけてバリを取りました。

あと角の鋭さも気になったので、角もほんの少し削って丸くしました。

製造時にステンレスプレートの角にもうちょっとアールをつけてほしいかも。

ステンレスプレートの絶縁

同梱されていた絶縁シールがうまく貼れなかったので、100均で買ってきた手貼りのラミネートシールを加工して絶縁しました。

f:id:cnaos:20190407113129j:plain

helixのステンレス版のモデルを買うと絶縁用のシールも同梱されてくるんですが、 手先が器用ではなかったのでうまく貼れませんでした。 絶縁用のシール部分がかなり細くてしかも切れやすいんです。

あと、ボトムプレート用のステンレス板も絶縁のためにカプトンテープなんかを貼るといいらしいんですが*1、 幅の広いカプトンテープなんか持ってなかったんで、100均で買ってきた手貼り用のラミネートシールで代用しました。 加工は手間でしたが、割と硬めでしっかり貼れて、見た目もそんなに悪くなかったので気に入ってます。

手貼りラミネートシールを使った絶縁方法

ラミネートシールの厚い方(硬い方)をステンレス板に大雑把に貼って、 ステンレス板に沿ってカッターではみ出た部分を切り落とします。

ネジ用の穴は穴に沿ってデザインナイフを缶切りのように動かして開けます。

フィルムが一部だけつながったままで、きれいにはずれなかったときは、デザインナイフの刃をネジ穴に突っ込んで、 バリをとるような感じでグリッとやります。

刃がだめになるかもしれないので、切れ味の落ちた使い古しの刃を使ったほうがいいかも。

キースイッチのマウント用ステンレスプレートも同様にラミネートシールを貼り付けて穴を開けます。

ラミネートシールを貼った反対側からデザインナイフでキースイッチ用の穴をなぞって切り出します。

実際に組んでみてわかったんですが、ロープロファイルスイッチだと、 helixのPCBとキースイッチのマウント用ステンレスプレートとの間にはほとんど隙間はありません。 絶縁用のフィルムを貼らないとショートします。

失敗した所

熱でバックライト用LEDを壊した

はんだがよく流れて作業しやすいので、いつも270度の設定で作業しているんですが、 270度の設定ではんだ付けしていたら4個くらいLEDを壊しました。

多少作業性が悪くても220度の設定を厳守しましょう。

また、片側のバックライトLEDをすべてはんだづけしてから動作確認をしたら、 どこが壊れているのか特定するが難しく、点灯しないLEDを交換したり、その一つ前を交換したりとなかなか大変でした。

そこで、もう片方のPCBをはんだづけをする際に、以下のことを守ったら1つもLEDを壊すことなくはんだづけできました。

バックライトLEDを壊さないための対策
  • はんだごての温度設定は220度
  • フラックスは必須。ケチケチしないで基盤とLEDのパッドにたっぷり塗る。
  • 1個ずつ点灯するか確認しながらはんだ付けする。

点灯の確認にはhelixのled_testファームウェアを使いました。

マウントプレートにキースイッチを組み付ける際に、キースイッチの爪にダメージを入れてしまった

キースイッチがなかなかマウントプレートの穴に入ってくれないため、 力任せにに押し込んだ所、いくつかのキースイッチのトップ側の爪が外側に広がってしまいました。

この時点では爪は割れてはいなかったので、広がった爪を手で戻して組み付けなおしたのですが、 この時にダメージが入っていたらしく、キースイッチを半田づけした後で貝みたいに開いてしまいました。

f:id:cnaos:20190407150107j:plain
貝のように開いたキースイッチ

f:id:cnaos:20190413234205j:plain

f:id:cnaos:20190414001307j:plain

f:id:cnaos:20190413234319j:plain

f:id:cnaos:20190414000143j:plain

最終的に組み上がるまでにはんだ付けした後にキースイッチを5個交換しました。

キースイッチの組み付け対策(案)

おそらく次のような手順が良いのではないかと思いますが、 もう組み上がってしまったので、試すことができません。

また、キースイッチの組み付け時にPCBがたわみ、 バックライトLEDのはんだにクラックが入る可能性もあるので、 おすすめできないかも。

  1. 最初にマウントプレートに組み付けるのは、4隅と真ん中。
    1. キースイッチ用の引き抜き工具を使って、左右の爪を少し押し込んでやるとハマりやすいです。
  2. 4隅と真ん中をキースイッチのマウントプレートに組み付けたら、PCBと合体させる
  3. 4隅と真ん中のキースイッチをはんだづけ
    1. まず大雑把に4隅をはんだ付けして固定することでプレートとPCBの間を並行に保つ意図
  4. あとは真ん中から十字状にキースイッチを組み付ける。
    1. 組み付けの際に上から押し込むため、マウントプレートがPCB側に落ちる可能性があるので、なにか間に挟むものがあったほうがいいかも。
  5. 十字状に組み付けたキースイッチをはんだ付け。
  6. 外周部分を組み付けてはんだ付け。
  7. のこりの部分を組み付けてはんだ付け。

キースイッチをはんだ付けした後にフラックスクリーナーをかけてしまった

キースイッチをはんだ付けした後に、PCBに残っているフラックスをきれいにしようと スプレータイプのフラックスクリーナーをかけた所、溶けたフラックスがキースイッチ内に侵入してしまいました。

その結果、キースイッチの軸がベタベタになり、キースイッチの交換が必要ではないかと考える程度に軸の戻りが劣悪になってしまいました。

試行錯誤のリカバリ

何回かスプレータイプのフラックスクリーナーをかけてみたものの、ほとんど改善しませんでした。

刷毛で塗るタイプのフラックスクリーナーを軸の周りにたっぷり塗って、 何度もキースイッチを押しながらキムワイプで拭き取るというのを繰り返した所、 ほぼ問題がない程度には回復しました。

しかし、フラックスクリーナーを使ったせいで本来のキーの感触とは違うものになってしまったかもしれません。

その他

フラックスの利用

PCBのパッド部分の色からすると、金メッキ処理されているみたいですが、 フラックスを使わないとはんだの濡れ性が悪く、ツノがたちやすかったです。

使っているはんだとの相性もあると思うんですが、 私の使っているhakkoのヘクスゾールだとフラックスは必須でした。

KBD75v2を組み立てた

KBD75v2とは

f:id:cnaos:20190511232406j:plain

目次

どのへんが購入動機につながったのか?

  • 一体型
  • テンキーレス
  • カーソルキーがある
  • 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つのキーに対して複数のスルーホールが空いており、 この中から適切に選択しないとキーキャップがはまらなくなります。 そのため、必要なパーツが全て揃ってから組み立てた方が良いです。

f:id:cnaos:20190414100703j:plain
KBD75v2のPCBのスルーホール

PCBの動作チェック

実際に組み立て始める前に、PCBが問題ないか動作チェックを行いました。 キースイッチをやLEDを組み付けたあとでPCBがおかしい事に気づいても、リカバリが大変だからね。

  1. まずはPCに接続してみて、アンダーグロウのLEDが光るかどうか。
  2. 次にピンセットでキースイッチ用のパターンをそれぞれ短絡させて、キー入力が行われるかどうか。
  3. 最後にファームウェアのアップデートができるかどうか。

バックライトLEDの検討

アンダーグロウLEDはすでに実装されているけど、バックライトLEDがほしい。 キースイッチ用だと、2mmx3mmx4mmの角型LEDか、φ1.8mmのLEDが必要になるらしい。 遊舎工房近くのaitendoでどっちも取り扱っているので、数種類買って比較してみることにしました。

あと、キースイッチはkailhのbox軸にすることにしていたので、キースイッチ内部に入るかどうかも重要でした。

LEDの比較

  • 2x3x4白の透明
  • 2x3x4白の拡散
  • 2x3x4青の透明
  • 2x3x4赤

で比較してみました。

キースイッチをはんだ付けする前にバックライトLEDの動作確認を行うためには、 PCBの動作確認と同じようにピンセットで短絡させる必要があります。

デフォルトのファームウェアだとバックライトLED関係のキーは以下の通りです。

www.reddit.com

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を仮実装してみたところ

f:id:cnaos:20190505210455j:plain
PCBにLEDを仮実装してみたところ

キースイッチなしでバックライトLEDを光らせてみたところ

f:id:cnaos:20190505211147j:plain
キースイッチなしでバックライトLEDを光らせてみたところ

キースイッチをおいてバックライトLEDを光らせてみたところ

f:id:cnaos:20190505211253j:plain
キースイッチをおいてバックライトLEDを光らせてみたところ

キーキャップもつけてバックライトLEDを光らせてみたところ

f:id:cnaos:20190505211537j:plain
キーキャップもつけてバックライトLEDを光らせてみたところ

バックライト用LEDの決定

2x3x4白の拡散が一番光ってたっぽいけど、これはaitendoの店頭に在庫が少なくて 必要数が揃わなかったので、2x3x4白の透明で行くことにしました。

バックライト用LEDの取り付け方法について

KailhBoxタイプのキースイッチだと、キースイッチの中にバックライト用LEDを入れる必要があるので、 バックライト用LEDを先にPCBに挿してからスイッチを組み付けました。

先にキースイッチをはんだ付けしてしまうと バックライト用LEDの取り付け、取り外しができなくなるので、 キースイッチのはんだ付けはバックライト用LEDのはんだ付けと点灯確認が終わったあとに行います。

2x3x4の角型LEDだとPCBに直付けする方法A案と、 Boxスイッチのトップ側カバー部分まで背伸びさせる方法B案があって、 あんまり光り方が変わらないみたいに思えたので、 組み立てが楽そうなBoxスイッチのトップ側カバー部分まで背伸びさせる方法を選択しました。

f:id:cnaos:20190512152224p:plain
2x3x4LEDの実装方法:A案

f:id:cnaos:20190512152118p:plain
2x3x4LEDの実装方法:B案

組み立て

ほぼGH60クローンと同じ組み立て手順でした。 2回目になりますが、asciiの組み立て記事がとても参考になりました。

https://ascii.jp/elem/000/001/612/1612870/index-5.html

今回はバックライトLEDをキースイッチの取り付け前に実装する必要があったので、 間違いそうな1uキー以外の箇所のLEDのはんだ付けを先に行いました。

キーレイアウトを検討

キースイッチにキーキャップをはめて、 PCBに置いてみて検討します。 この段階でははんだ付けしません。

  • 最下段
  • スタビライザーを使うあたり
  • 選択式になっている部分

f:id:cnaos:20190505200843j:plain
キーレイアウトの検討

f:id:cnaos:20190505201621j:plain f:id:cnaos:20190505203050j:plain

キースイッチのマウントプレートに1u以外のキースイッチを組み付け

1u以外のキーは位置が決まってないので先に組み付けてずれないようにします。

キースイッチのマウントプレートに最上段の両端のキースイッチを組み付け

マウントプレートの四隅のキースイッチを組み付けておいて、 PCBとスイッチを組み付けたマウントプレートを合体させるときにズレたり、反ったりないようにします。

f:id:cnaos:20190505204502j:plain

スタビライザーのルブ

PCBから外した状態で事前にスタビライザーにドライファストルブを塗布しておきました。

カチャカチャという音はあんまり軽減されませんが、 スタビライザーの戻りがスムーズになるので使っています。

ごらんの通り、白く粉を吹くので、PCBから外して処理したほうが良いです。

f:id:cnaos:20190505220134j:plain

スタビライザーの設置

スタビライザーはスタビライザーの爪をPCBに引っ掛けて固定するタイプのものを使ったんですが、 斜めになりやすいので設置したあと斜めになっていないか確認します。

f:id:cnaos:20190505214903j:plain

キースイッチを組み付けた部分に対応する箇所にLEDを差し込む

LEDを差し込むスルーホールも選択式になっているので注意が必要です。 概ねLEDの極性の方向は統一されているみたいでした。

PCBにキースイッチを組み付けたマウントプレートを乗せて合体させる

  • キースイッチの足がすべてPCB側に出ているか確認。
  • マウントプレートとPCBが全ての辺で並行になっているか確認。

合体させるだけです、リカバリが必要になるかもしれないので、 キースイッチはまだはんだ付けしません。

頻繁に裏返したり戻したりすることになるので、 マスキングテープでPCBとマウントプレートを固定しておきます。

f:id:cnaos:20190505204533j:plain

PCBを裏返してバックライト用LEDをはんだ付け

LEDの足を曲げて固定していなかったので、LEDがプラプラしていましたが、 バックライト用なので、多少曲がってハンダづけされていても気にしないことにしました。

電源を入れてバックライトLEDの動作を確認する

のこっている1uキー部分のLEDを差し込む

1uキーの部分はLEDの極性にだけ気をつければOKです。

のこっている1u部分のキースイッチをマウントプレート&PCBに組み付け

キースイッチをPCBと合体させたマウントプレートに押し込んで組み付けます。 キースイッチがハマりにくかったら、キースイッチの引き抜き工具などで爪を押してキースイッチを組み付けます。

PCBを裏返してLEDをはんだ付け

外側のLEDを1列ずつはんだづけして、終わったらその列のLEDの足を切る を繰り返してはんだ付けしました。

LEDのアノード側とカソード側ではんだの濡れやすさが違う気がするのですが、 半導体の極性となんか関係あるんでしょうか?

電源を入れてバックライトLEDの動作を確認する。

f:id:cnaos:20190506121645j:plain

キースイッチをすべてはんだ付け

一方向から順にはんだづけしていくと、マウントプレートとPCBが平行にならず、 片側で浮いたりしやすいので、

  1. 四隅と中央をはんだ付け
  2. 十字になるように中央から外側に向かってはんだ付け
  3. 田の字になるように外周をはんだ付け
  4. 残りの部分をはんだ付け

みたいな感じではんだ付けしていきます。

PCBで気になった所

PCBの最上段のスルーホールのサイズが他の段のスルーホールと比べて大きいようです。 設計ミスなのかも。

まあ、はんだ付けで組み立てる上では問題はありませんでしたが、 ベリリウム銅のソケットなんかを使おうとする場合はちょっと注意が必要だと思います。

ファームウェアの書き込み

promicroを使ったやつだとavrdudeで書き込むパターンが多いですが、 これはdfuで書き込むみたいです。

github.com

公式の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のキーキャップとマッチしていてよかった。