天高工房

キーキャップに印字して遊んだり電子工作して遊んだりしたことを書くかもしれません。

慣れないはんだ付けの前に知っておくとよいかもしれないやつ

思っているよりも、人ははんだ付けに関して何も知らないということを知ってしまったので、はんだ付けをする前に読んでおくとだいぶ楽になる資料を雑にまとめておきます。やっぱりだいたいノセ精機。

忙しい人のための短文

  • こて先は320度(FX-600)
  • 母材をまず温める
  • 母材が温まったらはんだを入れて3秒待ってこてを離す
  • 綺麗な裾野が成功の証

いつもの

ノセ精機が無料で公開しているはんだ付け基礎講座です。正直これを読むだけでよいです。

noseseiki.com

とりあえず読むべき章

とりあえずシャドーはんだづけやっとけば作業方法は分かるとおもいます。

noseseiki.com

あとよいはんだ付け状態/悪いはんだ付け状態を見ておいてください。

noseseiki.com

残りは必要そうな章を必要そうなときに読む「遅延評価的学習」でよいと思います。「あの情報はあそこにある」というのだけはどこかに記録してください。

  • 11 シャドーはんだ (はんだ付けの1.2.3.4)
  • 01. はじめに・・(はんだ付けが上手にできないのは腕のせい?)
  • 05. フラックス
  • 08. 半田の仕上がり状態
  • 09. 不良付け半田
  • 13. 半田除去
  • 14. リード線の端子への半田付け
  • 15. チップ部品の半田付け
  • その他必要に応じて

蛇足

よくある勘違い

  • 溶かしたはんだが固まれば接着される
  • 溶接((広義では間違いではないが狭義では間違い))
  • とりあえず覆えばよい
  • 不安だからはんだを多めに入れる

はんだ付けの科学(?)

  • 母材とはんだの間に合金層が形成されることで接合される
  • はんだの量が極端に少なくない限りは多少によらず合金層の厚さは変わらない
  • 合金層を形成するには250度で3秒間

以上よりやること

  • まず母材を温める
  • 母材が温まったらはんだをいれる
  • 3秒待ってから離す

namecard2x4 rev2の組み立て

namecard2x4 rev2の組み立て方です。

rev1はこっち。

skyhigh-works.hatenablog.com

rev1から変わったこと

  • 天高の名刺ではなく、"namecard2x4"という名前を前面に出すようにしました
  • miniUSBの向きが短辺方向から長辺方向になりました
  • miniUSBがぶつかる部分の基板を削り、高さを低くできるようにしました
  • ダイオードの向きが横向きになりました
  • ダイオードがすべて同じ方向を向きました
  • デカマイクロの下に隠れるダイオードをなくしました
  • リセットボタンを6x6mmタクトスイッチから横出しの表面実装のスイッチに変更しました
  • TRRSを取り付けられるようにしました
  • MXスイッチを直接はんだづけすることができなくなるようにしました

所感

機能的には特に変わらないので、コネクタがどっちから出ているほうが都合がよいか、で選ぶとよいと思います。

内容物

  • プリント基板
  • ダイオード10個(小さいやつ)
  • スイッチソケット8個(大きいやつ)
  • デカマイクロ(miniUSBでpromicroと書いてある青いボード)
  • リセットスイッチ

その他、販売時の構成により、以下のものがつく場合があります。

  • キーキャップ
  • キースイッチ
  • ケース

基板写真

f:id:skyhigh_works:20190217004327j:plainf:id:skyhigh_works:20190217004330j:plain

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

以下のURLから namecard2x4/rev2 のhexファイルをダウンロードしてください。

qmk.fm

QMK toolboxをダウンロード・インストールしてください。

github.com

QMK toolboxを起動してください。

起動したらhexファイルを選択し、autoflashにチェックを入れてください。

f:id:skyhigh_works:20190213160819p:plain

promicro(デカマイクロ)をUSBケーブルでPCに接続してください。

組み立てのためのピンセットなどを使って、RSTと書かれたピンとGNDと書かれたピンをつないで離し、リセットを掛けてください。QMK toolboxが自動的に書き込みを始めるはずです。

以下のメッセージが表示されていたら書き込み完了です。デバイスマネージャにnamecard2x4という名前のデバイスが追加されているかもしれません。

    avrdude.exe done.  Thank you.

組み立て

順番は以下の通りです。原則、低い部品から組み立ててください。キットによっては部品の高さによらず、特定の順序で組み立てないと部品のはんだづけが困難、もしくは不可能な場合があります。

  1. ダイオード
  2. ソケット
  3. リセットスイッチ
  4. ピンヘッダ
  5. promicro

ピンヘッダの取り付けの注意

4のピンヘッダだけ注意が必要です。プレートとPCBをほぼ密着させるように設計をしているため、PCBから飛び出す部分を最小にする必要があります。

具体的には、基板には短いほうを差し込んでください。また、差し込んだ後、ピンヘッダごとに1ピンだけ先にはんだ付けしてください。1ピンをはんだ付けすれば位置が決まります。位置決めの基準は、「promicroが差し込めるかどうか」です。斜めに取り付けられている場合、promicroを差し込むことができない場合があります。

位置が決まったら残りのはんだ付けしていないピンの飛び出している部分全てを切り落としてください。その後、すべてはんだ付けしてください。はんだ付けしたあとに切除しようとすると低くするのが困難ですが、はんだづけ前であれば低くしやすくなります。

promicro側も同様に実施することで高さを低くすることができます。

動作確認

自分のキーマップ作成

namecard2x4 LP(namecard2x4 for KLP)組み立て方法

f:id:skyhigh_works:20190216030204j:plain
組み立て例

内容物

  • プリント基板
  • ダイオード(10個)
  • KLPソケット(8個)
  • リセットスイッチ

その他、販売構成によってケースやねじ類、promicroが追加されることがあります。

別途必要な部品

  • キーキャップ
  • キースイッチ

あると便利かもしれない部品

promicroを交換するときのための処理です。

BLE micro pro 対応のための部品

注意追記

充電防止のダイオードを仕込んでいなかったため、ボタン電池は1個だけで使ってください。

また、コンデンサが入っていないため電池消費が激しい可能性があります。

現在修正版を検討中です。

本編

以下の部品を調達してください。

CR2032用でした。本品で使っているボタン電池CR16XX です。

http://www.aitendo.com/product/10078

www.aitendo.com

基板写真

f:id:skyhigh_works:20190217004038j:plainf:id:skyhigh_works:20190217004041j:plain

大まかな流れ

  1. promicroにファームウェアを書き込む
  2. 基板にダイオードをはんだ付けする
  3. 基板にソケットをはんだ付けする
  4. リセットスイッチ(とBLE micro pro対応用部品)をはんだ付けする
  5. promicroを取り付ける
  6. スイッチをつける
  7. キーキャップをつける
  8. 動作確認
  9. ケースをくみ上げる
  10. 完成!

ピンヘッダを綺麗に切り落とす手順

コンスルーも何とか使えます。コンスルーを使う人には関係ない章です。

ピンヘッダとスイッチが干渉するので、ぎりぎりまでピンヘッダを切り落とす必要があります。ピンヘッダをぎりぎりまで切り落とすには、はんだ付けしてから切るのではなく、切ってからはんだづけをする必要があります。

まずpromicro側のはんだ付けをピンヘッダの短い側にします。 このとき、位置・間隔決定のために基板の表側にピンヘッダを指してpromicroを裏返してのせ、マスキングテープなどで固定するとよいでしょう。位置決めの冶具として基板の代わりにブレッドボードを使うこともできます。

promicro側のはんだ付けができましたら、抜いて裏側から基板に差し込みます。差し込んだらマスキングテープで基板とpromicroを固定してください。

固定ができたら、ピンをすべて基板ぎりぎりで切り落とします。

すべて切り落としたらはんだ付けをして取付完了です。

ファームウェア書き込み

各々のやり方でdefaultファームウェアを書き込んでください。

キーボード定義名は namecard2x4/rev2 です。

デフォルトファームウェアは以下のキーマップになっています。

1 2 3 4
5 6 7 8

はじめてのキーボードの場合

QMK toolboxを使って書き込みます。

ファームウェアは以下のURLから namecard2x4/rev2をダウンロードしてください。

qmk.fm

hexファイルを読み込ませ、autoflashにチェックをいれてください。

f:id:skyhigh_works:20190213160819p:plain

promicroを接続し、RSTの穴とGNDの穴をピンセットなどで短絡させてすぐに離すと書き込みが始まります。ちょっと待ったら完了です。

参考

skyhigh-works.hatenablog.com

はんだづけ

動作確認

すでにdefault keymapが書き込まれているので、キーを順に叩いて、12345678の8文字が入力されたら確認通過です。

BLE micro proの動作確認をする

この記事は古いバージョンの記事です。

github.com

やった手順書いておかないともう一回同じ失敗をするのでメモ書き。

目標はnamecard2x4 rev2 for LPのBLE micro pro対応。

前提

Windows10で行います。

WSL上のubuntuでうまくいかなかったのでmsys2 64bitでやります。

参考URL

github.com

リポジトリの取得

qmk/qmk_firmwareにはマージされていないのでsekigon-gonnoc/qmk_firmwareを引っ張ってくる必要があります。

  git remote add sekigon https://github.com/sekigon-gonnoc/qmk_firmware.git
  git checkout -b nrf52 sekigon/nrf52

個人的にはリポジトリの切り替えに時間がかかるので、別名クローンしたほうがよいような気がします。 本家と競合してるっぽいし。 URLだけだとプロジェクト名でフォルダを作成しますが、第二引数にパスを追加することで別のフォルダ名でクローンできます。

git clone --depth 1 -b nrf52 https://github.com/sekigon-gonnoc/qmk_firmware.git ble_micro_pro

開発環境の用意

arm開発環境

とりあえず以下のコマンドを実行してarm環境をいれます。

make git-submodule

次にnRF5_SDK v15.0.0をいれます。v15.2.0じゃだめっぽいです。

developer.nordicsemi.com

~/nRF_SDK_v15.0.0な感じにするとたぶん楽です。

パスを通す

以下を実行します。 ~/.bashrcあたりに書いておくと楽かも?

export NRFSDK15_ROOT=~/nRF_SDK_v15.0.0

nrf52への書き込みツール

以下からnrfutil.exeをダウンロードして~/qmk_utilsにいれます。qmk_firmware/utilではないです。

github.com

書き込みテスト

とりあえず以下を実行してビルド成功~書き込みまでできるか試しましょう。 BLEmicroproはこの時点では抜いておいてください。

make ble_micro_test:default:nrfutil

以下が表示されたらResetを押しながらケーブルを接続してください。

Detecting USB port, put your controller into dfu-mode now.

バイスが検出されたら以下のメッセージが表示されて完了です。

Detected controller on USB port at /dev/ttyS32
Remapped MSYS2 USB port to COM33
Programming Started
Device programmed.

BLE対応デバイスと接続する

今回はここまで。次はキーボード定義。

QMK configuratorを使ってキーマップを作成する

namecard2x4のキーマップ作成支援のための記事です。

Windows10環境で動作確認をしています。

バージョン情報などは2019/02/13時点での情報です。

書き込み用ソフトウェアをダウンロードする(QMK toolbox)

以下のリンクからダウンロードしてください。記事執筆時の最新版は0.0.9です。

Windowsの場合はexe, MacOSの場合はapp.zipです。

github.com

QMK toolboxの動作確認をする

ファームウェア作成で手間取ったあとに書き込みがうまくいかなくて泣くのは辛いので、先に泣きましょう。

現在、qmk.fmから全てのQMK対応キーボードのdefault keymapがダウンロードできます。

以下のリンクからダウンロードしてください。

qmk.fm

  • 黒基板の人はnamecard2x4/rev1
  • 白、緑の基板の人はnamecard2x4/rev2

QMK toolboxを起動します。

f:id:skyhigh_works:20190213134920p:plain

local fileに先ほどダウンロードしたhexファイルを選択してください。

次にその右のMicrocontrollerの下のFlashボタンの下のautoflashにチェックを入れてください。

f:id:skyhigh_works:20190213160819p:plain

最後に、promicro/デカマイクロをUSB接続し、promicro/デカマイクロをリセットしてください。

すでに組み立て済みの場合は、リセットボタンを押して離せば大丈夫です。

組み立てをしていない場合は、ピンセットなど金属でGNDとRSTを触って繋いで離してください。

promicroのLEDが何も光っていない場合はケーブルがPCにつながっていないか、断線しています。

リセットがかかると、黒い部分に何かしら表示されると思います。具体的には黄色い文字で「今から書き込みするから抜くんじゃねぇぞ」と表示された後、avrdudeなんとかかんとかというコマンドが発行され、しばらくまつと書き込みが実行されます。

以下のように表示されたら書き込み完了です。

    avrdude.exe done.  Thank you.

正常に終わった場合、書き込みが正常にできることが確認できました。次へ進めます。

書き込みがうまくいかなかった場合

段階を踏んで確認してください。

段階的に確認していってなお動かなかった場合は、OSとどこまで確認していて、どこから動かないかをDiscordのSMKJサーバーに投稿してください。24時間以内に誰かしらから助言を得ることができるはずです。

promicroをUSBケーブルで接続したとき、promicroのLED(黄色と赤)は点灯しているか

何にも差し込んでいないpromicroのLEDが光らない場合電源供給がされていません。ケーブルを交換して確認してください。

PCはpromicroをどのように認識しているか

promicroはArduino LeonardoもしくはArduino Microとして認識されます。

ドライバーがはいっていないと不明なデバイスなどと出てくることがあります。

ドライバーは以下のURLの実行ファイルを使ってインストールするとよいでしょう。ArduinoIDEをインストールしている人はArduinoIDEのフォルダ内にもドライバーがあります。

github.com

digital.ni.com

promicroのLEDが光っているにも関わらず、不明なデバイスすら表示されない場合はケーブルが充電専用の可能性があります。ケーブルを交換して動作確認をしてください。それでもダメであれば不良promicroの可能性があるので新しいpromicroを手に入れてみてください。

リセットをかけたとき、promicroの赤LEDは消灯するか

単純にリセットを掛けたつもりが実はかかってなかった、というのを防ぐための確認項目です。

消えるはずです(たぶん)。

リセットをかけたとき、PCはどのように認識しているか

リセットがかかったあと数秒間書き込み用ポートで接続がされます。そのため、リセットを押した直後にデバイスの切断と新しいデバイスの検出が行われるはずです。数秒後、再度切断と、元のデバイスが検出されるようになります。QMK toolboxが起動していてautoflashにチェックをいれた状態であればnamecard2x4のファームウェアが書き込まれるはずなので、デバイス名がnamecard2x4に代わっているかもしれません。

原則リセットは1回かければ問題ないはずですが、何故か2回かけないといけない個体があるといううわさがあります。

QMK toolboxのログにはどのような表示がされているか

QMK toolboxは何か動作をするたびにどういう状態なのかが常に書きだされています。問題がある場合は「こういう状態なのでだめだった」と表示されます。最も多いのはFlashをしようとしたときに「書き込み可能なデバイスが検出されない(なので書き込みできない)」でしょうか。

英語ですが、とても短い英語なのでこの文章くらいはちゃんと読んでください。

WEBファームウェアビルダーを開く(QMK configurator)

QMK configuratorを開いてください。

rev1

config.qmk.fm

rev2

config.qmk.fm

それ以外

config.qmk.fm

キーボードを選ぶ

KEYBOARDを正しく選択してください。黒い基板の人はnamecard2x4/rev1, それ以外の基板の人はnamecard2x4/rev2を選択してください。

どちらを選んでも場合、N/Aと書かれた四角の数が2x4に変更されます。rev1とrev2で中身がちょっと変わったので、間違えると書き込んでも入力できないキーが発生したり、違う場所にキーがアサインされたりします。

キーマップを作成する

四角形をクリックしてアサインしたい1つのキーを押すか、下から四角形にドラッグアンドドロップすることで入力内容を設定できます。multimedia keyはwindowsmacで異なるので注意してください。

2019/5/12現在、コンビネーションは一発では入力できないので気を付けてください。例えばCtrl+Vを押した場合は最初に押したCtrlが配置されます。Ctrlとの同時押しはQuantum タブ内「LCtl」もしくは「RCtl」を使うことで実現できます。LRの区別があるのは、内部的に区別されているからです。アプリケーションによっては右が指定されることがあります。

多層化したい場合は、Quantum>Layer functionsを使います。特定のキーを押している間だけ状態が切り替わるようにするには、MOまたはLTを使います。

MOをD&Dしたのちに、移動したいレイヤー番号を入力してください。0-15の範囲で、初期レイヤーは0番です。その後の、左側の0から15の数字をクリックすると、他のレイヤーを編集できます。

設定ファイルをダウンロードする

KEYMAP.JSONと書かれている場所の左側のexportボタンを押すと、現在設定したキーマップを外部ファイルに保存できます。このファイルをKEYMAP.JSONと書かれている場所の右側にあるimportボタンを押すと、keymap.jsonを読み込むことができ、読み込むことで過去に設定したキーマップを使いまわせます。

exportをしなかった場合、編集内容はいつ失われるかわかりません。

ファームウェアコンパイルする

COMPILEボタンを押して芋が焼けるまで待ってください。

ファームウェアをダウンロードする

右下のFIRMWAREと書かれたボタンを押してhexファイルをダウンロードしてください。

ファームウェアを書き込む

QMK toolboxでダウンロードしたhexファイルを書き込んでください。

動作確認をする

キーをたたいて、期待通りの動作か確認してください。

以上です。

これよりも複雑なレイアウトを実現しようとした場合、開発環境を構築してソースコードを書き換えてコンパイルする必要があります。

説明するのも大変なので省略します。

QMK configuratorを手元で動かす

環境

Windows 10 でWSL, ubuntu使います。

手順

git clone https://github.com/qmk/qmk_configurator
cd qmk_configurator
bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ruby
sudo apt-get install ruby-dev
bundle install
bundle exec jekyll serve

最後に、ブラウザーhttp://127.0.0.1:4000 を開く。

参考文献

github.com

qiita.com

コンスルーまとめ

本記事はキーボードに関する記事です。

コンスルーは便利なのですが、取り扱いに関して正しく理解している人間が少なく、都市伝説的に語り継がれています。

毎度説明するのが非常にめんどくさいのでまとめます。

取り扱いの話は2019/6/7に追記しました。もともとはデータシートを毎度探すのがめんどいので最低限の数字と資料への参照をまとめた記事でした。

コンスルーとキーボード

スプリングピンヘッダことコンスルーという部品があります。

Helixで遊舎工房のないん氏が使い始めた部品で、microUSBが弱いpromicroの交換を容易にするために用いられています。オプション部品です*1

そのため、12ピンのもののみが小ロットで入手可能でした。BLE micro proに対応するため、13ピンのコンスルーが遊舎工房で取り扱いが始まりました。店頭だけでなく通販でも選択可能です。どちらもプラ高2.5mmのようです。

コンスルーの調達先と種類

yushakobo.jp

www.switch-science.com

さて、このコンスルーですが、各小売りページにおいて2019/01/31現在 型番が明記されていません。また、カタログページへのリンクが切れています

そのため人づてにしか情報を得られないような情報が続いていて基板設計のときにとてもめんどくさいのでまとめます。

追記

Switch Scienceは2mm高で確定とのこと。遊舎工房は2.5mmと予想されています。0.5mmはpromicroを裏向きで取り付ける際の、実装部品の高さの兼ね合いです。

裏返しでpromicroを取り付ける場合は遊舎工房のほうを、表向きでつける場合やもげにくいマイクロを使う場合はSwitch Scienceのものがよさそうです。

discordapp.com discordapp.com

コンスルーと基板設計

コンスルーはどんな基板でも利用可能なわけではありません。コンスルーは2枚の基板を繋ぐ部品です。それぞれの基板がコンスルーに対応しているかしていないかで4通りの組み合わせがあります。このときの利用条件は以下のようになります。

対応 非対応
対応 利用可能 条件付き
非対応 条件付き 利用不可
利用条件 説明
利用可能 刺すだけで利用可能
条件付き 非対応基板にはんだ付けをすることで利用可能
利用不可 コンスルーでは接点を作れない・刺さらない

コンスルーのデータシートによると、0.8mmφ~0.9mmφが対応径で、0.85mmφが推奨穴径です。特に実験はしていませんが、この径より小さい場合は穴に入らず、この径より大きい場合はガバガバで通常のピンヘッダを使うのと変わらなくなる、と予想されます。

promicroのスルーホールは2.54mm間隔です。2.54mm間隔用のピンヘッダの対角は約0.8~0.9mmです。この"棒"を抜き差しするために穴径は余裕が必要なので、通常は1mmφ程度で設計をします。そのため、promicroや多くのpromicro対応のキーボード基板はコンスルー非対応です。両側が非対応の場合ただの高いピンヘッダとなってしまいます。ブレッドボードを使った「仮留め」ができなくなる分いいことは何もないかもしれません。

Helixをはじめとしたビルドガイドにコンスルーの利用に関して書かれているキーボードキットの基板は穴径をコンスルー対応にしているため、promicroにはんだ付けをすることで利用可能です。主に国内の一部キーボードが該当します。国外ではコンスルーの入手が困難なため、今後も対応がされることはないでしょう*2

また、国内の開発者がキーボード向けに作成したpromicroとピン配置を同様にしたマイコンボードの基板はコンスルーに対応しています。SwitchScience版promicroとBLE micro proです。これらのマイコンボードとコンスルー対応キーボード基板を利用する場合は、どちらにもはんだづけをすることなく利用ができます。また、これらの基板を使うことでコンスルー非対応キーボード基板であってもキーボード基板側にコンスルーをはんだ付けをすることで交換可能な状態を維持したまま利用することができます。

向き

実は向きがあります。上下だけでなく、左右もあるそうです。詳しくないので、データシート見てください。

左右の向きは「窓を同じ方向に向いた状態にする」です。

コンスルーと寿命

コンスルーには寿命があります。正確には、コンスルーを抜き差しされる基板側に寿命があります。コンスルーはピンヘッダのピン部分をばね構造にしてスルーホール内に押し付けることによって接点を作っています。そのため、抜き差し時には摩耗するので挿抜回数に制限があります。

国内キットではpromicroを利用することからpromicroにはんだづけをしてキーボードから抜き差しをしていますが、この場合はキーボード側のスルーホールが摩耗し、最終的にはんだづけをしないと利用できなくなります。promicroが壊れたときに交換するためのコンスルーですが、あまり気軽に抜き差しをし過ぎるとキーボード基板側が原因で接触不良を起こしてしまうという、実は望ましい利用方法ではないのです。

だいじそうなとこ

以下マルツのカタログページから参照されていたデータシートよりコピーした内容です。 f:id:skyhigh_works:20190131214548p:plain f:id:skyhigh_works:20190131214604p:plain

とりあえずpromicroのフットプリントは推奨値に従ってランド1.5mmφ、TH0.85mmφにしましょう。

資料

ググったら何故かマルツからカタログを参照することができました。マックエイトのカタログシステム刷新のため、検索エンジンから到達できないためです。

www.marutsu.co.jp

https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/XB.pdf

現在では遊舎工房カタログページから参照されているURLから、公式のものが調達できます。

https://www.mac8sdk.co.jp/uploads/entry_meta/file_value/1117/mac8_2018a_jp-xb2.pdf

*1:promicroを買うと普通にピンヘッダが必ず付いてくる

*2:マックエイトが国内の会社のため