ErgoDash Build Log 5

このほど、 ErgoDash を組み立てました。

最終的にはちゃんと組み立ては終了し、実際に使い始めています。もしErgoDashを作ってみようかな、とお思いの方が今後いらっしゃった際に、僕の経験が少しでもお役に立てるように、Build Logを日々残しておきました。このエントリは、その第5回です。

  1. ErgoDash Build Log 1
  2. ErgoDash Build Log 2
  3. ErgoDash Build Log 3
  4. ErgoDash Build Log 4
  5. ErgoDash Build Log 5
  6. ErgoDash Build Log 6
  7. ErgoDash Build Log 7
  8. ErgoDash Build Log 8
  9. ErgoDash Build Log 9
  10. ErgoDash Build Log 10

2020/08/23

いよいよUnderglow LED用のWS2812Bの表面実装をするタイミングが来ました。しかし、表面実装はMOSFETを苦労したこともあり、そしてWS2812Bは熱に弱くすぐに壊れる、というBuild Logが多いこともあり、かなり躊躇しています。

届いたWS2812Bです。

MOSFETに引き続き、すっごく小さいです。やはり、透明ビニールでフタがされているので、それをピンセットで剥がして、WS2812Bを取り出します。

裏側には、4つのピンが付いています。すごく小さい!この足をそれぞれハンダ付けすると思うと、ゾッとします。

さすがにぶっつけ本番は、避けたいです。WS2812Bを余分に買ってあるので、1つもったいないですが、練習用基板を使って、ハンダ付けの予行練習をしたいと思います。

ただ、練習用基板は小さくてランドが限られているので、前に試したところのハンダを、吸い取ってみたいと思います。これも練習です。ハンダ吸い取り線を買ってあったので、それを使います。

WS2812Bを取り付ける練習に合う箇所に盛ってあるハンダを、吸い取ってみます。

まず、吸い取り線を、吸い取りたいハンダの盛りの上に被せて、その上からハンダごてを押し当ててみます。

これを何回か繰り返すことで、キレイにハンダを吸い取ることができました。

では、WS2812Bのハンダ付けをやってみます。が、ここで、フラックスを使ってみます。フラックス入りのハンダを使ってはいるのですが、それに加えて、予めフラックスを塗っておいてから、ハンダを乗せてみたいと思います。つまり、予備ハンダを盛りません。

あと、動かないようにマスキングテープでWS2812Bを固定してからハンダ付けしました。今考えると、MOSFETもそうすれば良かったな、と後悔してます。

ハンダごての温度は、今までは270度でやってましたが、220度まで下げました。手順としては、ハンダごてにハンダを溶かして乗せて、それをランドとピンの上に載せる、という流れでやってみました。

一見するとうまくいってそうですが。。。

よく見ると、ハンダが玉になってしまってます。いわゆる「イモハンダ」かなと。これでもおそらくはランドとWS2812Bは導通してると思うので実用上は大丈夫かなとは思いますが、もう少しキレイにしたいところです。こちら側は、何回かこて先をピンに当ててしまっているので、おそらく熱もかなりLEDに伝わってしまったと思います。きっと、壊れてしまっていても仕方ないかな、と。

反対側もやってみました。今度は、ハンダごてにハンダを乗せて、それをランドとピンの上に移す時に、「1秒以内で1回のみ」という制限でやってみました。

さっきよりは、イモハンダにはなってないかな、と。でも、ちゃんと付いているか、不安が残る練習となりました。結果的には、この練習くらいハンダを盛ってちょうど良かった、となるのですが。。。

練習後、いざ本番です。まず、基板にWS2812Bをマスキングテープで固定していきます。

マスキングテープの太さだと太すぎるので、4等分くらいに切ってから貼っていきます。

WS2812Bは、4つの角の1つに三角の切れ込みがあります。この切れ込みと、基板上にもある三角マークと方向を合わせることが必要となります。方向を間違えないように注意しながら、そして4つのランドの中央にちゃんと位置するように、慎重にマスキングテープで固定します。

今回は、さっき練習で行った通り、フラックスを薄く塗ってから、ハンダ付けを行います。

そして、1つ目のWS2812Bの4つのピンの一つだけを、ハンダ付けします。その際、練習通りに、まずハンダごての先にハンダを溶かし、それをLEDとランドに流し込む、という手順を行っていきます。その手順を、1回につき数秒、できれば1秒以内で行うようにします。

が、これが実際にやってみると、なかなかうまくいきません。1秒以内、と自分で決めたルールを守っていると、ハンダごてから端子にハンダが移動することがほとんどなく、結局数秒して「時々移動することがある」程度でした。できるだけWS2812Bの温度を上げたくなかったので、ハンダが移動しなかった場合は、そのまま放置して次のWS2812Bに移る、そして一通り終えた後に、再度うまくいかなかった箇所を順番にやっていく、という感じで行っていきました。

そうやって、WS2812B全部の4つの端子にハンダを乗せ終わりました。

ここまでくれば、Pro Microを取り付けて、PCにつなげば、きっとWS2812Bが光るはずです。それを行うために、Pro Microに再度ファームウェアを書き込む必要があります。

一昨日行ったファームウェアの書き込みの手順をもう一度行うのですが、この際にUnderglow LEDとBacklight LEDを光らせるための設定を行います。まず、GitHubからCloneしてきたディレクトリの中に、ErgoDash向けのディレクトリがありますので、そこまでTerminalで移動します。

$ cd keyboard
$ cd qmk_firmware
$ cd keyboards/ergodash

更に、キーマップがあるディレクトリまで潜ります。

$ cd rev1/keymaps

ここにはいくつかのキーマップ向けのディレクトリがあるのですが、自分のキーマップを定義するために、今回は default ディレクトリを丸ごと yoichiro という名前でコピーしました。

$ cp -r default yoichiro

そして、yoichiro ディレクトリ内の rules.mk ファイルを以下のように編集します。

BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = no

この設定変更を有効にするために、ビルドを行います。

$ cd ../../../.. (qmk_firmware ディレクトリまで戻る)
$ ./util/docker_build.sh ergodash/rev1:yoichiro

これにより、defaultキーマップではなくyoichiroキーマップがビルドされます。最後に、これをPro Microに書き込みます。

$ sudo ./util/docker_build.sh ergodash/rev1:yoichiro:avrdude

前回同様、Pro MicroのピンをショートさせてResetすることで、デバイスが認識されて書き込みが行われます。これを、2つのPro Micro両方とも行います。

では、いよいよ動作確認です。基板にスプリングピンヘッダを挿し、その上にPro Microを置きます。そして、USBケーブルでPro MicroとPCを繋ぎます。。。

がーん、期待と違って、WS2812の最初の1つだけしか光りませんでした。

ここで、僕がまず思ったことは、「あー、何度もハンダ付けをやり直してしまったせいで、WS2812BのICチップが壊れてしまった。点灯しているWS2812Bの次のものを取り外さなければ!」と。この時点で、僕は冷静ではなくなっていたと思います。

「外さなければ」と思い込んでしまったので、練習の時に最初にやった「ハンダ吸い取り線でハンダを吸い取る」ことを2つ目のWS2812Bに対して試みました。もう壊れてしまったと思い込んでいるので、熱を高くかけてでもハンダを吸わなければ、と思い、ハンダごての温度を220度から320度に上げました。いま振り返ると、一気に100度も上げてるんですよね。

それでも、なかなか吸い取り線にハンダが移動してくれません。結局、そのWS2812Bの取り外しを一旦諦めました。とはいえ、壊れたと思っているので、どうしようもなく。しばらく途方に暮れました。家族が外で遊んでいたこともあり、一旦作業から3時間くらい離れました。

夕食後に、放置していた作業場に戻り、ふと「結局うまくいかないままだよなぁ、でも、一回通電させてみるかな」となぜか思い、再度Pro Microを挿してPCに繋ぎました。すると・・・2つ目のWS2812Bが点灯したのです!

つまり、点灯しなかった理由は、高熱のせいでWS2812Bが壊れたのではなく、熱で壊れることを避けるがためにあまりにもビビってしまい、ハンダ付けが不十分だっただけ、ということだったのです。取り外そうとして吸い取り線まで持ち込んでいたのに、結果として「うまくハンダ付けできた状態」になっていたわけです。

ここでやっと気がつきました。「不必要に高熱で壊れることを恐れる必要はない」「270度にて今まで通りのハンダ付けを行って、確実にハンダが乗ることを優先した方が良い」ということを。

他にも3つほどWS2812Bが点灯していない状態でしたが、どれも270度でハンダ付けをやり直す(既に行った端子にハンダごてを押し当て、盛られていたハンダが溶けた瞬間に、ハンダを新規に流し込み、1秒ほど待ってハンダごてを離す)ことで、無事全てのWS2812Bが点灯しました。

これを見たときは、本当に嬉しかったです。一旦は絶望していたのですが、諦めないで本当に良かった、と。

ここでもう一つ、Backlight LEDの確認もしてみました。通電している状態で、3mm LEDをキースイッチの下にあるLEDの穴に、極性を間違えないように差し込んでみます。結果は、NGでした。点灯しません。

またもや絶望感となりましたが、心当たりがあるとすれば、昨日行ったMOSFETがちゃんとハンダ付けできていないんじゃないか、ということです。WS2812Bと同じように、270度設定でハンダ付けをやり直してみました。

その結果、無事Backlight LEDも点灯することを確認することができました。

これで、今回のErgoDashの最大の壁だと思っていた、WS2812BとMOSFETの表面実装を乗り越えることができました。本当に良かった。。。

今日は片方の基板だけで力尽きてしまいました。明日は、同じことをもう一つの基板で行おうと思います。教訓としては「ビビらずに今まで通りのハンダ付けをする」です。引き続き頑張りたいと思います。

後日談として、3mm LEDが点灯したということは、ここでMOSFETを破壊した、ということだったようです。実は・・・失敗していたのです。

ErgoDash Build Log 6 に続く。。。

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

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて