「自作キーボード沼に入ってみた件⑤」のつづきです。
ハード的に出来上がったので、次はファームウェアです。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仕様にしたため、数字キー(一番上の段)が左にずれて、なかなか慣れません(笑)。
♪♪♪
そして次回は、キーキャップとまとめです。
♪♪♪
こちらもどうぞ。
自作キーボード沼に入ってみた件①
自作キーボード沼に入ってみた件②
自作キーボード沼に入ってみた件③
自作キーボード沼に入ってみた件④
自作キーボード沼に入ってみた件⑤
自作キーボード沼に入ってみた件⑦
自作キーボード沼に入ってみた件(おまけ)