天高工房

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

hecomi keyboard(alpha)の組み立て

写真とか

skyhigh-works.booth.pm

必要な道具

  • はんだごて
  • はんだ
  • フラックス
  • ピンセット
  • マスキングテープ
  • ニッパー

あるとよい道具

  • 吸煙器(煙い&人体有害煙)
  • ワイヤストリッパ(USB type-Cブレイクアウトボードとの接続ワイヤの被覆向き用、ケーブル径に注意)
  • IPA(フラックスの洗浄用、最悪IPA入りの消毒液でもなんとかなるかもしれない)
  • はんだ吸い取り線(失敗するかもしれない)

必要な部品

  • SOD-123 ダイオード69個
  • Kailh PCB Socket for MX 69個
  • promicro 2個
  • USB typeA male to microB maleコネクタ(裸タイプ)2個
  • TRRSジャック 2個
  • 秋月USB type-C ブレイクアウトボード 2個
  • 細め(AWG28~26くらい)のワイヤ
  • TRRS ケーブル
  • USB typeA -typeCケーブル
  • リセットボタン2個

akicartで秋月から買えるものはまとめて買えます。

aki.prioris.jp

KAUMO USB OTG 極小アダプタ USBオスをmicro USBオスに変換 (2個) KM-157

KAUMO USB OTG 極小アダプタ USBオスをmicro USBオスに変換 (2個) KM-157

ダイオードとソケット、promicro、リセットボタンは原則付属させています。ない場合は遊舎工房に駆け込んでください。

リセットボタンはaitendoで売ってることになってますが、前行ったときは店頭になかったと思うので通販してください。見つからなければ連絡ください。

あるとよい部品

公式ファームウェアに色々変更があって光ったり光らなかったりします。 WS2812/SK6812、いわゆるneopixel系のLEDテープがあると底が光ります。

注意事項

試作基板ゆえに一部ミスがあります。

type-cコネクタとpromicroを接続するにはpromicroに接続したUSB変換器とtype-Cコネクタを直接つなぎます。基板上でつなげるように用意したフットプリントは使わないでください。配線の向きが逆だったので、つなぐとVCCとGNDが短絡し、基板から煙が上がります(あがりました)。

また、一部指定した順番で実装しないと実装困難になる部品があります(主に左手)。

追記

USB変換器にはんだ付けをして、裏返した状態で穴に差し込んではんだ付けをするとよいと教えていただきました!(Thank you kakunpc!)

f:id:skyhigh_works:20190302001724j:plain
変換器から基板へのはんだ付け

テストファームウェアの焼きこみ

最後にやってトラブルがあると悲しいことになるので、最初にpromicroにテスト用ファームウェアを書き込みます。

テスト用ファームウェアを書き込むだけなので、QMK toolboxを使ったやり方を説明します。

「俺はそんなもの使わない!avr-gcc環境用意して直接ファームウェアを用意してやる!」という強い覚悟を持った人は以下を読むとよいと思います。

github.com

QMK toolboxの準備

以下のURLからQMK toolboxをダウンロードしてください。

github.com

ファームウェアのダウンロード

以下のファームウェアをダウンロードしてください。

https://qmk.fm/compiled/hecomi_alpha_default.hex

QMK toolboxの設定

QMK toolboxのlocal fileに先ほどダウンロードした hecomi_alpha_default.hex を設定してください。

次に、autocheckにチェックを入れてください。

f:id:skyhigh_works:20190213160819p:plain

promicroに書き込む

promicroをUSBケーブルを使ってPCと接続してください。

もし、PCがpromicroを認識してドライバーのインストールをはじめたら終了するまで待機してください。

次に、ピンセットでpromicroのRSTと書かれているピンとGNDと書かれているピンをつないで離してください。これを「リセットをかける」と呼びます。リセットがかかると、promicroのLEDの点灯の仕方が変わり、PCからの認識が変わるのでわかると思います。autoflashにチェックが入れてある場合、PCがpromicroのリセットを認識して自動でファームウェア書き込みが始まります。ちょっとだけ時間がかかるので、待ってください。

以下のメッセージが表示されたら書き込み完了です。

    avrdude.exe done.  Thank you.

もう一つのpromicroにも同様に書き込んだらこのステップは終了です。

もしpromicroへの書き込みがうまくいかなかったら

promicroへの書き込みがうまくいかないパターンにはいくつかあります。

  1. そもそもPCが認識していない
  2. PCが認識しているが不明なデバイス
  3. 書き込むそぶりは見せるがポートが見つからない、などとでる

PCが認識していない

この場合、USBケーブルに問題がある可能性があります。他のデータ通信が可能なUSBケーブルを用意して試してください。 また、それでもダメな場合はUSBポートを変える、別のPCで試してみるなどしてください。

それでもなおpromicroのLEDすら点灯していないようであれば、めったに見つからない不良promicroにぶつかった可能性があります。天高まで連絡ください。書き込み済みのpromicroをお送りいたします。

PCが認識しているが不明なデバイス

このケースもいくつか可能性があります。

まず、OSがWindows7など古いとドライバーが自動的にインストールされないようです。ArduinoIDEをダウンロード・インストールし、フォルダ内のドライバーをインストールしてください。

次に、ケーブルや接続しているUSBポートなどを変更してみてください。ケーブル断線や接触不良でうまく通信ができないことがあるようです。また、USBハブが挟まっている場合ハブを経由せず直接接続してみてください。うまくいく場合があります。

書き込むそぶりは見せるが失敗する

このケースはpromicroのプログラムが悪さしているようです。

リセットを2回連続でかけてください。具体的には最初のリセットから750ms以内に2回目のリセットをかけてください。

それ以外にも、適当に抜き差ししたり書き込みを試していたら何故か書き込めてしまうこともあります。負けないでください。

はんだづけ

項目の上から順に実装していってください。すっ飛ばしてやると実装困難部品が出てくるかもしれません。

全ての部品は基板の裏側につきます。裏側にはSWxxやDxxなど部品番号が書かれています。

以下の記事中の記事を一通り読んでおくとだいぶん気楽にやれると思います。特にチップ部品(SMD部品)のはんだ付け方法は必ず確認してください。間違えると修復に追加の道具と時間が必要となります。

skyhigh-works.hatenablog.com

ダイオード

シルク通りに69個実装してください。

SMDダイオードの実装は以下の記事が分かりやすいかと思います(厳密にはサイズが違います)。

noseseiki.com

ダイオードはテープからばらばらにせず、以下のようにマスキングテープに貼り付けるようにテープから剥がして並べると、位置がすべてそろった状態になるので便利です。マスキングテープの上に載せることは、飛散防止・紛失防止にもなります。

skyhigh-works.hatenablog.com

ソケット

シルク通りに69個実装してください。向きが一応あります。中央の穴に被らない向きで配置してください。

ダイオードに比べて熱容量が大きいので、設定を370度程度にすると早く加熱されてちょっと楽かもしれません。ただし、はんだを直接こてにあててしまうと内部のフラックスが即時沸騰してはんだが跳ねるので、こてに直接当てないように気を付けてください。

フィレットが形成されていない場合、スイッチを差し込んだときにパッドごとはがれてしまう場合があります。基板上のソケットのパッドと、ソケットの足に富士山型のフィレットが綺麗に形成されていることを確認してください。

type-C コネクタブレイクアウトボード

シルク通りの向きで取り付けてください。

ピンをはんだ付けの前にあらかじめ切断することで外観の良さや不良率の低下を得ることができます。

本体基板、ピン、ブレイクアウトボードを挟んで持ってニッパでピンを切っていってください。一度に両面を切るのが難しいと感じたら、先に片側をすべて切ってはんだづけをすると少し楽だと思います。スイッチを取り付ける側は可能な限り低いことが望ましいです。

リセットスイッチ

ハウジングの片方のパッドにはんだを乗せて片パッドをはんだ付けすることで位置が固定されます。そうしたら残りの3点をはんだ付けするだけです。フラックスを塗っておいたほうがいいです。

左手はpromicroより先に取り付けないととても辛いことになります。

promicroのピンヘッダをPCBに取り付ける

promicroを固定するとワイヤーでつなぐのが大変かもしれないのでピンヘッダだけ先にPCBにつけます。

このとき、ブレイクアウトボード同様に基板側のピンヘッダを短く切り落としてからはんだづけすることをお勧めします。

ワイヤー接続

シルクは罠です。無視してください。

変換器にワイヤーを取り付ける

机やマットにtypeA側が左になる向きで、マスキングテープで変換器を固定してください。

typeA側のピンに予備はんだをしてください。予備はんだはあらかじめはんだを部品につけておくことをいいます。

ワイヤーを順にtypeA側のピンにはんだ付けしてください。このとき、事前にワイヤーの先端を撚って、ワイヤーの先端に予備はんだをしておくことで、ワイヤーの先端が広がってほかのピンと短絡することが防げます。

ピンセットがあると便利です。

ブレイクアウトボードにワイヤーを取り付ける

4か所はんだ付けをしたら変換器を基板上へ移動させます。

画像のような位置で固定し、はんだづけをしてください。やっぱりピンセットがあると便利です。

f:id:skyhigh_works:20190320004831j:plain

変換器をpromicroに取り付けて確認する

promicroに変換器を取り付けて、promicroにピンヘッダを差し込んでみてください。このとき力を加えないとピンヘッダに入れられないようであれば、ワイヤー取り付け角度や長さを調整するなどしてmicroUSBコネクタに負荷がかからないようにしてください。もげます。

promicro

取り付けてください。裏向き(部品面が本体基板を向く方向)です。

組み立ていったん〆

ここまで動作確認をしていません。動作確認をするためにいったん組み立てをとめて、動作確認をします。

デフォルトファームウェアでのテスト

Switch hitterなどを使って、全キーが正しく入力されるかどうかを確認します。

elitekeyboards.com

スイッチを差し込んでテストしてもいいですが、ピンセットでソケットの両端をつないでいくのが楽でしょう。

入力ができないキーが見つかった場合、該当箇所のはんだ付け状況を確認してください。最初にソケット、次にダイオード、最後にpromicroとの接続です。私はソケットやダイオードの片側をはんだ付けし忘れて入力できないことが度々あります。

細かい部品の目視確認が必要なので、ルーペがあってもいいかもしれません。ダイソーとかで買えるはずの新聞なんかに置いて読むための拡大鏡がたぶん便利です。

プレートの取り付け

取り付け順は以下です。

  1. トッププレート
  2. スペーサー
  3. ボトムプレート

トッププレート

ネジを差し込んでください。穴は念のため9か所用意したのですが、4隅の4穴にネジ4本だけでも剛性は足りると思います。4本程度で仮組をしてみて、剛性が不満の場合に追加していただくのがよいと思います。何かあったときに9か所外すの大変なんです...

ナット(省略可能)

プレート越しにナットを取り付けてください。この際、めり込む程度にきつく締めてください。

基板のスイッチ取り付け面に飛び出したピンヘッダをぎりぎりまで短く切ってある場合はこの工程を省略できます。

基板

ネジに基板を通してください。

スペーサー

基板越しにスペーサーを取り付けます。ナットを付けている場合、飛び出し量が非常に短くなっている(1mm以下)ので、回し過ぎないように気を付けてください。回し過ぎるとナットをはずさないとねじ・スペーサーともに端が噛まなくなります。

ボトムプレート

ボトムプレートを挟むように、スペーサーにネジを差し込んで締めてください。

キーマップのカスタマイズ

QMK configuratorを使ってhexファイルを生成、QMK configuratorで書き込むというのが最も簡単です。

config.qmk.fm

使い方は以下の記事にまとめました。

skyhigh-works.hatenablog.com

複雑なキーマップを作成したい場合は、QMKの開発環境を用意して書き換え、ビルドをしてください。

12/2に声かけて、その後ちょこちょこヒアリングしながら作りました。12月に退去迫られていて引っ越しでどったんばったんしてたせいで年越ししながらはんだ付け&ファームウェア制作してました。色々実験的要素をぶち込みたかったのでpromicro使ってるけどtype-cブレイクアウトボード使ってtype-c使えるようにしてたりとか色々してます。

もし次のbetaを出すとすると、以下の改善をしたいなぁという気持ちがあります。

  • ソケットとダイオード以外のすべての部品を表面に取り付けて薄さを出すこと(ただし部品が露出するのでうまくやらないとごちゃっとする)
  • M2穴からM2スペーサー穴にしてプレートマウントに変更
  • 各種不具合修正
  • type-Cを捨ててBLE micro pro 対応(これはforkでやるべきか)

付録

基板・プレートデータ

色々恥ずかしいけどPCB, プレートデータは以下にあります。

github.com

hecomi御大の記事

tips.hecomi.com