Meishi keyboard組み立て遍歴

左右分離型のキーボードは、ErgoDoxEZキーボードを持っている。
他にもあるが、取りあえずWindowsOS用の普段使いキーボードにしている。
そして、Helixキーボードはゴミとして終わった。
左右分離型のキーボードをWindows用に使いたかった。
しかし、最初に難易度の高いキーボードに取りかかったのが失敗だったのだろう。
ゆえに、今回2つ目の自作キーボードに挑戦する。4つしかキーがない簡易版だ。
3つ目は、さらにこれの発展版キーボードを作る予定だ。

気になるのは名前だよね。
なぜに`Meishi keyboard`なのだろうか。
検索かけにくい。
まっどうでもいいけど。

Ergo42キーボードとは違い、[日本語の解説](http://biacco42.hatenablog.com/entry/2018/01/21/204749 "ハテナブログ")がしっかりしている。
安心だ。
(WindowsOS向けの解説は未検証部分多いけど)






































# 事前準備
ファームウェア書き込み用の環境は準備してからキーボード作成に取りかかろう。
思ったより時間が掛かる。
なぜならば、ErgoDoxEZキーボードのQMK環境を使い回せそうに思ったのだが・・・だめだった。
そして、キーマップをかき込むプログラムも使い回せなかった。
QMKなので、問題ないと思ったのだが、色々なやり方があるようだ。





## ErgoDoxEZキーボード時のクローン環境
`クローンディレクトリ/qmk_firmware`にて、以下のコマンドを打ち込む。

```shell
util/msys2_install.sh
```

インストールが始まり、なぜかユーザに"Yes or No"を突きつけてくるため、インストールが中断される。
結構インストールがめんどくさい。
何より、本当にこの作業が必要なのか分からない。



## ビルド環境構築
早速挫折した。
販売側が用意している[GitHub](https://github.com/Biacco42/qmk_firmware/tree/feature/meishi)からクローンで取得したが、なぜか名刺部分のキーマップディレクトリはクローンされなかった。
不思議なこともあるようで・・・。

しかたないため、Zipファイルでダウンロードし、[必要なディレクトリ](https://github.com/Biacco42/qmk_firmware/tree/feature/meishi/keyboards/meishi)をErgoDoxEZキーボード時に使ったクローンディレクトリに移動させ、そこでコンパイルさせることにした。
ゆえに、コンパイル方法は、解説ページと異なる。
私のコンパイル方法

```Meishi:シェルプロンプト
make clean | make keyboard=meishi keymap=default
```




### 結論(デフォルトの動作確認)
USB接続側から`Ctrl+z`・`Ctrl+x`・`Ctrl+c`・`Ctrl+v`の組合せでキーが使えるようになる。
あぁHelixキーボードはゴミだったが、今回はキーボードとして使えた。
良かった。
これで、キーボーダーと名乗れるだろうか。
あぁ良かった。
Helixゴミキーボードを作ったせいで、境界線を引かれ、自作キーボードerを名乗れなかったからな^^




































# 名刺キーボード作成開始
Helixキーボードのビルドガイドもそうだったが、今回の作成説明書も(作成方法を)理解している人を対象に作られた説明書に思える。
どうすればいいのか分かりにくい。
それでもキーが4つとLEDがないことで、それなりに読み解くことは素人ながらにも出来る。
ごみのHelixキーボードを作る前に、このキーボードに取り組んでおけばと後悔しっぱなしだ。

公式の説明では、以下の3点を気をつけるようにしている。

* ダイオードの取り付け場所
* ProMicroの表裏
* キースイッチの取り付け






## ダイオードの取り付け場所
さらっと説明して終わっているのだが、結構重要だったりする。
公式解説では、向きに気をつけるように説明しているのだが、キーボードとして使うのであれば、それ以前の問題として、基板(PCB)のどちら側を表にして使うかを考えてから付けた方が良い(重要な言い方をしているが、文字などの見栄えだけなので気にしない人ならば問題ない)。

今回のPCBは、裏や表は存在しない。
作成者が決めることになっている。
そのため、ダイオードを付ける側が表になるため、マークを表にするか、販売者のアカウント名を表にするか気にした方が良い。
ダイオードを付けてからでは遅い。

それを知らずに、公式解説通りにダイオードを付けてしまって、ちょっとだけ後悔している^^
もしかしたらだが、公式解説では、ProMicroの解説で向きを気にするように説明しているため、ダイオードの付ける場所はどちらでも良かったのかも知れない(私の言いたいことが分かりますか？)。

![ダイオードの取り付け.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/347629c9-0d77-a188-23cc-c6e3e90315a1.jpeg)




ダイオードをはんだ付けするときは、動かないようにテープで仮固定した方が良いと思う。

![テープ固定ではんだ付け.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/639b0dd0-85ae-b7d3-bff7-76628293f697.jpeg)

(写真の左側は仮固定・右上ははんだ付け前・下がはんだ付け後)







## ProMicroの表裏
ごみHelixキーボードでは、ProMicro同封のピンを使わずに、別封のピンを使っていた。
しかし、今回は同封のピンを使うようだ。
そして、はんだ付けが必要になる。

![ProMicro.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/95ff28fe-87ee-1623-628c-6d6608c2c15d.jpeg)

ピンぼけで見にくいが、全てのピンにはんだ付けをしている。

![ProMicroのはんだ付け.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/c30e9eef-7352-96da-537e-b3c8b638f38b.jpeg)

手前のピンは半田が付いていないように見えるかも知れないが、この程度の付け方でも動いた。


## リセットボタンの取り付け
公式解説では、なぜか全て実装済み(完成品)のキーボード写真を0からの解説として使っているため、いつリセットボタンを取り付ければ良いのか分からない。
私は、ProMicro取り付け後に取り付けた。

![リセットボタン.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/7618441d-04c6-f295-0563-3e0dad7a495a.jpeg)

公式解説に難癖を付けながら、斜めに撮影して、結局私も文句を付けられそうな写真になるという・・・。


## キースイッチの取り付け
公式解説では、遊びを設けているとの説明があった。
そのため、取りあえずテープで固定してはんだ付けしたのだが、固定が甘かったのか斜めになってしまった。
むしろ、半田を盛りすぎたせいか、PCBからキースイッチが浮いて付いてしまった。
未だにはんだ付けが上手くいかない。

![キースイッチの仮固定.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/47062a57-de9d-6ef5-86ca-151980bb8bee.jpeg)

以下、キースイッチの遊びの部分

![遊びの部分.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/762b0415-0086-ed44-0e78-9c6774d39038.jpeg)

微妙に動いてしまう。










# 名刺キーボード作成終了
あとは、キーマッピング変更を残すのみとなる。


# ファームウェア書き込み
WindowsOSでの書き込み方法は販売側も把握していないようだ。
そのため、取りあえず公式解説通りに作業を進めた。

## [AVRDUDESS](http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/ "キーマップ書き込みソフト")入手
よく分からないが、ErgoDoxEZキーボードとは違うソフトウェアを使わなければならない。
そのため、`avrdudess_20180920-2.zip`をダウンロードして、使おうとした。
何故か、exeが消えた。
ウィルスソフトとして検知されたからなのか、削除されては使えない。
仕方ないため、インストーラー版の`setup-AVRDUDESS-2.6.exe`をダウンロードして使うことにした。

![exeファイル削除された.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/da011042-812e-7eca-a799-7dbc5fdf1532.jpeg)

消えたのは、目の錯覚かと思ってしまったからな。
観察は大事だよ。小学生の夏休みに、観察日記があったな。
経験より勉強が大事だと言うことの証だな。




## 実際の書き込み
Programmerプルダウンメニューから`Atmel AppNote AVR109 Boot Loader`を選ぶ。
MCUプルダウンメニューから`ATmega32U4`を選ぶ。
Flash欄には、Hexファイルを選んでおく。
今回は、それ以外の部分を使わずに書き込めた(EEPROM欄など)。

![キーボードに書き込み.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/25dc9494-87ad-02d8-3d60-1dbc7a3fb109.jpeg)

Port欄は、今回`COM3`だが、状況によっては数字部分が変わるだろう。





### ATmega32U4とは？
これが何か分からない。
しかし、PCBに関するようだ(当たり前)。
で、他の種類として、[Planckキーボード](https://olkb.com/planck/pcb)で種類を掲載しているので、ここにも転記する(理解していないのを転記するなと怒られそうだが)。

![PlanckRev6のPCB.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/07b5e63a-b784-86ff-5439-0642dbdc13b6.jpeg)

MCUと言う分野に所属するようだ。ARMは同じようだ。
　　STM32F303

## 今更なので、Hexファイルの作成方法は省略
ErgoDoxEZキーボードでさんざんやってきたことなので、今更説明しなくても良いかなと・・・。


# 動画
醜い動画だが、名刺キーボードの作成動画はある。

https://youtu.be/MBQOYalxRR4

# 完成
動いたぁ〜。
よかったぁ〜。

## もの申す
名前がな・・・検索したら名刺の取り扱いについてであり、キーボードのMeishiではないから情報を集めるのが大変だよ。
販売者はWindows側に興味を持っていないようだし・・・。
逆に言えば、WindowsOSは開発環境に相応しくないと言うことかな。





### 販売制限がな・・・
[購入](https://qiita.com/chesscommands/items/53629173929462dce925)前に気づいていたのだが、なぜか、一人1個しか購入できない。

![販売個数.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/e92cfaf4-5f6b-0200-e242-5ffd4db94ef3.jpeg)

いくつも買う意味は分からないが・・・。



# キーマッピング変更出来ず
リセットボタンを押すが、リセットされず、書き込みが出来るようにならなんだ...
ぬぅぅぅぅ。

何回連続で押してもダメだった。
[説明](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/troubleshooting-and-faq#ts-reset "リセットブートローダ")では、2回なのか、4回なのか分からないが、兎に角押したがダメだった。
リセットボタンをずっと押し続けてもリセットされない。

英語の解説なので分からないが、リセットボタン押下で、750ミリ秒以内はそれが有効になるようだ。
2回連続押下で8秒間有効になるようだ。

## 半田修正
リセットボタンが機能しないため、動いていたキーボードをProMicro側のはんだ付けが甘いと思ってしまい、付け直した。
そして、キーボード操作をしたら今まで動いていたキーが動かなくなってしまった。

動いたキーボードなのに、動かないようにしてしまうとは・・・一生の不覚・・・(今回だけではないが)。

改めて付け直したら動いた。

### ピンセットでリセット
取りあえず、リセットボタンが機能しないため、電通可能なものをつかって、強制的にリセットしてみた。

ProMicroのUSB側から二つ目のピンを繋げて、落胆もとい短絡(ショート)させた。
これにより、リセットできたのか、キーマップを変更出来るようになった。
しかし、毎回成功するわけではないため、やはりタイミングか根気かな・・・。

![短絡.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/e8dcd7ca-acdd-a1da-fb62-5fc403aa8735.jpeg)

リセットボタンが存在しない場合に使う方法なのだが、仕方ない。
そして、ピンセットを当てている部分は、RSTピンのはず・・・。

### qmk_toolbox
Helixゴミキーボードとは違い、接続が確認できる。
なぜにこれが作れるのに、Helixキーボードは作れないのか・・・LEDは難易度が高いのだろう。
再挑戦しなければなるまい。
むむむ。
(リセットボタンが機能していないため、このキーボードも作れているとは言いがたいが)

![toolbox.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/c689da42-aab4-5fe1-e1ac-97bfe2143c48.jpeg)

ちなみに、青文字が今回の名刺キーボードの接続状況で、黄文字が(リセットを掛けた)ErgoDoxEZキーボードになっている。



# 注意点
全てを付けて満足したのだが、上記通りProMicroのはんだ付けをやり直した。
そのとき、キースイッチに半田ごてが触れてしまい、ちょっとだけキースイッチが溶けてしまった。
(短絡写真の上から二つ目のキースイッチがちょっとだけ溶けているのが分かるだろうか)
キースイッチを付ける前に動作確認できれば良いのだが・・・いまだにテスターの使い方が分からないため、犬や猫などの畜生のように手足をばたばたさせた経験から成功に近づけている。
キーボードとして動いたのだから犬や猫より賢いと思って良いかな。

## 反省しない教訓
小さいキーボードかも知れないが、勉強してから取り組もう^^

以上だ。