LoginSignup
0
0

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

Last updated at Posted at 2023-12-07

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

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

参考にしたサイト

私の環境

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がこれ↓

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のファームウェアの書き換え方法は以下を参照してください

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

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

Picossci USBホストで実験

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

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

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

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

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();
 }

さいごに

せきごんさん、ありがとうございます

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0