Open20

cocot46plusのファームウェアをアップデート

Yudai NakataYudai Nakata

トラックボールのスクロール時にマウス用レイヤーに移動するtakashicompanyさん製ファームウェアを入れるとなぜかRemapでロータリーエンコーダーが設定できなくなった(これはこれで要調査)ので,QMKの勉強も兼ねて新しいファームウェアを作る.

https://zenn.dev/takashicompany/articles/69b87160cda4b9

ロータリーエンコーダーが設定できない様子

やりたいことは以下の3つ:

  • QMK latestへの追従
  • ARMへの移行
  • Vial化
Yudai NakataYudai Nakata

注意点としては,RP2040は動作電圧3.3Vなのに対してcocot46plusで使用されるマウスセンサーは4V必要.なので,レベルシフト回路を実装したv2基板が必要になる(v2で本当に上手くいくかはまだ不明)

Yudai NakataYudai Nakata

当該ブランチにチェックアウトしたのちに,まずはデフォルトのキーマップをビルドしてみる.これはAtmega32U4がターゲット.

ビルドのログ
$ qmk compile -kb aki27/cocot46plus -km default
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=default KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_default INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_default VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


Generating: .build/obj_aki27_cocot46plus_default/src/info_deps.d                                    [OK]
avr-gcc (Homebrew AVR GCC 9.4.0_1) 9.4.0
Copyright (C) 2019 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.

Generating: .build/obj_aki27_cocot46plus_default/src/info_config.h                                  [OK]
Generating: .build/obj_aki27_cocot46plus_default/src/default_keyboard.c                             [OK]
Generating: .build/obj_aki27_cocot46plus_default/src/default_keyboard.h                             [OK]
Compiling: keyboards/aki27/cocot46plus/matrix.c                                                     [OK]
Compiling: keyboards/aki27/cocot46plus/cocot46plus.c                                                [OK]
Compiling: .build/obj_aki27_cocot46plus_default/src/default_keyboard.c                              [OK]
Compiling: quantum/keymap_introspection.c                                                           [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/bitwise.c                                                                        [OK]
Compiling: quantum/led.c                                                                            [OK]
Compiling: quantum/action.c                                                                         [OK]
Compiling: quantum/action_layer.c                                                                   [OK]
Compiling: quantum/action_tapping.c                                                                 [OK]
Compiling: quantum/action_util.c                                                                    [OK]
Compiling: quantum/eeconfig.c                                                                       [OK]
Compiling: quantum/keyboard.c                                                                       [OK]
Compiling: quantum/keymap_common.c                                                                  [OK]
Compiling: quantum/keycode_config.c                                                                 [OK]
Compiling: quantum/sync_timer.c                                                                     [OK]
Compiling: quantum/logging/debug.c                                                                  [OK]
Compiling: quantum/logging/sendchar.c                                                               [OK]
Compiling: quantum/matrix_common.c                                                                  [OK]
Compiling: quantum/debounce/sym_defer_g.c                                                           [OK]
Compiling: quantum/main.c                                                                           [OK]
Assembling: platforms/avr/xprintf.S                                                                 [OK]
Compiling: platforms/avr/printf.c                                                                   [OK]
Compiling: quantum/pointing_device/pointing_device.c                                                [OK]
Compiling: quantum/pointing_device/pointing_device_drivers.c                                        [OK]
Compiling: quantum/pointing_device/pointing_device_auto_mouse.c                                     [OK]
Compiling: drivers/sensors/adns5050.c                                                               [OK]
Compiling: quantum/color.c                                                                          [OK]
Compiling: quantum/rgblight/rgblight.c                                                              [OK]
Compiling: quantum/rgblight/rgblight_drivers.c                                                      [OK]
Compiling: quantum/process_keycode/process_rgb.c                                                    [OK]
Compiling: quantum/led_tables.c                                                                     [OK]
Compiling: drivers/oled/oled_driver.c                                                               [OK]
Compiling: quantum/encoder.c                                                                        [OK]
Compiling: drivers/encoder/encoder_quadrature.c                                                     [OK]
Compiling: platforms/avr/drivers/ws2812_bitbang.c                                                   [OK]
Compiling: quantum/bootmagic/bootmagic.c                                                            [OK]
Compiling: quantum/process_keycode/process_grave_esc.c                                              [OK]
Compiling: quantum/process_keycode/process_magic.c                                                  [OK]
Compiling: quantum/mousekey.c                                                                       [OK]
Compiling: quantum/send_string/send_string.c                                                        [OK]
Compiling: quantum/process_keycode/process_space_cadet.c                                            [OK]
Compiling: tmk_core/protocol/host.c                                                                 [OK]
Compiling: tmk_core/protocol/report.c                                                               [OK]
Compiling: tmk_core/protocol/usb_device_state.c                                                     [OK]
Compiling: tmk_core/protocol/usb_util.c                                                             [OK]
Compiling: platforms/suspend.c                                                                      [OK]
Compiling: platforms/synchronization_util.c                                                         [OK]
Compiling: platforms/timer.c                                                                        [OK]
Compiling: platforms/avr/hardware_id.c                                                              [OK]
Compiling: platforms/avr/platform.c                                                                 [OK]
Compiling: platforms/avr/suspend.c                                                                  [OK]
Compiling: platforms/avr/timer.c                                                                    [OK]
Compiling: platforms/avr/bootloaders/caterina.c                                                     [OK]
Compiling: platforms/avr/drivers/i2c_master.c                                                       [OK]
Archiving: .build/obj_aki27_cocot46plus_default/i2c_master.o                                        [OK]
Compiling: tmk_core/protocol/lufa/lufa.c                                                            [OK]
Compiling: tmk_core/protocol/usb_descriptor.c                                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Class/Common/HIDParser.c                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c                                        [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c                                [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c                                      [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c                                          [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c                                    [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c                                          [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c                                 [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c                                  [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/ConfigDescriptors.c                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/DeviceStandardReq.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]
Compiling: tmk_core/protocol/lufa/usb_util.c                                                        [OK]
Linking: .build/aki27_cocot46plus_default.elf                                                       [OK]
Creating load file for flashing: .build/aki27_cocot46plus_default.hex                               [OK]
Copying aki27_cocot46plus_default.hex to qmk_firmware folder                                        [OK]
Checking file size of aki27_cocot46plus_default.hex                                                 [OK]
 * The firmware size is fine - 27636/28672 (96%, 1036 bytes free)

通った.

Yudai NakataYudai Nakata

つぎにRP2040がターゲットであるrp2040キーマップをビルドする.

$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


Generating: .build/obj_aki27_cocot46plus_rp2040/src/info_deps.d                                     [OK]
sh: arm-none-eabi-gcc: command not found
sh: arm-none-eabi-gcc: command not found
gmake: *** [builddefs/common_rules.mk:225: gccversion] Error 127

ARM用GCCか何かがないと怒られたので導入する.

brew install arm-none-eabi-gcc
Yudai NakataYudai Nakata

再チャレンジするも失敗.

$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (GCC) 14.1.0
Copyright (C) 2024 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.

Generating: .build/obj_aki27_cocot46plus_rp2040/src/info_config.h                                   [OK]
Generating: .build/obj_aki27_cocot46plus_rp2040/src/default_keyboard.c                              [OK]
Generating: .build/obj_aki27_cocot46plus_rp2040/src/default_keyboard.h                              [OK]
Compiling: keyboards/aki27/cocot46plus/matrix.c                                                    In file included from ./lib/pico-sdk/src/common/pico_base/include/pico/types.h:12,
                 from ./lib/pico-sdk/src/common/pico_base/include/pico.h:24,
                 from ./lib/pico-sdk/src/rp2_common/hardware_flash/include/hardware/flash.h:10,
                 from ./platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h:6,
                 from <command-line>:
./lib/pico-sdk/src/common/pico_base/include/pico/assert.h:18:10: fatal error: assert.h: No such file or directory
   18 | #include <assert.h>
      |          ^~~~~~~~~~
compilation terminated.
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_rp2040/matrix.o] Error 1
Yudai NakataYudai Nakata

QMKをArm向けにビルドしようとしていた同志がZennにいたので,ツールチェインを再インストール.

https://zenn.dev/codehex/scraps/73ea3dc0e10090

brew uninstall arm-none-eabi-gcc
brew install --cask gcc-arm-embedded

再ビルドする.

$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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/aki27/cocot46plus/matrix.c                                                    In file included from ./lib/chibios/os/hal/osal/rt-nil/osal.h:32,
                 from ./lib/chibios/os/hal/include/hal.h:30,
                 from platforms/chibios/gpio.h:18,
                 from platforms/gpio.h:21,
                 from quantum/matrix.h:22,
                 from keyboards/aki27/cocot46plus/matrix.c:17:
./lib/chibios/os/rt/include/ch.h:125:10: fatal error: chlib.h: No such file or directory
  125 | #include "chlib.h"
      |          ^~~~~~~~~
compilation terminated.
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_rp2040/matrix.o] Error 1

一歩前進した.

Yudai NakataYudai Nakata

ここまでコードは一切弄っていないのにgit statusがクリーンでないことに気づいたので差分を確認する.

$ git diff
diff --git a/lib/chibios b/lib/chibios
index be44b3305f..0062927e30 160000
--- a/lib/chibios
+++ b/lib/chibios
@@ -1 +1 @@
-Subproject commit be44b3305f9a9fe5f2f49a4e7b978db322dc463e
+Subproject commit 0062927e3058a8b5ef587234bbd98d42fb4e595e
diff --git a/lib/chibios-contrib b/lib/chibios-contrib
index 77cb0a4f75..a224be155a 160000
--- a/lib/chibios-contrib
+++ b/lib/chibios-contrib
@@ -1 +1 @@
-Subproject commit 77cb0a4f7589f89e724f5e6ecb1d76d514dd1212
+Subproject commit a224be155ae18d38deccf33a6c1d259b9a5ad8d3

GitHubを見るかぎり,chibios, chibos-contribともに変更前のコミットハッシュがqmk-masterブランチのHEADを指して,変更後がmasterブランチのHEADを指している(本日時点).どちらもmasterをチェックアウトするように.gitmodulesでは設定されているが最終更新日が古いし,名前からしてもqmk-masterを使うのが正しそうな気がする.

Yudai NakataYudai Nakata

という訳で,ブランチを変えてみる.

git checkout -b update-cocot46plus-rp2040
git -C lib/chibios checkout qmk-master
git -C lib/chibios-contrib checkout qmk-master

そしてビルドしてみると読みは当たってたっぽい.

$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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/aki27/cocot46plus/matrix.c                                                     [OK]
Compiling: keyboards/aki27/cocot46plus/cocot46plus.c                                                [OK]
Compiling: .build/obj_aki27_cocot46plus_rp2040/src/default_keyboard.c                               [OK]
Compiling: quantum/keymap_introspection.c                                                          In file included from ./keyboards/aki27/cocot46plus/keymaps/rp2040/keymap.c:15,
                 from quantum/keymap_introspection.c:5:
./keyboards/aki27/cocot46plus/keymaps/rp2040/keymap.c:80:88: error: 'KC_PGDOWN' undeclared here (not in a function); did you mean 'KC_PGDN'?
   80 |                                                                  KC_PGUP, KC_MS_BTN3,  KC_PGDOWN, XXXXXXX, XXXXXXX, XXXXXXX
      |                                                                                        ^~~~~~~~~
./.build/obj_aki27_cocot46plus_rp2040/src/default_keyboard.h:36:37: note: in definition of macro 'LAYOUT'
   36 |          {KC_NO, KC_NO, k4C, KC_NO, k4E, KC_NO}, \
      |                                     ^~~
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_rp2040/quantum/keymap_introspection.o] Error 1
Yudai NakataYudai Nakata

自明なエラーだったので修正すると引き続き別のエラーが発生.

$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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: quantum/keymap_introspection.c                                                           [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/bitwise.c                                                                        [OK]
Compiling: quantum/led.c                                                                            [OK]
Compiling: quantum/action.c                                                                         [OK]
Compiling: quantum/action_layer.c                                                                   [OK]
Compiling: quantum/action_tapping.c                                                                quantum/action_tapping.c:15:10: error: #error "IGNORE_MOD_TAP_INTERRUPT is no longer necessary as it is now the default behavior of mod-tap keys. Please remove it from your config."
   15 | #        error "IGNORE_MOD_TAP_INTERRUPT is no longer necessary as it is now the default behavior of mod-tap keys. Please remove it from your config."
      |          ^~~~~
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_rp2040/quantum/action_tapping.o] Error 1
Yudai NakataYudai Nakata

keyboards/aki27/cocot46plus/keymaps/rp2040/config.hに当該マクロがあったので,これを削除して再ビルド.

ビルドログ
$ qmk compile -kb aki27/cocot46plus -km rp2040
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=rp2040 KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_rp2040 INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_rp2040 VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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/aki27/cocot46plus/matrix.c                                                     [OK]
Compiling: keyboards/aki27/cocot46plus/cocot46plus.c                                                [OK]
Compiling: .build/obj_aki27_cocot46plus_rp2040/src/default_keyboard.c                               [OK]
Compiling: quantum/keymap_introspection.c                                                           [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/bitwise.c                                                                        [OK]
Compiling: quantum/led.c                                                                            [OK]
Compiling: quantum/action.c                                                                         [OK]
Compiling: quantum/action_layer.c                                                                   [OK]
Compiling: quantum/action_tapping.c                                                                 [OK]
Compiling: quantum/action_util.c                                                                    [OK]
Compiling: quantum/eeconfig.c                                                                       [OK]
Compiling: quantum/keyboard.c                                                                       [OK]
Compiling: quantum/keymap_common.c                                                                  [OK]
Compiling: quantum/keycode_config.c                                                                 [OK]
Compiling: quantum/sync_timer.c                                                                     [OK]
Compiling: quantum/logging/debug.c                                                                  [OK]
Compiling: quantum/logging/sendchar.c                                                               [OK]
Compiling: quantum/logging/print.c                                                                  [OK]
Compiling: quantum/matrix_common.c                                                                  [OK]
Compiling: quantum/debounce/sym_defer_g.c                                                           [OK]
Compiling: quantum/main.c                                                                           [OK]
Compiling: lib/printf/src/printf/printf.c                                                           [OK]
Compiling: quantum/pointing_device/pointing_device.c                                                [OK]
Compiling: quantum/pointing_device/pointing_device_drivers.c                                        [OK]
Compiling: quantum/pointing_device/pointing_device_auto_mouse.c                                     [OK]
Compiling: drivers/sensors/adns5050.c                                                               [OK]
Compiling: drivers/eeprom/eeprom_driver.c                                                           [OK]
Compiling: drivers/eeprom/eeprom_wear_leveling.c                                                    [OK]
Compiling: quantum/wear_leveling/wear_leveling.c                                                    [OK]
Compiling: platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c                     [OK]
Compiling: quantum/color.c                                                                          [OK]
Compiling: quantum/rgblight/rgblight.c                                                              [OK]
Compiling: quantum/rgblight/rgblight_drivers.c                                                      [OK]
Compiling: quantum/process_keycode/process_rgb.c                                                    [OK]
Compiling: quantum/led_tables.c                                                                     [OK]
Compiling: lib/fnv/qmk_fnv_type_validation.c                                                        [OK]
Compiling: lib/fnv/hash_32a.c                                                                       [OK]
Compiling: lib/fnv/hash_64a.c                                                                       [OK]
Compiling: drivers/oled/oled_driver.c                                                               [OK]
Compiling: quantum/encoder.c                                                                        [OK]
Compiling: drivers/encoder/encoder_quadrature.c                                                     [OK]
Compiling: platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c                               [OK]
Compiling: quantum/bootmagic/bootmagic.c                                                            [OK]
Compiling: quantum/dynamic_keymap.c                                                                 [OK]
Compiling: quantum/process_keycode/process_magic.c                                                  [OK]
Compiling: quantum/mousekey.c                                                                       [OK]
Compiling: quantum/send_string/send_string.c                                                        [OK]
Compiling: quantum/process_keycode/process_space_cadet.c                                            [OK]
Compiling: quantum/process_keycode/process_tri_layer.c                                              [OK]
Compiling: quantum/tri_layer.c                                                                      [OK]
Compiling: quantum/via.c                                                                            [OK]
Compiling: tmk_core/protocol/host.c                                                                 [OK]
Compiling: tmk_core/protocol/report.c                                                               [OK]
Compiling: tmk_core/protocol/usb_device_state.c                                                     [OK]
Compiling: tmk_core/protocol/usb_util.c                                                             [OK]
Compiling: platforms/suspend.c                                                                      [OK]
Compiling: platforms/synchronization_util.c                                                         [OK]
Compiling: platforms/timer.c                                                                        [OK]
Compiling: platforms/chibios/hardware_id.c                                                          [OK]
Compiling: platforms/chibios/platform.c                                                             [OK]
Compiling: platforms/chibios/suspend.c                                                              [OK]
Compiling: platforms/chibios/timer.c                                                                [OK]
Compiling: platforms/chibios/bootloaders/rp2040.c                                                   [OK]
Compiling: platforms/chibios/drivers/i2c_master.c                                                   [OK]
Archiving: .build/obj_aki27_cocot46plus_rp2040/i2c_master.o                                         [OK]
Assembling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/crt0_v6m.S                           [OK]
Assembling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/vectors.S                            [OK]
Assembling: lib/chibios/os/common/ports/ARMv6-M-RP2/compilers/GCC/chcoreasm.S                       [OK]
Compiling: tmk_core/protocol/chibios/usb_main.c                                                     [OK]
Compiling: tmk_core/protocol/chibios/chibios.c                                                      [OK]
Compiling: tmk_core/protocol/usb_descriptor.c                                                       [OK]
Compiling: tmk_core/protocol/chibios/usb_driver.c                                                   [OK]
Compiling: tmk_core/protocol/chibios/usb_endpoints.c                                                [OK]
Compiling: tmk_core/protocol/chibios/usb_report_handling.c                                          [OK]
Compiling: tmk_core/protocol/chibios/usb_util.c                                                     [OK]
Compiling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/crt1.c                                [OK]
Compiling: lib/chibios/os/rt/src/chsys.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chrfcu.c                                                           [OK]
Compiling: lib/chibios/os/rt/src/chdebug.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chtrace.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chvt.c                                                             [OK]
Compiling: lib/chibios/os/rt/src/chschd.c                                                           [OK]
Compiling: lib/chibios/os/rt/src/chinstances.c                                                      [OK]
Compiling: lib/chibios/os/rt/src/chthreads.c                                                        [OK]
Compiling: lib/chibios/os/rt/src/chtm.c                                                             [OK]
Compiling: lib/chibios/os/rt/src/chstats.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chregistry.c                                                       [OK]
Compiling: lib/chibios/os/rt/src/chsem.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chmtx.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chcond.c                                                           [OK]
Compiling: lib/chibios/os/rt/src/chevents.c                                                         [OK]
Compiling: lib/chibios/os/rt/src/chmsg.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chdynamic.c                                                        [OK]
Compiling: lib/chibios/os/common/ports/ARMv6-M-RP2/chcore.c                                         [OK]
Compiling: lib/chibios/os/hal/osal/rt-nil/osal.c                                                    [OK]
Compiling: lib/chibios/os/oslib/src/chmboxes.c                                                      [OK]
Compiling: lib/chibios/os/oslib/src/chmemcore.c                                                     [OK]
Compiling: lib/chibios/os/oslib/src/chmemheaps.c                                                    [OK]
Compiling: lib/chibios/os/oslib/src/chmempools.c                                                    [OK]
Compiling: lib/chibios/os/oslib/src/chpipes.c                                                       [OK]
Compiling: lib/chibios/os/oslib/src/chobjcaches.c                                                   [OK]
Compiling: lib/chibios/os/oslib/src/chdelegates.c                                                   [OK]
Compiling: lib/chibios/os/oslib/src/chfactory.c                                                     [OK]
Compiling: lib/chibios/os/hal/src/hal.c                                                             [OK]
Compiling: lib/chibios/os/hal/src/hal_st.c                                                          [OK]
Compiling: lib/chibios/os/hal/src/hal_buffers.c                                                     [OK]
Compiling: lib/chibios/os/hal/src/hal_queues.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_flash.c                                                       [OK]
Compiling: lib/chibios/os/hal/src/hal_mmcsd.c                                                       [OK]
Compiling: lib/chibios/os/hal/src/hal_adc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_can.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_crypto.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_dac.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_efl.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_gpt.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_i2c.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_i2s.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_icu.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_mac.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_mmc_spi.c                                                     [OK]
Compiling: lib/chibios/os/hal/src/hal_pal.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_pwm.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_rtc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_sdc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_serial.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_serial_usb.c                                                  [OK]
Compiling: lib/chibios/os/hal/src/hal_sio.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_spi.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_trng.c                                                        [OK]
Compiling: lib/chibios/os/hal/src/hal_uart.c                                                        [OK]
Compiling: lib/chibios/os/hal/src/hal_usb.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_wdg.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_wspi.c                                                        [OK]
Compiling: lib/chibios/os/hal/ports/common/ARMCMx/nvic.c                                            [OK]
Compiling: lib/chibios/os/hal/ports/RP/RP2040/rp_isr.c                                              [OK]
Compiling: lib/chibios/os/hal/ports/RP/RP2040/hal_lld.c                                             [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/DMAv1/rp_dma.c                                           [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/GPIOv1/hal_pal_lld.c                                     [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/SPIv1/hal_spi_lld.c                                      [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/TIMERv1/hal_st_lld.c                                     [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/UARTv1/hal_sio_lld.c                                     [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/RTCv1/hal_rtc_lld.c                                      [OK]
Compiling: lib/chibios/os/hal/ports/RP/LLD/WDGv1/hal_wdg_lld.c                                      [OK]
Compiling: lib/chibios-contrib/os/hal/ports/RP/LLD/I2Cv1/hal_i2c_lld.c                              [OK]
Compiling: lib/chibios-contrib/os/hal/ports/RP/LLD/PWMv1/hal_pwm_lld.c                              [OK]
Compiling: lib/chibios-contrib/os/hal/ports/RP/LLD/ADCv1/hal_adc_lld.c                              [OK]
Compiling: lib/chibios-contrib/os/hal/ports/RP/LLD/USBDv1/hal_usb_lld.c                             [OK]
Compiling: lib/chibios/os/hal/boards/RP_PICO_RP2040/board.c                                         [OK]
Compiling: lib/chibios/os/hal/lib/streams/chprintf.c                                                [OK]
Compiling: lib/chibios/os/hal/lib/streams/chscanf.c                                                 [OK]
Compiling: lib/chibios/os/hal/lib/streams/memstreams.c                                              [OK]
Compiling: lib/chibios/os/hal/lib/streams/nullstreams.c                                             [OK]
Compiling: lib/chibios/os/hal/lib/streams/bufstreams.c                                              [OK]
Compiling: lib/chibios/os/various/syscalls.c                                                        [OK]
Compiling: platforms/chibios/syscall-fallbacks.c                                                    [OK]
Compiling: platforms/chibios/wait.c                                                                 [OK]
Compiling: platforms/chibios/synchronization_util.c                                                 [OK]
Compiling: platforms/chibios/interrupt_handlers.c                                                   [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_clocks/clocks.c                                     [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_pll/pll.c                                           [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_pio/pio.c                                           [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_timer/timer.c                                       [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_flash/flash.c                                       [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_gpio/gpio.c                                         [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_claim/claim.c                                       [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c                                 [OK]
Compiling: lib/pico-sdk/src/rp2_common/hardware_xosc/xosc.c                                         [OK]
Compiling: lib/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c                                       [OK]
Compiling: platforms/chibios/vendors/RP/stage2_bootloaders.c                                        [OK]
Compiling: platforms/chibios/vendors/RP/pico_sdk_shims.c                                            [OK]
Assembling: lib/pico-sdk/src/rp2_common/pico_divider/divider.S                                      [OK]
Assembling: lib/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S                       [OK]
Linking: .build/aki27_cocot46plus_rp2040_promicro_rp2040.elf                                        [WARNINGS]
 |
 | lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
 | lto-wrapper: note: see the '-flto' option documentation for more information
 |
Creating UF2 file for deployment: .build/aki27_cocot46plus_rp2040_promicro_rp2040.uf2               [OK]
Copying aki27_cocot46plus_rp2040_promicro_rp2040.uf2 to qmk_firmware folder                         [OK]

リンカで警告が出たけどひとまず成功🎉 今日はここまで.

Yudai NakataYudai Nakata

交換するマイコンボードに合わせてピン名称を変更する.そして,その状態でビルドすると他にも更新しないといけない箇所をエラーメッセージが全部教えてくれるので直す.

diff --git a/keyboards/aki27/cocot46plus/keyboard.json b/keyboards/aki27/cocot46plus/keyboard.json
index 8af90e23de..8a7025cbd0 100644
--- a/keyboards/aki27/cocot46plus/keyboard.json
+++ b/keyboards/aki27/cocot46plus/keyboard.json
@@ -35,8 +35,8 @@
   },
   "debounce": 5,
   "matrix_pins": {
-    "cols": ["F4", "F5", "F6", "F7", "B1", "B3"],
-    "rows": ["D4", "C6", "D7", "E6", "NO_PIN"],
+    "cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20"],
+    "rows": ["GP4", "GP5", "GP6", "GP7", "NO_PIN"],
     "custom": true,
     "custom_lite": true,
     "direct": [

ピン名称についてはここに記載がある.

https://docs.qmk.fm/platformdev_rp2040#pin-nomenclature

To address individual pins on the RP2040, QMK uses the GPx abbreviation -- where the x stands for the GPIO number of the pin. This number can likely be found on the official pinout diagram of your board.

新旧それぞれのデータシートはこちら:

Yudai NakataYudai Nakata

上記PRで作者が"I now have this keyboard working with RP2040"と言っている時点のコミットをチェックアウトするとコンパイルはできるけどなぜかマイコンに書き込めない(書き込もうとするとイジェクトされる)ので,レビュワーの指示に一旦従ってみる.

Yudai NakataYudai Nakata

rules.mkCONVERT_TOを消して,keyboard.jsonmatrix_pinsを書いたうえでビルドすると他の箇所でピン番号のエラーが出たので一旦ピン関連以外のエラーになるまで修正する.

rules.mk
diff --git a/keyboards/aki27/cocot46plus/rules.mk b/keyboards/aki27/cocot46plus/rules.mk
index 94a66b4ead..2fda4c7226 100644
--- a/keyboards/aki27/cocot46plus/rules.mk
+++ b/keyboards/aki27/cocot46plus/rules.mk
@@ -2,6 +2,3 @@ SRC += matrix.c
 CUSTOM_MATRIX = lite
 POINTING_DEVICE_DRIVER = adns5050
 SPACE_CADET_ENABLE = no
-# A regular Pro Micro may work if this line is removed
-# but some features may need to be disabled for the firmware to fit in the storage.
-CONVERT_TO=promicro_rp2040
config.h
diff --git a/keyboards/aki27/cocot46plus/config.h b/keyboards/aki27/cocot46plus/config.h
index 684755a216..ecfc1db8c0 100644
--- a/keyboards/aki27/cocot46plus/config.h
+++ b/keyboards/aki27/cocot46plus/config.h
@@ -18,17 +18,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once

 // These do not seem to have keyboard.json support yet.
-#define ADNS5050_SCLK_PIN         B2
-#define ADNS5050_SDIO_PIN         B4
-#define ADNS5050_CS_PIN           B5
+#define ADNS5050_SCLK_PIN         GP23
+#define ADNS5050_SDIO_PIN         GP8
+#define ADNS5050_CS_PIN           GP9

 /* key matrix size */
 #define MATRIX_ROWS 10
 #define MATRIX_COLS 6

-// wiring of each half
-#define MATRIX_ROW_PINS { D4, C6, D7, E6, NO_PIN }
-#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }

 #define POINTING_DEVICE_ROTATION_180
 #define OLED_FONT_H "keyboards/aki27/cocot46plus/glcdfont.c"
keyboard.json
diff --git a/keyboards/aki27/cocot46plus/keyboard.json b/keyboards/aki27/cocot46plus/keyboard.json
index 9ed3db6a06..257136460a 100644
--- a/keyboards/aki27/cocot46plus/keyboard.json
+++ b/keyboards/aki27/cocot46plus/keyboard.json
@@ -8,7 +8,11 @@
     "pid": "0x0003",
     "vid": "0x1727"
   },
-  "development_board": "promicro",
+  "development_board": "promicro_rp2040",
+  "matrix_pins": {
+    "cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20"],
+    "rows": ["GP4", "GP5", "GP6", "GP7", "NO_PIN"]
+  },
   "build": {
     "lto": true
   },
@@ -22,11 +26,12 @@
     "rgblight": true
   },
   "ws2812": {
-    "pin": "B6"
+    "pin": "GP7"
   },
   "encoder": {
     "rotary": [
-       { "pin_a": "D3", "pin_b": "D2"}
+       { "pin_a": "GP0", "pin_b": "GP0"}
     ]
   },
   "rgblight": {

これで以下のエラーが出るようになった.

$ qmk compile -kb aki27/cocot46plus -km default
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=default KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_default INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_default VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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.

Generating: .build/obj_aki27_cocot46plus_default/src/info_config.h                                  [OK]
(中略)
Compiling: platforms/chibios/drivers/ws2812_bitbang.c                                              platforms/chibios/drivers/ws2812_bitbang.c:18:14: error: #error "Please use `vendor` WS2812 driver for RP2040"
   18 | #            error "Please use `vendor` WS2812 driver for RP2040"
      |              ^~~~~
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_default/ws2812_bitbang.o] Error 1
Yudai NakataYudai Nakata

調べるとinfo.jsonにはws2812.driverというキーがあり,取る値の一つにvendorがあるらしい.

https://docs.qmk.fm/reference_info_json#ws2812

それを追記すると,ChibiOS内でエラー.

$ qmk compile -kb aki27/cocot46plus -km default
Ψ Compiling keymap with gmake -r -R -f builddefs/build_keyboard.mk -s KEYBOARD=aki27/cocot46plus KEYMAP=default KEYBOARD_FILESAFE=aki27_cocot46plus TARGET=aki27_cocot46plus_default INTERMEDIATE_OUTPUT=.build/obj_aki27_cocot46plus_default VERBOSE=false COLOR=true SILENT=false QMK_BIN="qmk"


arm-none-eabi-gcc (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24)) 13.3.1 20240614
Copyright (C) 2023 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: platforms/chibios/drivers/i2c_master.c                                                  In file included from ./lib/chibios/os/hal/include/hal_pal.h:174,
                 from ./lib/chibios/os/hal/include/hal.h:306,
                 from platforms/chibios/gpio.h:18,
                 from platforms/gpio.h:21,
                 from platforms/chibios/drivers/i2c_master.c:30:
platforms/chibios/drivers/i2c_master.c: In function 'i2c_init':
././platforms/chibios/boards/QMK_PM2040/configs/config.h:17:26: error: 'D0' undeclared (first use in this function)
   17 | #    define I2C1_SCL_PIN D0
      |                          ^~
./lib/chibios/os/hal/ports/RP/LLD/GPIOv1/hal_pal_lld.h:389:32: note: in definition of macro 'pal_lld_setpadmode'
  389 |   __pal_lld_pad_set_mode(port, pad, mode)
      |                                ^~~
./lib/chibios/os/hal/include/hal_pal.h:809:3: note: in expansion of macro 'palSetPadMode'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |   ^~~~~~~~~~~~~
./lib/chibios/os/hal/include/hal_pal.h:809:33: note: in expansion of macro 'PAL_PAD'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |                                 ^~~~~~~
platforms/chibios/drivers/i2c_master.c:138:9: note: in expansion of macro 'palSetLineMode'
  138 |         palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
      |         ^~~~~~~~~~~~~~
platforms/chibios/drivers/i2c_master.c:138:24: note: in expansion of macro 'I2C1_SCL_PIN'
  138 |         palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
      |                        ^~~~~~~~~~~~
././platforms/chibios/boards/QMK_PM2040/configs/config.h:17:26: note: each undeclared identifier is reported only once for each function it appears in
   17 | #    define I2C1_SCL_PIN D0
      |                          ^~
./lib/chibios/os/hal/ports/RP/LLD/GPIOv1/hal_pal_lld.h:389:32: note: in definition of macro 'pal_lld_setpadmode'
  389 |   __pal_lld_pad_set_mode(port, pad, mode)
      |                                ^~~
./lib/chibios/os/hal/include/hal_pal.h:809:3: note: in expansion of macro 'palSetPadMode'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |   ^~~~~~~~~~~~~
./lib/chibios/os/hal/include/hal_pal.h:809:33: note: in expansion of macro 'PAL_PAD'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |                                 ^~~~~~~
platforms/chibios/drivers/i2c_master.c:138:9: note: in expansion of macro 'palSetLineMode'
  138 |         palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
      |         ^~~~~~~~~~~~~~
platforms/chibios/drivers/i2c_master.c:138:24: note: in expansion of macro 'I2C1_SCL_PIN'
  138 |         palSetLineMode(I2C1_SCL_PIN, PAL_MODE_INPUT);
      |                        ^~~~~~~~~~~~
././platforms/chibios/boards/QMK_PM2040/configs/config.h:14:26: error: 'D1' undeclared (first use in this function)
   14 | #    define I2C1_SDA_PIN D1
      |                          ^~
./lib/chibios/os/hal/ports/RP/LLD/GPIOv1/hal_pal_lld.h:389:32: note: in definition of macro 'pal_lld_setpadmode'
  389 |   __pal_lld_pad_set_mode(port, pad, mode)
      |                                ^~~
./lib/chibios/os/hal/include/hal_pal.h:809:3: note: in expansion of macro 'palSetPadMode'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |   ^~~~~~~~~~~~~
./lib/chibios/os/hal/include/hal_pal.h:809:33: note: in expansion of macro 'PAL_PAD'
  809 |   palSetPadMode(PAL_PORT(line), PAL_PAD(line), mode)
      |                                 ^~~~~~~
platforms/chibios/drivers/i2c_master.c:139:9: note: in expansion of macro 'palSetLineMode'
  139 |         palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
      |         ^~~~~~~~~~~~~~
platforms/chibios/drivers/i2c_master.c:139:24: note: in expansion of macro 'I2C1_SDA_PIN'
  139 |         palSetLineMode(I2C1_SDA_PIN, PAL_MODE_INPUT);
      |                        ^~~~~~~~~~~~
 [ERRORS]
 |
 |
 |
gmake: *** [builddefs/common_rules.mk:373: .build/obj_aki27_cocot46plus_default/i2c_master.o] Error 1

念のため確認したがD0, D1というピンは指定していない.

$ grep -Rn D0 keyboards/aki27/cocot46plus
keyboards/aki27/cocot46plus/glcdfont.c:137:0x00, 0x00, 0xC0, 0x60, 0xC0, 0xD0,
keyboards/aki27/cocot46plus/glcdfont.c:139:0x6C, 0x68, 0x68, 0x98, 0xD0, 0x60,
keyboards/aki27/cocot46plus/cocot46plus.c:220:    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4,
$ grep -Rn D1 keyboards/aki27/cocot46plus
keyboards/aki27/cocot46plus/cocot46plus.c:220:    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4,
Yudai NakataYudai Nakata

エラーメッセージに従って修正を試みると動くファームウェアがビルドできた.

platforms/chibios/boards/QMK_PM2040/configs/config.h
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/config.h b/platforms/chibios/boards/QMK_PM2040/configs/config.h
index f8b46b7fe4..87554f6b83 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/config.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/config.h
@@ -11,10 +11,10 @@
 #    define I2C_DRIVER I2CD1
 #endif
 #ifndef I2C1_SDA_PIN
-#    define I2C1_SDA_PIN D1
+#    define I2C1_SDA_PIN GP2
 #endif
 #ifndef I2C1_SCL_PIN
-#    define I2C1_SCL_PIN D0
+#    define I2C1_SCL_PIN GP3
 #endif

ただ,QMK本体を弄るのは正しくない気がするのでDiscordで質問中.