Keyboard Quantizer Mini のファームウェアのビルド ふたたび

Keyboard Quantizer Mini がvialおよび最新版Remapでのキーマップ書き換えに対応していました。
今度は、ちゃんとビルドできるように頑張ります

# ちゃんとビルドできなかった時の記事

https://qiita.com/cheer4u/items/f9f089806425724c24d2

# 参考にしたサイト

https://github.com/sekigon-gonnoc/keyboard-quantizer-doc/blob/master/mini/vial.md

# 私の環境

Windows 10 の WSL2 の上の ubuntu 22.04 です。書き込みは、Windows からコピーしました。

# ビルド環境

## venv の環境作成

今回は、venv でを使っています。そのため python3 や python3-pip、python3-venvをインストールし、以下のコマンドでqmk-venvを作成

```
$ python3 -m venv qmk-venv
...
```

## qmk-venv 環境への切り替え

```
$ source qmk-venv/bin/activate
(qmk-venv) $ 
```

### 参考：qmk-venv 環境から抜けるときは、deactivate と打ちます

```
(qmk-venv) $ deactivate
$
```

## qmk インストール

```
(qmk-venv) $ python3 -m pip install qmk
```

## Keyboard Quantizer Mini ファームウェアのソースの取得

```
(qmk-venv) $ git clone https://github.com/sekigon-gonnoc/vial-qmk
```

## qmk 環境のセットアップ

```
(qmk-venv) $ cd vial-qmk
(qmk-venv) $ qmk setup
...
```
## Keyboard Quantizer Miniにあったビルド方法を実行！

```
(qmk-venv) $ make sekigon/keyboard_quantizer/mini:vial:uf2
```

エラーになった。エラーになりました。`keymap.h` がないといわれてコンパイルエラーになりました
探したけどない
うーん、とりあえず想像で作成してみます
想像した `keymap.h`がこれ↓

```c:keyboards/sekigon/keyboard_quantizer/mini/keymaps/vial/keymap.h
#pragma once

typedef union {
    uint32_t raw;
    struct {
        uint8_t key_os_override : 4;
    };
} user_config_t;

enum custom_keycodes {
    KEY_OS_OVERRIDE_DISABLE = 0,
    US_KEY_JP_OS_OVERRIDE_DISABLE,
    JP_KEY_US_OS_OVERRIDE_DISABLE,
};
```

とりあえず再度makeしたら通りました。`keymap.h` でよいのかは不明ですができた。
`.build`の下にUF2のファイルができたので、それを Windows のエクスプローラでコピー

```
(qmk-venv) $ ls .build/sekigon_keyboard_quantizer_mini_vial.uf2
.build/sekigon_keyboard_quantizer_mini_vial.uf2
(qmk-venv) $ explorer.exe .
(qmk-venv) $ 
```
## Keyboard Quantizer Miniのファームウェアの書き換え方法

Keyboard Quantizer Miniのファームウェアの書き換え方法は以下を参照してください

https://github.com/sekigon-gonnoc/keyboard-quantizer-doc/blob/master/mini/README.md#%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E6%96%B9%E6%B3%95

:::note info
素直にビルド済みのファームウェアを入れるのか絶対よいです。
:::

ビルド済みのファームウェアの場所

https://github.com/sekigon-gonnoc/keyboard-quantizer-doc/blob/master/mini/README.md#%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E7%A8%AE%E9%A1%9E

## Picossci USBホストで実験

今回も、[スイッチサイエンス Picossci USBホスト](ssci.to/9158) 用にLEDとDP部分を修正してmakeを実行
動いた！Picossci USBホストでも私が動かした感じででは動作しています。

:::note alert
Resetを押さないとうまくいかない。
持っていたキーボードとの相性が悪いみたいです。原因不明
:::

最新の[Remap](https://remap-keys.app/)でも認識されてキーマップの変更もできました。
OSでキーボードを日本語配列になっていても、USキーボードの表示通りに入力できる US_KEY_JP_OS_OVERRIDE_DISABLE が便利です。

Picossci USBホスト用にLEDとDPを修正した。↓が修正した箇所

```diff_c:Picossci USBホスト用の修正箇所
diff --git a/keyboards/sekigon/keyboard_quantizer/mini/c1_usbh.c b/keyboards/sekigon/keyboard_quantizer/mini/c1_usbh.c
index fbbecfabf4..f57e45b21d 100644
--- a/keyboards/sekigon/keyboard_quantizer/mini/c1_usbh.c
+++ b/keyboards/sekigon/keyboard_quantizer/mini/c1_usbh.c
@@ -11,10 +11,14 @@
 void alarm_pool_add_repeating_timer_us(void) {}
 void alarm_pool_create(void) {}

+//#define PICO_PIN_DP 4  // Keyboard Quantizer Mini
+#define PICO_PIN_DP 0  // Picossci USB Host
+//#define PICO_PIN_DP 16  // Adafruit Feather RP2040 with USB Type A Host
+
 // Initialize USB host stack on core1
 void c1_usbh(void) {
     pio_usb_configuration_t pio_cfg = PIO_USB_DEFAULT_CONFIG;
-    pio_cfg.pin_dp                  = 4;
+    pio_cfg.pin_dp                  = PICO_PIN_DP;
     pio_cfg.extra_error_retry_count = 10;
     pio_cfg.skip_alarm_pool         = true;
     tuh_configure(1, TUH_CFGID_RPI_PIO_USB_CONFIGURATION, &pio_cfg);
diff --git a/keyboards/sekigon/keyboard_quantizer/mini/matrix.c b/keyboards/sekigon/keyboard_quantizer/mini/matrix.c
index 01c12461c8..fe1ce375b9 100644
--- a/keyboards/sekigon/keyboard_quantizer/mini/matrix.c
+++ b/keyboards/sekigon/keyboard_quantizer/mini/matrix.c
@@ -21,7 +21,9 @@ static uint8_t          hid_instance;
 static bool             hid_disconnect_flag;
 static uint8_t          pre_keyreport[8];
 #define LED_BLINK_TIME_MS 50
-#define KQ_PIN_LED 7
+//#define KQ_PIN_LED 7  // Keyboard Quantizer Mini
+#define KQ_PIN_LED 25  // Picossci USB Host
+//#define KQ_PIN_LED 13  // Adafruit Feather RP2040 with USB Type A Host
 #define MATRIX_MSBTN_ROW 22

 extern void busy_wait_us(uint64_t delay_us);
diff --git a/keyboards/sekigon/keyboard_quantizer/mini/mini.c b/keyboards/sekigon/keyboard_quantizer/mini/mini.c
index 4931f00b02..8a1eb4d446 100644
--- a/keyboards/sekigon/keyboard_quantizer/mini/mini.c
+++ b/keyboards/sekigon/keyboard_quantizer/mini/mini.c
@@ -7,8 +7,15 @@
 #include "debug.h"
 #include "c1.h"

+//#define PIN_5V_EN 18  // Adafruit Feather RP2040 with USB Type A Host
+
 void keyboard_pre_init_kb(void) {
     set_sys_clock_khz(120000, true);
+#ifdef PIN_5V_EN
+    gpio_init(PIN_5V_EN);
+    gpio_set_dir(PIN_5V_EN, GPIO_OUT);
+    gpio_put(PIN_5V_EN, 1);
+#endif
     keyboard_pre_init_user();
 }

```


# さいごに

[せきごん](https://nogikes.booth.pm/items/4823647)さん、ありがとうございます