天高工房

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

hecomi keyboard(alpha)の組み立て

写真とか

skyhigh-works.booth.pm

  • 写真とか
  • 必要な道具
    • あるとよい道具
  • 必要な部品
    • あるとよい部品
    • その他
  • 注意事項
    • 追記
    • 追記2
  • テストファームウェアの焼きこみ
    • QMK toolboxの準備
    • ファームウェアのダウンロード
    • QMK toolboxの設定
    • promicroに書き込む
    • もしpromicroへの書き込みがうまくいかなかったら
      • PCが認識していない
      • PCが認識しているが不明なデバイス
      • 書き込むそぶりは見せるが失敗する
  • はんだづけ
    • ダイオード
    • ソケット
    • type-C コネクタブレイクアウトボード
    • リセットスイッチ
    • promicroのピンヘッダをPCBに取り付ける
    • ワイヤー接続
      • 変換器にワイヤーを取り付ける
      • ブレイクアウトボードにワイヤーを取り付ける
      • 変換器をpromicroに取り付けて確認する
    • promicro
    • 組み立ていったん〆
    • デフォルトファームウェアでのテスト
    • プレートの取り付け
      • トッププレート
      • ナット(省略可能)
      • 基板
      • スペーサー
      • ボトムプレート
  • キーマップのカスタマイズ
  • 付録
    • 基板・プレートデータ
    • hecomi御大の記事
続きを読む

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

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

忙しい人のための短文

  • こて先は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