TALP KEYBOARDさんでキットが売っていたので、iPadに繋ぐ持ち運びキーボードが欲しいなと思って作ってみました。一応Mac&iPadでキー入力できるところまでは確認できています。
ちなみにキーボード作成としては、多分技術書典で買った2*4のもの(名前失念)→Ergo42 towel→Meishi→今回のGherkinで四つ目です。はんだ付けもかなり久々だったので、Ergo42 towelつくる前に動画見て勉強したりしたレベルです。
やってないこと
- LED取り付け
- ファームウェアカスタマイズ(書き込みはやった)
キット以外に買った材料
- キースイッチ:Aliaz Silent スイッチ(遊舎工房さん)
- キーキャップ:DSA Keycap Set (26Key/White)(TALP KEYBOARDさん)
- これだけだと4キー足りないので前回Ergo42 towel作ったときの余りも使用
- 通信できる(充電専用ではない)USBケーブル
使用した道具類
組み立て
キットを開封するとこんな感じでした。
ダイオード取り付け
PCBはこんな感じでした。
最初にダイオードのリード線を折り曲げてPCBに差し、はんだ付けします。リード線の折り曲げはラジオペンチでやりました。ダイオードの向きは、ダイオードの黒い線がある方がPCBで二重線になっている方になるようにします。(写真参照)
(今見ると一つピンが長くなってしまって無理矢理押しつぶしてるのがよくわかる……。)
ダイオード導通確認
(※手探りでやったので間違ってるかも)
うまくはんだ付けできてるか調べるために導通確認をしました。
まずダイオード単独の抵抗値をテスターで調べておきます(ダイオードの両端にテスターを当てればOK)その後、以下の写真で示した色のところにテスターを当て、さっき調べた抵抗値と同じ値が出ているかを確認します。もし出ない場合は、はんだ付けがちゃんとできているか確認します。
テスター赤を当てるところ
テスター黒を当てるところ
ピンヘッダ取り付け
ProMicroをPCBにつけるためのピンヘッダをはんだ付けします。GherkinだとProMicroはダイオード(やキーキャップ)とは反対の面にはんだ付けします。ただし、この段階でProMicroまではんだ付けしてしまうと、キースイッチの一部がはんだ付けできなくなるので注意(ちょっとやりそうになった)
ピンヘッダとProMicroを写真のようにPCBにはめて、マスキングテープなどで固定します。ダイオードを付けた面とは逆になります。ProMicroつけずにピンヘッダをはんだ付けすると、後からProMicroを差すときに入れるのがかなり困難になります(前回やった)
その後、裏返してPCBとピンヘッダをはんだ付けします。
はんだ付けした後マスキングテープを剥がしてProMicroを取り外します。はんだからはみ出たピンは切らなくてもいいかもですが、ケースと接触してもアレなので念のためニッパで切りました。
キースイッチ取り付け
念の為テスターを使ってキースイッチを一つ一つ導通確認しました。(念の為なのでやらなくてもよい)
その後、キースイッチ - ケース(トップ用) - PCB(ダイオードと同じ面)となるようにキースイッチをはめます。ケースのアクリル保護シートはがすのにめちゃくちゃ苦戦した。
表から見るとこんな感じ。
裏から見るとこんな感じに、全てのキースイッチのピンが出ていることを確認します。
ちゃんとキースイッチがはまってることが確認できたら、はんだ付けしていきます。ProMicroの裏側につけたキースイッチは、ProMicroに接触しそうだったのでピンをぎりぎりまで切り落としました。
ProMicro取り付け
ひっくり返してProMicroを付け直してはんだ付けします。この時、ProMicro反対側のキースイッチ真ん中のプラスチック部分がProMicroのUSBポート部分と接触するっぽく、盛大にProMicroが斜めになったのですが、実用的には問題ないはず……。
ピンはケースと接触するのではんだぎりぎりで切り落とすのですが、この後のファームウェア書き込みをして問題ないかチェックしてからにすることにしました。
ファームウェア書き込み
この段階でファームウェアを書き込んで動作を見ました。
ファームウェアはQMKを使い、OSは Mac (Mojave 10.14.2) を使いました。QMK自体のセットアップはErgo42 towelに書き込んだときに完了していたのですが、最初からやるなら多分こんな感じになるはず。
まずQMK toolboxの記述を見て、必要なライブラリなどをhomebrewでインストールします。ただし、現状 avr-gcc
のバージョンは最新の8系だと書き込みに失敗してしまうので、 avr-gcc@7
としてインストールします。
$ brew tap osx-cross/avr
$ brew tap PX4/homebrew-px4
$ brew update
$ brew install avr-gcc@7
$ brew install dfu-programmer
$ brew install gcc-arm-none-eabi
$ brew install avrdude
次に、ファームウェアのリポジトリをcloneします。
$ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware
clone後、キーボードをMacにつないでから、下記のコマンドを入力します。
$ make 40percentclub/gherkin:default:avrdude
するとビルドが始まり、正常にビルドできると Detecting USB port, reset your controller now........
という表示が出て .
が断続的に表示されるようになります(ならなかったらエラーメッセージなどを頼りに直す)そうなったら、ProMicroで次の写真の位置( GND
とその隣の RST
)をショートさせてDFUに入ります。DFUに入るとUSB経由で書き込みできるようになります。DFUモードになると、ProMicroのLEDが赤も点灯するっぽい?(普段は緑だけ点灯している)
なお、下記写真のところは今回ショートさせる箇所とつながっているらしく(参考文献3つ目を参照)、↑の代わりにここをショートさせてもよいようです。キットにはタクトスイッチも入っていたので、ここにタクトスイッチを差してスイッチを押してもよいはず。ダイオード取り付け後にタクトスイッチを差し込んで、PCBの GND
と RST
のところにテスターを当てて導通確認して導通していることは確認しました。
※写真撮り忘れたのでピンヘッダ切った後の写真になってます
DFUに入ると Detected controller on USB port at /dev/tty.*
( *
の部分は環境依存)のように表示されて、書き込みが始まるはずです。書き込み終了までは↓のような感じに表示されました。
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file ".build/40percentclub_gherkin_default.hex"
avrdude: input file .build/40percentclub_gherkin_default.hex auto detected as Intel Hex
avrdude: writing flash (17264 bytes):
Writing | ################################################## | 100% 1.33s
avrdude: 17264 bytes of flash written
avrdude: verifying flash memory against .build/40percentclub_gherkin_default.hex:
avrdude: load data flash data from input file .build/40percentclub_gherkin_default.hex:
avrdude: input file .build/40percentclub_gherkin_default.hex auto detected as Intel Hex
avrdude: input file .build/40percentclub_gherkin_default.hex contains 17264 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.15s
avrdude: verifying ...
avrdude: 17264 bytes of flash verified
avrdude: safemode: Fuses OK (E:FB, H:D8, L:FF)
avrdude done. Thank you.
書き込みが終了すると、私の場合はMacのキーボード認識ウィザードが表示されました(どんな環境でも出るのかは謎)
それをキャンセルしてから Karabiner-Elements
の Karabiner-EventViewer
を起動し、一つずつキーを押してキーコードが正しく送られているのを確認しました。ここはテキストエディタなりなんなり確認できればなんでもいいと思います。なお、デフォルトのキーマップはリポジトリの keyboards/40percentclub/gherkin/keymaps/default/keymap.c にあるのを参照しました。
ケース組み立て
動作が確認できたら、前述のとおりピンヘッダをぎりぎりで切り落とします。
その後、ケース中間 - ケース中間 - ケースのボトムと合わせてボルトとナットで固定します。 ただ全部固定すると、ファームウェア書き込みで行うショートができなくなるので、全部止めずに一箇所だけ止めておくほうがいいかもです。 デフォルトのキーマップだとQ長押ししてレイヤー1にしてBを押せばRESETが入力されるのでそれでよさそう。
いい感じにタクトスイッチが外に出せないかおいおい検討してみたい気もするけど、そんな頻繁に押すものでもないと思うのでどうなんだろう。USBポート側はこんな感じなので、ProMicroとケースの間からタクトスイッチを出せばなんとか……?(きびしそう)
キーキャップはめ
最後にキーキャップをはめます。多分ファームウェアいじって配列変えるんですが、ひとまずデフォルトの配列ではめました。
キーキャップをはめおわったらゴム足つけて完成です。
作ってみて
だいたい5時間ぐらいでできました。はんだ付けするところ少ないと早い。 あとキット届いた段階でも思いましたが、3*10かなり小さいです。なんというかかわいらしい。持ち運びは楽そうですが、キーマップはいまも悩んでいます。 基本iPadでは日本語しか打たない予定なのでそれに特化してもいいかもしれない。