ラベル Kailh の投稿を表示しています。 すべての投稿を表示
ラベル Kailh の投稿を表示しています。 すべての投稿を表示

2019年8月15日木曜日

自作キーボード沼に入ってみた件⑥


「自作キーボード沼に入ってみた件⑤」のつづきです。


ハード的に出来上がったので、次はファームウェアです。Pro Microの書き込みテストにはQMK Toolsを使いましたが、前回書いたように、今ひとつ調子が悪いのでQMK firmwareをそのまま使います。

まずはhomebrewのupdate, upgradeして、さらにdoctorでエラーはもちろん、ワーニングも消しておきます。これ大事。前回に続いて2度目です。
$ brew update
Already up-to-date.
$ brew upgrade
$ brew doctor
Your system is ready to brew.
$

適当なディレクトリに、QMK firmwareをcloneします。
$ cd fuga/
$ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
Cloning into 'qmk_firmware'...
remote: Enumerating objects: 166138, done.
remote: Total 166138 (delta 0), reused 0 (delta 0), pack-reused 166138
Receiving objects: 100% (166138/166138), 125.98 MiB | 1.21 MiB/s, done.
Resolving deltas: 100% (108911/108911), done.
Checking out files: 100% (10943/10943), done.
Submodule 'lib/chibios' (https://github.com/qmk/ChibiOS) registered for path 'lib/chibios'

※省略

Receiving objects: 100% (24906/24906), 16.42 MiB | 1.33 MiB/s, done.
Resolving deltas: 100% (16001/16001), done.
Submodule path 'lib/chibios': checked out '587968d6cbc2b0e1c7147540872f2a67e59ca18b'
Submodule path 'lib/chibios-contrib': checked out 'ede48346eee4b8d6847c19bc01420bee76a5e486'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/ugfx': checked out '3e97b74e03c93631cdd3ddb2ce43b963fdce19b2'
$ 

cloneしたQMK firmwareのディレクトリに移動して、インストールします。
$ cd qmk_firmware/
$ util/qmk_install.sh
Already up-to-date.
==> Installing avr-gcc@7 from osx-cross/avr
==> Downloading https://gcc.gnu.org/pub/gcc/releases/gcc-7.4.0/gcc-7.4.0.tar.xz
Already downloaded: /Users/hoge/Library/Caches/Homebrew/downloads/8b80c959666a423edc65d1fa057cf52e3bb84f33d23e31c0b40b7b7cd93c5ad9--gcc-7.4.0.tar.xz
==> ../configure --target=avr --prefix=/usr/local/Cellar/avr-gcc@7/7.4.0 --libdir=/usr/local/Cellar/avr-gcc@7/7.4.0/lib/avr-gcc/7 --enable-languages=c,c++ --wit
==> make
==> make install
==> Downloading https://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2
==> Downloading from https://nongnu.freemirror.org/nongnu/avr-libc/avr-libc-2.0.0.tar.bz2
######################################################################## 100.0%
==> ./configure --build=i686-apple-darwin18.5.0 --prefix=/usr/local/Cellar/avr-gcc@7/7.4.0 --host=avr
==> make install
==> Caveats
avr-gcc@7 is keg-only, which means it was not symlinked into /usr/local,

※省略

==> Pouring dfu-util-0.9.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/dfu-util/0.9: 11 files, 115.7KB
==> Caveats
==> avr-gcc@7
avr-gcc@7 is keg-only, which means it was not symlinked into /usr/local,
because it might interfere with other version of avr-gcc. This is useful if you want to have multiple version of avr-gcc installed on the same machine.

If you need to have avr-gcc@7 first in your PATH run:
  echo 'export PATH="/usr/local/opt/avr-gcc@7/bin:$PATH"' >> ~/.bash_profile

For compilers to find avr-gcc@7 you may need to set:
  export LDFLAGS="-L/usr/local/opt/avr-gcc@7/lib"

Linking /usr/local/Cellar/avr-gcc@7/7.4.0... 20 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/avr-gcc@7/bin:$PATH"' >> ~/.bash_profile
$ 


♪♪♪


動作チェックとして、デフォルトのキーマップを書き込みます。

早速左右のキーボードをTRRSケーブルで接続して、左手側のPro MicroにUSBケーブルを挿します。

キーマップをコンパイル(hexファイルを生成)します。ディレクトリは、cloneしたQMK firmwareのディレクトリのままです。
$ make keebio/iris/rev2:default
QMK Firmware 0.6.328
Making keebio/iris/rev2 with keymap default

avr-gcc (GCC) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/keebio/iris/iris.c                                                             [OK]
Compiling: keyboards/keebio/iris/rev2/rev2.c                                                        [OK]
Compiling: keyboards/keebio/iris/keymaps/default/keymap.c                                           [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/keymap_common.c                                                                  [OK]
Compiling: quantum/keycode_config.c                                                                 [OK]

※省略

Compiling: lib/lufa/LUFA/Drivers/USB/Core/Events.c                                                  [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/HostStandardReq.c                                         [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/USBTask.c                                                 [OK]
Linking: .build/keebio_iris_rev2_default.elf                                                        [OK]
Creating load file for flashing: .build/keebio_iris_rev2_default.hex                                [OK]
Copying keebio_iris_rev2_default.hex to qmk_firmware folder                                         [OK]
Checking file size of keebio_iris_rev2_default.hex                                                  [OK]
 * The firmware size is fine - 23244/28672 (5428 bytes free)
$ 
hexファイルはQMK firmwareの直下に、keebio_iris_rev2_default.hexの名前で作成されます。これを使えばQMK Toolsで書き込みができるのでしょうが(未確認)、ここではコンパイルが通ることだけを確認します。


今度は、末尾に”:avrdude”を付けて、コンパイル&書き込みを行います。

’’Detecting USB port, reset your controller now....”の表示がでたら、キーボードのリセットスイッチをポチッと押します。そうすると書き込みが始まります。
$ make keebio/iris/rev2:default:avrdude
QMK Firmware 0.6.328
Making keebio/iris/rev2 with keymap default and target avrdude

avr-gcc (GCC) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text    data     bss     dec     hex filename
      0   23244       0   23244    5acc .build/keebio_iris_rev2_default.hex

Compiling: tmk_core/common/command.c                                                                [OK]
Linking: .build/keebio_iris_rev2_default.elf                                                        [OK]
Creating load file for flashing: .build/keebio_iris_rev2_default.hex                                [OK]
Copying keebio_iris_rev2_default.hex to qmk_firmware folder                                         [OK]
Checking file size of keebio_iris_rev2_default.hex                                                  [OK]
 * The firmware size is fine - 23244/28672 (5428 bytes free)
Detecting USB port, reset your controller now.................               ←ここでポチッと!!
Device /dev/tty.usbmodem14101 has appeared; assuming it is the controller.
Waiting for /dev/tty.usbmodem14101 to become writable.

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.

※省略


avrdude: input file .build/keebio_iris_rev2_default.hex contains 23244 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.17s

avrdude: verifying ...
avrdude: 23244 bytes of flash verified

avrdude: safemode: Fuses OK (E:FB, H:D8, L:FF)

avrdude done.  Thank you.

$ 


♪♪♪


無事書き込みができたら、Macデフォルトのキーボードビューアを使って、すべてのキーが動作するか確認します。

システム環境設定の「メニューバーにキーボードビューアと絵文字ビューアを表示」にチェックを入れて、メニューバーからキーボードビューアを開きます。

チェックを入れます。


キーボードビューアを表示を選択。


キーボードビューア

上手くいかない原因はケースバイケースですが、特定のキーだけが効かないときに、最初に疑うべきはハンダ付けのし忘れです。ハンダ付け箇所が多いのでありがちです。

わたくし、一カ所忘れてました。


♪♪♪


ハードウェアに問題がないことが確認できたら、キーマップのカスタマイズです。

上記のデフォルトのキーマップは、qmk_firmware/keyboards/keebio/iris/keymaps/のdefaultディレクトリにありますので、このディレクトリを同じ場所に別名でコピーして作成します。

$ cd keyboards/keebio/iris/keymaps/
$ cp -r default piyo
$ ls -la
total 16
drwxr-xr-x@ 42 hoge  staff  1344  5  1 00:58 .
drwxr-xr-x@ 14 hoge  staff   448  5  1 00:49 ..
-rw-r--r--@  1 hoge  staff  6148  5  1 00:58 .DS_Store
drwxr-xr-x@  4 hoge  staff   128  4 30 08:28 ave-63
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 bmoorey
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 broswen
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 davidrambo
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 dbroqua
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 default        ←これをコピーして
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 drashna
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 drashna_lp

※省略

drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 olligranlund_nordic
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 omgvee
drwxr-xr-x@  5 hoge  staff   160  5  1 00:54 piyo           ←これを作成
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 rdhaene
drwxr-xr-x@  7 hoge  staff   224  4 30 08:28 rs
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 s1carii
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 saviof
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 swedish
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 transmogrified
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 via
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 vyolle
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 wanleg
drwxr-xr-x@  5 hoge  staff   160  4 30 08:28 xyverz
drwxr-xr-x@  6 hoge  staff   192  4 30 08:28 yanfali
$

キーマップは3つのファイルで構成されています。
$ ls -l piyo/
total 48
-rwxr-xr-x@ 1 hoge  staff    867  5  1 00:54 config.h
-rwxr-xr-x@ 1 hoge  staff  12387  5  1 00:54 keymap.c
-rwxr-xr-x@ 1 hoge  staff     45  5  1 00:54 rules.mk
$ 

主に修正するのはkeymap.cになりますが、まずはこのままコンパイルしてみます。方法はデフォルトと同じですが、defaultの部分をコピーして作ったディレクトリ名に変更します。

QMK firmwareのディレクトリに戻ってmakeします。書き込みも同じように後ろに:avrdudeを付けます。
$ cd fuga/qmk_firmware/
$ make keebio/iris/rev2:piyo
※省略
$ make keebio/iris/rev2:piyo:avrdude
※省略
$

後は、QMK firmwareのドキュメントを見ながら、新しく作ったキーマップファイルを自由にカスタマイズします。

これで頑張ってHammerspoonで設定する必要がなくなりました。


さよならHammerspoon、今までありがとう。
あとKarabinerも。


参考になるかどうかはわかりませんが、ここに僕のキーマップを置いてありますので、よかったら見てみてください。サブレイヤーもひとつですし、tap danceも何箇所か使ってます。

Escを左手の親指という特等席に置いたVimmer仕様にしたため、数字キー(一番上の段)が左にずれて、なかなか慣れません(笑)。


♪♪♪


そして次回は、キーキャップとまとめです。


♪♪♪


こちらもどうぞ。
自作キーボード沼に入ってみた件①
自作キーボード沼に入ってみた件②
自作キーボード沼に入ってみた件③
自作キーボード沼に入ってみた件④
自作キーボード沼に入ってみた件⑤
自作キーボード沼に入ってみた件⑦
自作キーボード沼に入ってみた件(おまけ)



2019年6月15日土曜日

自作キーボード沼に入ってみた件④


「自作キーボード沼に入ってみた件③」のつづきです。


色々あったリセットスイッチの取り付けです。

このプッシュスイッチには、ボタンの下にツメが出ています。ボタンを押した時の力を、ハンダ付けした各端子にかかるのを防止するためだと思います。

ツメが出ています。

もちろんPCBには、このツメに対応した穴が空けられています。ところが残念なことに、この穴の位置がずれてしまっていてハマりません。

なんだよこれ。

文句を言っていてもしょうがないので、ツメをニッパーで切ります。

ツメを切りました。


スイッチの2本の端子はそのままハンダ付けしますが、ケースから伸びている固定用の足は、PCBの穴に通してから先端をしっかりと曲げてからハンダ付けします。力がかかるところなので、すこしでも強度を持たせたいところです。


♪♪♪


次はTRRSジャックです。

ここもジャックの抜き差しに力がかかる場所なので、4本のツメ状の端子をPCBの穴に通して、先端をしっかり曲げてからハンダ付けします。


♪♪♪


4.7kΩの抵抗はオプションです。

I2C用の抵抗らしいですが、いまのところ何の役にも立たないらしいです。でも部品が余るのもなんですし、Keebioのビルドガイドにも「ハンダ付け箇所がちょっと増えるだけなんだから、とりあえず黙って付けとけ(意訳)」と書いてあるので取り付けます。

この抵抗は2本ありますが、この2本を左手用にだけ付けます。

、、、ってか、なんすかI2Cって。


♪♪♪


次は、Pro Micro用のピンヘッダです。

これは上下で長さが違います。短い方はいいですが、長い方はキースイッチ側、Pro Micro側のどちらに使うにしても長すぎると思います。

そこで一度、PCBにピンヘッダ、Pro Microを刺してみて長さを確認してみた方がいいです。まあ、ピンヘッダをハンダ付けした後に、余分な部分をニッパーで切ればいいだけなんですが、今回は「ハンダ付け前に切る」を原則にしていますし、ピンヘッダは太くて結構固いので先に切っておく方がいいと思います。

慎重に長さを見ます。

ここでもう一点ですが、キースイッチも試しに刺してみて、飛び出るリードの長さも確認しておいた方がいいです。特に左手用は、Pro Microの部品面がPCB側に向くことになりますので、おそらく、その下に配置されるキースイッチの端子とPro Microが干渉しかねません。

ですから、この2個のキースイッチだけ、先に端子を短く切っておくといいと思います。ピンヘッダを取り付けた後だと、使用するニッパーの形状にもよりますが、ピンヘッダが邪魔をして切りにくくなるかもしれません。

そして話はピンヘッダに戻ります。大体短い方に合わせて切れば大丈夫だと思います。固いので、要注意です。


テープを貼って目安にして、切ると吉。


ピンヘッダを切ったら、PCBにきっちり根元まで刺して、さらにピンヘッダが傾かないための補助としてPro Microを刺して、マスキングテープで固定して、ハンダ付けします。

Pro Microは貼るだけ。


Pro Microは刺すだけで、ここではハンダ付けしません。
※ついつい流れでPro Microをハンダ付けしてしまいがちです。お気を付けあれ。


ピンヘッダのハンダ付けが終わったら、Pro Microは取り外しておきます。

残るは、キースイッチとPro Microです。


♪♪♪


クリッキーのキースイッチが欲しかったので、Kailh BOXの白軸を選びました。正直どのブランドを選べばいいかよくわからなかったので、値段の安さで選びました。Gateronとかが人気なのでしょうか。

男は黙ってクリッキー。

クリッキーです。職場で使うと嫌われるヤツです。僕は一人なので、誰も文句を言う人間はいません。

でも待ってください。職場でクリッキーの音がウザいと言われるのは隣との距離の問題です。オフィスが狭いのです。「メモリxxGBは人権」ってネタがありますが、、、そう、


クリッキーは人権(キリッ)。


♪♪♪


トッププレートにキースイッチをはめ込みます。端子の向きに気をつけます。2,3個付けてみてPCBを乗せてみれば、間違っていないかはすぐわかります。

端子側(PCB側)です。


プレートにすべてはめ込んだら、キースイッチに浮きがないかどうか(プレートにしっかりスイッチの根元まで入っているか)をしっかり確認します。浮きがあると、キーボードを使っているうちに浮きが解消て、端子に力がかかってハンダが割れるなんてことも起きそうです。

さらに、各2本の端子が同じ方向に並んでいるか確認します。そして、端子が曲がっていないか、ちゃんと垂直になっているか、いろいろな角度から見て確認します。曲がっているときはラジオペンチで直します。

各スイッチに問題ないことが確認できたら、PCBをのせます。

多くの穴に一度に端子を刺すことになりますが、PCBのキースイッチ用の穴は大きめにできているので、苦労なく穴に通すことができます。むしろ、変に引っかかるようなら、端子が曲がっているか、スイッチをはめ込んだ向きが間違っている可能性が高いので、無理は禁物です。

各端子がすべてPCBの穴に通っているかを、よーく確認します。これが、


老眼にはつらい。すげーつらい。
目で見ても自信が持てないので、ひとつずつ指でさわって確認しました。触診(笑)。


でも、ここのミスを見落とすと、すっぽんすっぽんハンダを吸い取って後戻りの罰ゲームが待っています。お気を付けあれ。

キースイッチのハンダ付けは、PCBに浮きができないように、ハンダを持つ手の残った指でPCBを軽く押さえながら行います。

PCBの浮きに注意です。


トッププレートとボトムプレートの間のスペーサーは12ミリです。この12ミリの間にすべて納めないといけないでので、ここを雑にやると、あとでボトムプレートにぶつかることになります。


♪♪♪


そしてPro Microの取り付けに続きます。


♪♪♪


こちらもどうぞ。
自作キーボード沼に入ってみた件①
自作キーボード沼に入ってみた件②
自作キーボード沼に入ってみた件③
自作キーボード沼に入ってみた件⑤
自作キーボード沼に入ってみた件⑥
自作キーボード沼に入ってみた件⑦
自作キーボード沼に入ってみた件(おまけ)