diff --git a/app/boards/keycapsss/puchi_ble/Kconfig.defconfig b/app/boards/keycapsss/puchi_ble/Kconfig.defconfig index 0411ee3f2..696e60f03 100644 --- a/app/boards/keycapsss/puchi_ble/Kconfig.defconfig +++ b/app/boards/keycapsss/puchi_ble/Kconfig.defconfig @@ -3,9 +3,6 @@ if BOARD_PUCHI_BLE -config BOARD - default "puchi_ble" - if USB_DEVICE_STACK config USB_NRFX @@ -13,7 +10,4 @@ config USB_NRFX endif # USB_DEVICE_STACK -config BT_CTLR - default BT - endif # BOARD_PUCHI_BLE diff --git a/app/boards/keycapsss/puchi_ble/Kconfig.puchi_ble b/app/boards/keycapsss/puchi_ble/Kconfig.puchi_ble index 313279026..133a95d09 100644 --- a/app/boards/keycapsss/puchi_ble/Kconfig.puchi_ble +++ b/app/boards/keycapsss/puchi_ble/Kconfig.puchi_ble @@ -5,6 +5,6 @@ config BOARD_PUCHI_BLE select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + imply RETAINED_MEM if BOARD_PUCHI_BLE_NRF52840_ZMK + imply RETENTION if BOARD_PUCHI_BLE_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_PUCHI_BLE_NRF52840_ZMK diff --git a/app/boards/keycapsss/puchi_ble/board.yml b/app/boards/keycapsss/puchi_ble/board.yml index d192a3063..ba5a6b111 100644 --- a/app/boards/keycapsss/puchi_ble/board.yml +++ b/app/boards/keycapsss/puchi_ble/board.yml @@ -1,5 +1,5 @@ board: - name: puchi_ble - vendor: keycapsss - socs: - - name: nrf52840 + extend: puchi_ble + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml b/app/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml index 18f6463cb..c641fe7d7 100644 --- a/app/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml +++ b/app/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: puchi_ble +id: puchi_ble//zmk name: Puchi-BLE V1 type: board arch: arm diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble_nrf52840_zmk.dts b/app/boards/keycapsss/puchi_ble/puchi_ble_nrf52840_zmk.dts new file mode 100644 index 000000000..4ba212000 --- /dev/null +++ b/app/boards/keycapsss/puchi_ble/puchi_ble_nrf52840_zmk.dts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/keycapsss/puchi_ble/puchi_ble.dts> +#include + + +/ { + chosen { + zmk,battery = &vbatt; + }; + + // Node name must match original "EXT_POWER" label to preserve user settings. + EXT_POWER { + compatible = "zmk,ext-power-generic"; + control-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 2>; + output-ohms = <2000000>; + full-ohms = <(2000000 + 820000)>; + }; +}; + diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble_defconfig b/app/boards/keycapsss/puchi_ble/puchi_ble_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/keycapsss/puchi_ble/puchi_ble_defconfig rename to app/boards/keycapsss/puchi_ble/puchi_ble_nrf52840_zmk_defconfig diff --git a/app/boards/shields/nice_view_adapter/boards/puchi_ble_v1.overlay b/app/boards/shields/nice_view_adapter/boards/puchi_ble_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/puchi_ble_v1.overlay rename to app/boards/shields/nice_view_adapter/boards/puchi_ble_nrf52840_zmk.overlay diff --git a/app/boards/keycapsss/puchi_ble/CMakeLists.txt b/app/module/boards/keycapsss/puchi_ble/CMakeLists.txt similarity index 100% rename from app/boards/keycapsss/puchi_ble/CMakeLists.txt rename to app/module/boards/keycapsss/puchi_ble/CMakeLists.txt diff --git a/app/boards/keycapsss/puchi_ble/Kconfig b/app/module/boards/keycapsss/puchi_ble/Kconfig similarity index 100% rename from app/boards/keycapsss/puchi_ble/Kconfig rename to app/module/boards/keycapsss/puchi_ble/Kconfig diff --git a/app/module/boards/keycapsss/puchi_ble/Kconfig.defconfig b/app/module/boards/keycapsss/puchi_ble/Kconfig.defconfig new file mode 100644 index 000000000..ee8bc5735 --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/Kconfig.defconfig @@ -0,0 +1,16 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if BOARD_PUCHI_BLE + +config BOARD + default "puchi_ble" + +if USB_DEVICE_STACK + +config USB_NRFX + default y + +endif # USB_DEVICE_STACK + +endif # BOARD_PUCHI_BLE diff --git a/app/module/boards/keycapsss/puchi_ble/Kconfig.puchi_ble b/app/module/boards/keycapsss/puchi_ble/Kconfig.puchi_ble new file mode 100644 index 000000000..4cd8b05bc --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/Kconfig.puchi_ble @@ -0,0 +1,10 @@ +# Puchi-BLE board configuration + +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config BOARD_PUCHI_BLE + select SOC_NRF52840_QIAA + imply RETAINED_MEM + imply RETENTION + imply RETENTION_BOOT_MODE diff --git a/app/boards/keycapsss/puchi_ble/arduino_pro_micro_pins.dtsi b/app/module/boards/keycapsss/puchi_ble/arduino_pro_micro_pins.dtsi similarity index 100% rename from app/boards/keycapsss/puchi_ble/arduino_pro_micro_pins.dtsi rename to app/module/boards/keycapsss/puchi_ble/arduino_pro_micro_pins.dtsi diff --git a/app/boards/keycapsss/puchi_ble/board.cmake b/app/module/boards/keycapsss/puchi_ble/board.cmake similarity index 100% rename from app/boards/keycapsss/puchi_ble/board.cmake rename to app/module/boards/keycapsss/puchi_ble/board.cmake diff --git a/app/module/boards/keycapsss/puchi_ble/board.yml b/app/module/boards/keycapsss/puchi_ble/board.yml new file mode 100644 index 000000000..d192a3063 --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/board.yml @@ -0,0 +1,5 @@ +board: + name: puchi_ble + vendor: keycapsss + socs: + - name: nrf52840 diff --git a/app/boards/keycapsss/puchi_ble/pinmux.c b/app/module/boards/keycapsss/puchi_ble/pinmux.c similarity index 100% rename from app/boards/keycapsss/puchi_ble/pinmux.c rename to app/module/boards/keycapsss/puchi_ble/pinmux.c diff --git a/app/module/boards/keycapsss/puchi_ble/pre_dt_board.cmake b/app/module/boards/keycapsss/puchi_ble/pre_dt_board.cmake new file mode 100644 index 000000000..b0c27aa5d --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/pre_dt_board.cmake @@ -0,0 +1,9 @@ +# +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT +# + +# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller +# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html + +list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled") diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble-pinctrl.dtsi b/app/module/boards/keycapsss/puchi_ble/puchi_ble-pinctrl.dtsi similarity index 100% rename from app/boards/keycapsss/puchi_ble/puchi_ble-pinctrl.dtsi rename to app/module/boards/keycapsss/puchi_ble/puchi_ble-pinctrl.dtsi diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble.dts b/app/module/boards/keycapsss/puchi_ble/puchi_ble.dts similarity index 100% rename from app/boards/keycapsss/puchi_ble/puchi_ble.dts rename to app/module/boards/keycapsss/puchi_ble/puchi_ble.dts diff --git a/app/boards/keycapsss/puchi_ble/puchi_ble.yaml b/app/module/boards/keycapsss/puchi_ble/puchi_ble.yaml similarity index 100% rename from app/boards/keycapsss/puchi_ble/puchi_ble.yaml rename to app/module/boards/keycapsss/puchi_ble/puchi_ble.yaml diff --git a/app/module/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml b/app/module/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml new file mode 100644 index 000000000..18f6463cb --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/puchi_ble.zmk.yml @@ -0,0 +1,10 @@ +file_format: "1" +id: puchi_ble +name: Puchi-BLE V1 +type: board +arch: arm +outputs: + - usb + - ble +url: https://keycapsss.com/keyboard-parts/mcu-controller/202/puchi-ble-wireless-microcontroller +exposes: [pro_micro] diff --git a/app/module/boards/keycapsss/puchi_ble/puchi_ble_defconfig b/app/module/boards/keycapsss/puchi_ble/puchi_ble_defconfig new file mode 100644 index 000000000..5d50cb258 --- /dev/null +++ b/app/module/boards/keycapsss/puchi_ble/puchi_ble_defconfig @@ -0,0 +1,15 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# enable GPIO +CONFIG_GPIO=y + +# Use pinctrl +CONFIG_PINCTRL=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y +