天高工房

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

namecard2x4 rev2の組み立て

namecard2x4 rev2の組み立て方です。

rev1から変わったこと

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

所感

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

内容物

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

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

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

基板写真

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

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

組み立て

動作確認

自分のキーマップ作成

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

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

内容物

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

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

別途必要な部品

  • キーキャップ
  • キースイッチ
  • promicroもしくは同様のピン位置のマイコンボード(BLE micro proなど)

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

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

ファームウェア書き込み

各々のやり方で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の動作確認をする

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

目標は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で異なるので注意してください。

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

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

コンスルーまとめ

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

前書き

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

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

そのため、12ピンのもののみが小ロットで入手可能です。

yushakobo.jp

www.switch-science.com

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

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

追記

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

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

discordapp.com discordapp.com

だいじそうなとこ

以下マルツのカタログページから参照されていたデータシートよりコピーした内容です。 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

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