片手キーボードFroggyへQMK Toolboxを用いてファームウェア書き込む

# 要約

HexファイルとQMK Toolboxで以下のように書き込む際は以下に留意する。

```
・半田付けはなんとかなる。
・Froggy用のHexファイルはダウンロードする。
・Macでセキュリティの都合でOMK Toolboxを開けない時はspctlコマンドを使う。
・リセットスイッチの半田付け不良はProMicroのランプが点滅？するかどうかで確認できる。半田付け不良の場合はショートさせることで対応できる。
・usbケーブルは適切なものでないと動かない。
```

# はじめに
　憧れの片手用キーボード‘Froggy‘を組み立てた。

　途中で何度もつまづき、かといってFroggyの情報は多くなく、挫けそうになりました。そこで、（私のような）初学者の役立つと考え、つまづいた点を書くことにした。

>組み立てたFroggy実物（Mac用にキーキャップを配置している）
![froggyForMac.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/444980/4b76d2a7-9db4-ef07-25f8-daae9999d770.jpeg)


# 環境
macOS; version 11.3
zsh; zsh 5.8 (x86_64-apple-darwin20.0)
QMK Toolbox; Version 0.1.1 (0.1.1)


# 準備
　私はプログラミングも電子工作も素人であり、特にハンダ付はまったく経験がほぼゼロである。以下の記事をよみ、準備が十分に必要なことを知った[[1]]。この記事で、（初学者が）どこでつまづくかの参考にもなり、かなり有用だった。

[1]:https://qiita.com/chesscommands/items/6bf774ee30d410995879

>\[1\]ごみHelixキーボードの作り方 - Qiita, https://qiita.com/chesscommands/items/6bf774ee30d410995879


　自作キーボードは種類がなんであれ、（１）組み立て、（２）ファームウェア書き込み、（３）動作確認、の手順である。
　ビルドガイドを熟読（重要！）して望めば、組み立てはなんとかなるものなので、その詳細は割愛し、ファームウェアのつまずきポイントを中心に書いた。

# Froggyの組み立て

　この記事を一番参考にした[[2]]。

[2]:https://qiita.com/suuuyooo/items/e2a65e7d417612970e0f

>\[2\]自作キーボードFroggy(Helix)で辛勝した道筋 - Qiita, https://qiita.com/suuuyooo/items/e2a65e7d417612970e0f

　上記で参考にしている以下の記事も参考にした[[3]][[4]][[5]][[6]]。

[3]:https://github.com/MakotoKurauchi/helix/blob/master/Doc/buildguide_jp.md
[4]:https://rephtone.com/electronics/helix-keyboard-part2/
[5]:https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md
[6]:https://critical-alert.hatenablog.com/entry/2018/07/21/190204

>\[3\]公式ビルドガイドとされるもの, helix/buildguide_jp.md at master · MakotoKurauchi/helix, https://github.com/MakotoKurauchi/helix/blob/master/Doc/buildguide_jp.md
>\[4\]公式ビルドガイド共に頼りになる手順書, Helix 自作キーボード製作記 (その2) │ Rephtone, https://rephtone.com/electronics/helix-keyboard-part2/
>\[5\]あらかじめQMK Toolboxの準備をしておいた方が段取り的にはよいらしい, helix/firmware_jp.md at master · MakotoKurauchi/helix, https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md
>\[6\]ダイオードの付け方がとても参考になる, Helix キーボードキットを組み立てた話 - critical alertのブログ, https://critical-alert.hatenablog.com/entry/2018/07/21/190204


# ファームウェア準備

　遊舎工房のwebページでFroggy用のHexファイルがダウンロードできようになっていたので、それをダウンロードした（日本語配列版Hex；helix_rev3_5rows_froggy-jp_27f6afc.hex いうやつです）[[7]]。

[7]:https://yushakobo.jp/froggy/

>\[7\]Froggy用のHEXファイル, Froggy – 遊舎工房, https://yushakobo.jp/froggy/

# QMK Toolboxでファームウェア書き込み

　ProMicroにファームウェアを書き込むのには、コマンドラインで行う方法と、GUI（Graphycal User Interface）で行う方法がある[[8]]。前者は`keymap.c`を編集（もしくは準備されたものの初期状態のまま）して`make`コマンドでProMicroへ書き込む（同時にHexファイル作成も作成される）。後者は、hexファイルを準備してアプリケーションQMK Toolboxで書き込む。

[8]:https://qiita.com/BlackCat_617/items/cd14804e3394c8856679

>\[8\]自作キーボード'meishi2'のキーマップをコマンドラインで変更する。 - Qiita, https://qiita.com/BlackCat_617/items/cd14804e3394c8856679

　今回は、前節のごとく、Froggy用のhexファイルがすでに準備されていたのでQMK Toolboxを用いて書き込むことにした。

## 動作確認 > リセットスイッチを押してもまったく反応がない。

　参考[[9]]に従い、QMK Toolboxで動作確認をした。リセットスイッチを押しても 'Connected' とメッセージが出ず、まったく反応しない。

[9]:https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md

>\[9\]「とりあえず動作を確認したい」というタイトルの記事, helix/firmware_jp.md at master · MakotoKurauchi/helix, https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md

　原因として、「スイッチの半田付け接触不良」、「QMK Toolboxが古い」、といったことが考えられた。そこで、まずQMK Toolboxをインストールしなおすことにした。

　以前、キーボード 'meishi2' を作成した時にダウンロードしたQMK Toolboxを削除し、Froggy用のhexファイルをダウンロードしたここ[[10]]から改めてダウンロードした。

[10]:https://github.com/yushakobo/qmk_firmware/tree/froggy_keymap

>\[10\]yushakobo/qmk_firmware at froggy_keymap, https://github.com/yushakobo/qmk_firmware/tree/froggy_keymap



## QMK Toolbox を開けない（`spctl`コマンドの利用）

　QMK Toolboxを開こうとすると「"QMK Toolbox.app”が悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。」と警告がでて開けなかった。

　いつもの方法（"環境" -> "セキュリティとプライバシー"・・・）では対処できなかった（私の勘違いかもしれませんが）。

　`spctl`というコマンドで、一時的にセキュリティを解除？することで無事アプリケーションを開くことができた[[11]][[12]][[13]]。

[11]: https://scrapbox.io/ima1zumi/%22QMK_Toolbox.app%E2%80%9D%E3%81%8C%E6%82%AA%E8%B3%AA%E3%81%AA%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92Apple%E3%81%A7%E3%81%AF%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E3%81%93%E3%81%AE%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%E9%96%8B%E3%81%91%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82

[12]:https://mac-tegaki.com/basic-usage/sierra-mac-app-store-permission.html

[13]:https://mac-tegaki.com/basic-usage/gatekeeper-command.html

>\[11\]"QMK Toolbox.app”が悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。 - :wq, https://scrapbox.io/ima1zumi/%22QMK_Toolbox.app%E2%80%9D%E3%81%8C%E6%82%AA%E8%B3%AA%E3%81%AA%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92Apple%E3%81%A7%E3%81%AF%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81%E3%81%93%E3%81%AE%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%E9%96%8B%E3%81%91%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82

>\[12\]sudo spctl --master-enable, macOS Sierraで「すべてのアプリケーションを許可」の設定を復活させる | Macの手書き説明書, https://mac-tegaki.com/basic-usage/sierra-mac-app-store-permission.html

>\[13\]Gatekeeperの許可リストにアプリを追加するターミナルコマンド | Macの手書き説明書, https://mac-tegaki.com/basic-usage/gatekeeper-command.html

## QMK Toolboxをいれなおした後も、リセットスイッチを押しても反応しない（半田付け不良）。

　接触不良と判断し、てきとうな導電線（ハンダ線でも可）で短絡（ショート）した。

　短絡の仕方は、リセットスイッチが半田付けされている2極を1本のハンダ線でつなげるだけ。ProMicro内のランプが反応（点滅？）して、短絡されたかどうかわかる。


## 短絡しても反応しない（usbケーブル変更）

　作成キットに同梱されたusbケーブルに変えて、改めて '動作確認' をしたところ無事反応した（画面に `connected`云々表示された）。

　なんとなく手元にあったusbケーブル（bluetoothキーボード充電用）を用いたのが良くなかった。ここでかなり時間を浪費してしまった。

　'動作確認' で問題なく終え、準備しておいたFroggy用のhexファイルとQMK Toolboxで書き込む。


## 反応しないキーが2つある（半田付け不良）

　ハンダ付不良やハンダ付の際にダイオードを壊してしまった、などが考えられた。

　ハンダ吸い取り線を用いてハンダを溶かして吸い取り、ダイオードを外した。テスターで確認すると、2つののダイオードとも壊れていなかった。ハンダ付不良と判断し、あらためてハンダ付をしたところ、これらのキーは反応するようになった。


　以上でFroggyへのファームウェア書き込みを完了した!
　

# 考察

　keymap.cを編集して自由にキーマップを変更できればなおよい。

　それにもいくつか注意点があるため、別の記事で書くことにする。