#universal16 v0.2をqmk_firmwareで使う(その2) ソフトウェアの用意
このエントリは以下の'続き'になります。配線にあたっての注意点などをお探しの場合はこちらをご覧ください
Note
universal16を使ってqmk_firmwareで新しいキーボードを作成する手順をご紹介します。私自身、qmk_firmwareでキーボードを作成する一連の操作は初めてのものであり、手順に誤りや不足がある可能性があります。この手順のコピペだけでなく公式のDocumentなどを読みながらの操作をおすすめします。当記事についてお気づきの点がありましたら、Twitter(@keyaki_namiki)までお知らせいただけると幸いです。
また、これ以降Git/GitHubの知識が必要になる箇所が多々あります。知らない単語やコマンドはコピペして実行するのではなく、適宜検索するなどしてどういう意味なのか、何をするコマンドなのかを確認するようにしてください。
Gitがインストールされていない場合はapt install git
やpacman -S git
、brew install git
などでインストールできる場合があります。詳しくは、[ git インストール ]
などで検索してみてください。
最後にもう一点、当記事はArchLinux、macOSに展開した環境の下作成されたものです。お使いのOSによってはこの記事の他に必要な手順が発生する可能性がありますことをご留意ください。
配線が済んだら、次にソフトウェアの準備をします。
qmkのrepository(以降、repo)からforkしたものを、手元の、任意のフォルダ下にcloneします。(GitHubのアカウントを持っていない場合は、qmkのrepoからcloneすることもできます)
git clone https://github.com/[YOUR_USERNAME]/qmk_firmware.git
cd qmk_firmware
などでqmk_firmwareのフォルダ内に入ります。
手元のrepoは自分がforkしたものを本流として持っているので、本家qmkのrepoをremoteのリストに追加します。
git remote add [本家とわかる略称、ここでは‘upstream’] https://github.com/qmk/qmk_firmware.git
これでforkした自分のrepoとは別に本家qmkのrepoからも差分を取得できるようになりました。
以下のコマンドで確認することができます。
git remote -v
出力が以下のようになっていることを確認します。
origin https://github.com/[YOUR_USERNAME]/qmk_firmware.git (fetch) origin https://github.com/[YOUR_USERNAME]/qmk_firmware.git (push) upstream https://github.com/qmk/qmk_firmware (fetch) upstream https://github.com/qmk/qmk_firmware (push)
次に、新しい作業用のbranchを用意します。
masterのbranchで作業/commitしてしまうと、本家qmkとの差分で競合が発生したときの調整が大変になってしまうためです。
git checkout -b [開発branchとわかる名称、ここでは‘dev_branch’] master
git status
を実行すると、いま作業しているbranchの名前が(例えば以下のように)わかるので、時々確認するのも良いかと思います。
On branch dev_branch Your branch is up to date with 'origin/master'. nothing to commit, working tree clean
これで、新しくキーボードを作成する準備が大方整いました。早速、やっていきましょう。
新しいキーボードを作成する上で、雛形となるファイルはutil/new_project.sh [あなたのキーボードプロジェクト名]
の実行にって生成することができます。今回は、
./util/new_project.sh universal16
を実行したと仮定して、進めていきます。
先程のコマンドを実行すると、keyboards/
配下にuniversal16
というフォルダができると思います。その中に以下のファイル群が含まれることを確認してください。
config.h
info.json
keymaps
keymaps/default/
keymaps/default/config.h
keymaps/default/keymap.c
keymaps/default/readme.md
readme.md
rules.mk
universal16.c
universal16.h
以降、特に言及がない限り"Hogehoge
というファイル"とあるものはkeyboards/universal16/
の下にあるものを指します。
まずは、config.h
というファイル。
@@ -1,3 +1,3 @@ /* -Copyright 2018 REPLACE_WITH_YOUR_NAME +Copyright 2018 keyaki-namiki @@ -22,8 +22,8 @@ /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT universal16 -#define DESCRIPTION A custom keyboard +#define MANUFACTURER keyaki-namiki +#define PRODUCT universal16 +#define DESCRIPTION 4x4 simple key_matrix with universal board @@ -30,4 +30,4 @@ /* key matrix size */ -#define MATRIX_ROWS 2 -#define MATRIX_COLS 3 +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 @@ -44,4 +44,4 @@ -define MATRIX_ROW_PINS { D0, D5 } -#define MATRIX_COL_PINS { F1, F0, B0 } +#define MATRIX_ROW_PINS { B1, B3, B2, B6 } +#define MATRIX_COL_PINS { C6, D7, E6, B4 } #define UNUSED_PINS
このファイルには、キーボードの配線(どのピンがどの回路に繋がっているかなど)や機能の設定について記述します。詳しくはこちら
今回は、Rows/Colsの部分のみを変更しました(ここでピンの接続について記述しますが、ピンの名前はArduinoで扱うときのものではない点に注意が必要です)。
次に、rules.mk
というファイル。
@@ -42,9 +42.9 @@ # Bootloader selection # Teensy halfkay # Pro Micro caterina # Atmel DFU atmel-dfu # LUFA DFU lufa-dfu # QMK DFU qmk-dfu # atmega32a bootloadHID -BOOTLOADER = atmel-dfu +BOOTLOADER = caterina
今回はコントローラにPro Microを使用するのでcaterina
を選択します。
続いて、universal16.h
というファイル。
universal16は4キーx4キーの16キーで構成されているため、デフォルトで用意される3キー+2キーの5キーで構成される部分を編集します。
@@ -29,9 +29,13 @@ #define LAYOUT( \ - K00, K01, K02, \ - K10, K11 \ -) \ -{ \ - { K00, K01, K02 }, \ - { K10, KC_NO, K11 }, \ -} + K00, K01, K02, K03,\ + K10, K11, K12, K13,\ + K20, K21, K22, K23,\ + K30, K31, K32, K33\ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ +}
K00からK33まで、16キーを配置しているのがわかるかと思います。
最後にkeyboards/universal16/keymaps/
内の、default/keymap.c
というファイルを編集します。
@@ -24,7 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - KC_A, KC_1, KC_H, \ - KC_TAB, KC_SPC \ - ), -}; + KC_KP_1, KC_KP_2, KC_KP_3, KC_UP,\ + KC_KP_4, KC_KP_5, KC_KP_6, KC_RIGHT,\ + KC_KP_7, KC_KP_8, KC_KP_9, KC_LEFT,\ + KC_KP_DOT, KC_KP_0, KC_KP_EQUAL, KC_DOWN\ +), +};
最初なので、16あるキーにnumpadの0-9と"." "="、矢印キーをあててみました。ここから更に、レイヤー機能などを使ってuniversal16を便利にすることができるでしょう。
キーコードについてはこちらに詳しくあります。
以上が、universal16を使ってqmk_firmwareで新しいキーボードを作成する上で最低限編集の必要なファイルになります。
さっそく、Pro Microに書き込んでみましょう。
これまでの手順を書いたとおりになぞっている場合、書き込みに必要なツールはまだインストールされていないかと思います。qmk_firmware
のある位置(pwd
などをして今居るディレクトリがqmk_firmware
であることを確認できます)に移動し、以下のコマンドを実行します。
./util/qmk_install.sh
このコマンドひとつで今使っている環境を調べて必要なパッケージをすべてインストールすることができます。
続いて、コンパイル。
make universal16:default
書き込みまでひと思いに済ませてしまうには、
make universal16:default:avrdude
を実行します。
書き込み用ソフトウェア、QMK Toolboxを使うこともできます。
。。。
どうでしょうか。
#universal16 qmk_firmwareで動かすところまでできた!!! pic.twitter.com/GuRpLFBjEN
— せがた ひろみ (@keyaki_namiki) November 23, 2018
カーソルキーがとても細くて見づらいかと思いますが、うまくいくとこんな風に機能します。
次はMxLEDBitPCB、通称"無限の可能性"を使ってもう2つ、キーを増やしてみます💪