2021-06-18

弱点はなくなった。AnnePro2をQMKでカスタマイズ

AnnePro2

AnnePro2、良いんだけどもうちょっとなんとかしたい。
ObinsKitによるカスタマイズではどうしても限界が・・・

どうせファームウェアはQMK互換じゃないの?と思って調べてみたら、いましたよQMKで上書きしている人が。
しかも本当は互換じゃないらしい。すげぇな。

Open Anne Proというプロジェクトです。
https://openannepro.github.io/

そして、非公式です。
みんな大好き自己責任。

AnnePro2-Tools のダウンロード

ファームウェアを書き込むためのツールです。

Mac, Linuxな人はリポジトリをクローンしてくると良いみたいです。
https://github.com/OpenAnnePro/AnnePro2-Tools

Windowsはビルド環境が面倒なので、exeファイルをサクッとダウンロードしちゃいましょう。 https://ci.codetector.org/job/OpenAnnePro/job/AnnePro2-Tools/job/master/

QMKファームウェアのダウンロード

いじったファームウェア自分でビルドする必要があるので、WSLでソース編集・ビルドしました。

git clone https://github.com/OpenAnnePro/qmk_firmware.git annepro-qmk --recursive --depth 1

搭載しているコントローラの種類によって、C15系とC18系があるようです。 キーボードをひっくり返すと中央に円形のロゴがあり、C15バージョンは「obinslab」が円に刻まれているようですが、C18には「AnnePro」となっているそうです。
うちのは「AnnePro」ロゴだったのでC18だと思います。

コンパイラのインストール

sudo apt update
sudo apt install gcc-arm-none-eabi -y

試しにビルド

編集に入る前に、まずはビルドが通るか試してみましょう。

# For C15 Revision
make annepro2/c15:default
# For C18 Revision
make annepro2/c18:default

先程インストールしたコンパイラだけでは足りないかもしれないので、適宜エラーメッセージを見ながら追加していきます。
defaultはプロファイル名です。プロファイルを指定しない場合、このキーボードのすべてのプロファイルがビルドされるので多少時間がかかります。

ビルドが成功すると.buildディレクトリに成果物が保存されているので確認しましょう。

ls -l .build
total 4320
-rwxr-xr-x 1 nekoha nekoha  25376 Jun 25 08:25 annepro2_c18_default.bin
-rwxr-xr-x 1 nekoha nekoha 872004 Jun 25 08:25 annepro2_c18_default.elf
-rw-r--r-- 1 nekoha nekoha  71443 Jun 25 08:25 annepro2_c18_default.hex
-rw-r--r-- 1 nekoha nekoha 517192 Jun 25 08:25 annepro2_c18_default.map
drwxr-xr-x 5 nekoha nekoha   4096 Jun 25 08:25 obj_annepro2_c18
drwxr-xr-x 7 nekoha nekoha   4096 Jun 25 08:25 obj_annepro2_c18_default

上記のように出力されていれば成功です!

マクロの編集

ビルドがオールグリーンで成功したら、いよいよカスタムファームウェアの作成です。

プロファイルをコピーしてから編集

annepro-qmk/keyboards/annepro2/keymaps/default ディレクトリを、同じ階層にコピーします。
そして好きなプロファイル名に変更しましょう。

今回はnekohaにしました。

編集の小ネタ

マクロはQMKのいつものいじり方ですが、マクロに割り当てる番号のSAFE_RANGEの使い方が違いました。

// 通常のコード
enum macro_id {
    MACRO1 = SAFE_RANGE,
};

// AP2対応させるためのコード
enum macro_id {
    MACRO1 = AP2_SAFE_RANGE,
};

専用のAP2_SAFE_RANGEを利用します。
コレがわからず往生していたのですが、他人のプロファイルをじっくり眺めていたら発見できました!

ビルド

今回は自分のプロファイルをターゲットにビルドします。

make annepro2/c18:nekoha

無事ビルドできたらファームウェア書き換えツールの置いてあるディレクトリにコピーしておきます。

cp ./.build/annepro2_c18_nekoha.bin ~/downloads/ap2/ 

ファームウェア書き換え

さて、書き換えられるかな・・・?!

AnnePro2をつなぐ

AnnePro2はPCから外します。再度USB接続するときに、ESCキーを押しながら接続してください。 こうするとAnnePro2はキー操作を受け付けない書き換えモードになります。もう一台キーボードを用意しておきましょう。
使えなくなるのはAnnePro2のみなので、ノートPCなら本体のキーボードはそのまま使えます。

AnnePro2ツールで書き込む

先程ビルドした.bin ファイルをツールを使って書き込みます。

.\annepro2_tools_x64.exe .\annepro2_c18_nekoha.bin 

LEDを光らせるためには

適用の流れだけ説明します。編集は面倒なのでしていない。

リポジトリのコピー

ソースをcloneしておきます。

git clone https://github.com/OpenAnnePro/annepro2-shine.git --recursive

LED プロファイルのビルド

デフォルトのビルドを使っています。

make C18

ここでビルドしたannepro2-shine-C18.binを、annepro2_toolsを使ってLEDを有効にしたキーマップ一緒に書き込みます。

キーマップのLEDを有効にする

QMK側ソースのデフォルト設定では、LED点灯がオフになっています。
光らせる場合はソース下部でコメントアウトされている2箇所を有効にします。

// Code to run after initializing the keyboard
void keyboard_post_init_user(void) {
    // Here are two common functions that you can use. For more LED functions, refer to the file "qmk_ap2_led.h"

    // annepro2-shine disables LEDs by default. Uncomment this function to enable them at startup.
    annepro2LedEnable(); // ← ここ

    // Additionally, it also chooses the first LED profile by default. Refer to the "profiles" array in main.c in
    // annepro2-shine to see the order. Replace "i" with the index of your preferred profile. (i.e the RED profile is index 0)
    annepro2LedSetProfile(7); // ← ここ
}

LED モジュールプログラムの書き込み

.\annepro2_tools_x64.exe .\annepro2_c18_nekoha.bin
.\annepro2_tools_x64.exe --boot -t led .\annepro2-shine-C18.bin

ここまでうまくいけば、LEDが点灯して、そのままキーボードが使えるようになります!

成功

マクロ動かすのに難儀しましたが、無事にカスタムキーマップを書き込むことができました。
レイヤー数を増やしたり、レイヤータップマクロを実現できたりと、大満足です。

良かった点

  • Layer5枚もOK! これでWindowsでもMacでも使える(ALT-GUIスワップ)
  • SPACEキーに割り当てるレイヤータップ動作が安定
  • レイヤータップ動作にマクロを割り当てられた

悪かった点

  • Bluetoothがうまく認識できない

    • ホントは使えるはずなので何か間違えてる

総じて、良かった

苦労して対応したかいがありました。
正直なところ、HHKBの方がカスタマイズもしやすく親指でより多くのキーを押せるので便利なのですが。
最近、HHKBのゴムが劣化したせいか?以前よりタッチが重くなってきていたので、赤軸の軽さがとても快適です!!

さて、Bluetooth対応がんばるかー


猫派 / 基本インドア / ガジェット大好き / RDP推進派 / 自作キーボード
コロナ禍の趣味はPC+VRでゲーム。
最近のゲーム:Factorio / にゃんこ大戦争

→ Policy