diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32e084cbb..619902d29 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -277,6 +277,7 @@ jobs: ); } else { console.error("Board without keys or interconnect"); + return []; } break; case "shield": diff --git a/app/boards/adafruit/kb2040/adafruit_kb2040.zmk.yml b/app/boards/adafruit/kb2040/adafruit_kb2040.zmk.yml index c8973f5c2..f3a79315d 100644 --- a/app/boards/adafruit/kb2040/adafruit_kb2040.zmk.yml +++ b/app/boards/adafruit/kb2040/adafruit_kb2040.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: adafruit_kb2040 +id: adafruit_kb2040//zmk name: Adafruit KB2040 type: board arch: arm diff --git a/app/boards/extensions/boardsource_blok/boardsource_blok.overlay b/app/boards/adafruit/kb2040/adafruit_kb2040_zmk.dts similarity index 76% rename from app/boards/extensions/boardsource_blok/boardsource_blok.overlay rename to app/boards/adafruit/kb2040/adafruit_kb2040_zmk.dts index bf3fd17a5..8c05cbaf1 100644 --- a/app/boards/extensions/boardsource_blok/boardsource_blok.overlay +++ b/app/boards/adafruit/kb2040/adafruit_kb2040_zmk.dts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: MIT */ +#include <../boards/adafruit/kb2040/adafruit_kb2040.dts> #include &pro_micro_serial { status = "disabled"; }; diff --git a/app/boards/adafruit/kb2040/adafruit_kb2040_zmk_defconfig b/app/boards/adafruit/kb2040/adafruit_kb2040_zmk_defconfig new file mode 100644 index 000000000..b7b0308b9 --- /dev/null +++ b/app/boards/adafruit/kb2040/adafruit_kb2040_zmk_defconfig @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: MIT + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +# Enable reset by default +CONFIG_RESET=y + +# Enable clock control by default +CONFIG_CLOCK_CONTROL=y + +# Code partition needed to target the correct flash range +CONFIG_USE_DT_CODE_PARTITION=y + +# Output UF2 by default, native bootloader supports it. +CONFIG_BUILD_OUTPUT_UF2=y + +# USB HID +CONFIG_ZMK_USB=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/adafruit/kb2040/board.yml b/app/boards/adafruit/kb2040/board.yml new file mode 100644 index 000000000..7ef758e09 --- /dev/null +++ b/app/boards/adafruit/kb2040/board.yml @@ -0,0 +1,5 @@ +board: + extend: adafruit_kb2040 + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml index 9b9c1450d..ebda85595 100644 --- a/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml +++ b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: adafruit_qt_py_rp2040 +id: adafruit_qt_py_rp2040//zmk name: Adafruit QT Py RP2040 type: board arch: arm diff --git a/app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.overlay b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk.dts similarity index 72% rename from app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.overlay rename to app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk.dts index a68455c4a..2a64ff75e 100644 --- a/app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.overlay +++ b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk.dts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: MIT */ +#include <../boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.dts> #include &xiao_serial { status = "disabled"; }; diff --git a/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk_defconfig b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk_defconfig new file mode 100644 index 000000000..b7b0308b9 --- /dev/null +++ b/app/boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040_zmk_defconfig @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: MIT + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +# Enable reset by default +CONFIG_RESET=y + +# Enable clock control by default +CONFIG_CLOCK_CONTROL=y + +# Code partition needed to target the correct flash range +CONFIG_USE_DT_CODE_PARTITION=y + +# Output UF2 by default, native bootloader supports it. +CONFIG_BUILD_OUTPUT_UF2=y + +# USB HID +CONFIG_ZMK_USB=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/adafruit/qt_py_rp2040/board.yml b/app/boards/adafruit/qt_py_rp2040/board.yml new file mode 100644 index 000000000..cda7173ed --- /dev/null +++ b/app/boards/adafruit/qt_py_rp2040/board.yml @@ -0,0 +1,5 @@ +board: + extend: adafruit_qt_py_rp2040 + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml b/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml deleted file mode 100644 index a6e91afd7..000000000 --- a/app/boards/arm/boardsource_blok/boardsource_blok.zmk.yml +++ /dev/null @@ -1,9 +0,0 @@ -file_format: "1" -id: boardsource_blok -name: BoardSource blok -type: board -arch: arm -outputs: - - usb -url: https://peg.software/docs/blok -exposes: [pro_micro] diff --git a/app/boards/boardsource/blok/board.yml b/app/boards/boardsource/blok/board.yml new file mode 100644 index 000000000..0891ee1b5 --- /dev/null +++ b/app/boards/boardsource/blok/board.yml @@ -0,0 +1,5 @@ +board: + extend: boardsource_blok + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/boardsource/blok/boardsource_blok.zmk.yml b/app/boards/boardsource/blok/boardsource_blok.zmk.yml new file mode 100644 index 000000000..dac3d4df9 --- /dev/null +++ b/app/boards/boardsource/blok/boardsource_blok.zmk.yml @@ -0,0 +1,9 @@ +file_format: "1" +id: boardsource_blok//zmk +name: Boardsource Blok +type: board +arch: arm +outputs: + - usb +url: https://boardsource.xyz/products/blok-rp2040-keyboard-controller +exposes: [pro_micro] diff --git a/app/boards/boardsource/blok/boardsource_blok_zmk.dts b/app/boards/boardsource/blok/boardsource_blok_zmk.dts new file mode 100644 index 000000000..c7bb7cc22 --- /dev/null +++ b/app/boards/boardsource/blok/boardsource_blok_zmk.dts @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/boardsource/blok/boardsource_blok.dts> +#include + +&pro_micro_serial { status = "disabled"; }; + +&code_partition { + reg = <0x100 (DT_SIZE_M(16) - 0x100 - DT_SIZE_K(512))>; +}; + +&flash0 { + partitions { + storage_partition: partition@f80000 { + reg = <0xf80000 DT_SIZE_K(512)>; + read-only; + }; + }; +}; diff --git a/app/boards/boardsource/blok/boardsource_blok_zmk_defconfig b/app/boards/boardsource/blok/boardsource_blok_zmk_defconfig new file mode 100644 index 000000000..0c1a531e8 --- /dev/null +++ b/app/boards/boardsource/blok/boardsource_blok_zmk_defconfig @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: MIT + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +CONFIG_RESET=y + +# Enable clock control by default +CONFIG_CLOCK_CONTROL=y + +# Code partition needed to target the correct flash range +CONFIG_USE_DT_CODE_PARTITION=y + +# Output UF2 by default, native bootloader supports it. +CONFIG_BUILD_OUTPUT_UF2=y + +# USB HID +CONFIG_ZMK_USB=y + +# Settings Support +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.conf b/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.conf deleted file mode 100644 index 9c394f2c9..000000000 --- a/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.conf +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_ZMK_USB=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y \ No newline at end of file diff --git a/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.overlay b/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.overlay deleted file mode 100644 index bf3fd17a5..000000000 --- a/app/boards/extensions/adafruit_kb2040/adafruit_kb2040.overlay +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2023 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include - -&pro_micro_serial { status = "disabled"; }; diff --git a/app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.conf b/app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.conf deleted file mode 100644 index 9c394f2c9..000000000 --- a/app/boards/extensions/adafruit_qt_py_rp2040/adafruit_qt_py_rp2040.conf +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_ZMK_USB=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y \ No newline at end of file diff --git a/app/boards/extensions/blackpill_f401cc/blackpill_f401cc.conf b/app/boards/extensions/blackpill_f401cc/blackpill_f401cc.conf deleted file mode 100644 index c4252425b..000000000 --- a/app/boards/extensions/blackpill_f401cc/blackpill_f401cc.conf +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n -CONFIG_ZMK_USB=y -CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/extensions/blackpill_f401ce/blackpill_f401ce.conf b/app/boards/extensions/blackpill_f401ce/blackpill_f401ce.conf deleted file mode 100644 index c4252425b..000000000 --- a/app/boards/extensions/blackpill_f401ce/blackpill_f401ce.conf +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n -CONFIG_ZMK_USB=y -CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/extensions/blackpill_f411ce/blackpill_f411ce.conf b/app/boards/extensions/blackpill_f411ce/blackpill_f411ce.conf deleted file mode 100644 index c4252425b..000000000 --- a/app/boards/extensions/blackpill_f411ce/blackpill_f411ce.conf +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n -CONFIG_ZMK_USB=y -CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/extensions/boardsource_blok/boardsource_blok.conf b/app/boards/extensions/boardsource_blok/boardsource_blok.conf deleted file mode 100644 index 9c394f2c9..000000000 --- a/app/boards/extensions/boardsource_blok/boardsource_blok.conf +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_ZMK_USB=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y \ No newline at end of file diff --git a/app/boards/extensions/native_sim/native_sim_64.overlay b/app/boards/extensions/native_sim/native_sim_64.overlay deleted file mode 100644 index 277e45328..000000000 --- a/app/boards/extensions/native_sim/native_sim_64.overlay +++ /dev/null @@ -1,32 +0,0 @@ - -#include -#include - -/ { - chosen { - zephyr,console = &uart0; - zmk,kscan = &kscan; - }; - - kscan: native_posix_64_kscan_mock { - compatible = "zmk,kscan-mock"; - - rows = <2>; - columns = <2>; - exit-after; - }; - - uart0: uart { - status = "okay"; - compatible = "zephyr,native-posix-uart"; - /* Dummy current-speed entry to comply with serial - * DTS binding - */ - current-speed = <0>; - }; -}; - -&sdl_dc { - width = <128>; - height = <32>; -}; \ No newline at end of file diff --git a/app/boards/extensions/nrf52840dongle/nrf52840dongle_nrf52840.conf b/app/boards/extensions/nrf52840dongle/nrf52840dongle_nrf52840.conf deleted file mode 100644 index 97e95bf7c..000000000 --- a/app/boards/extensions/nrf52840dongle/nrf52840dongle_nrf52840.conf +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2025 The ZMK Contributors -# SPDX-License-Identifier: MIT - -CONFIG_ZMK_BLE=y -CONFIG_ZMK_USB=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y diff --git a/app/boards/extensions/nrf_bsim/nrf52_bsim.conf b/app/boards/extensions/nrf_bsim/nrf52_bsim.conf deleted file mode 100644 index 526f3bc7d..000000000 --- a/app/boards/extensions/nrf_bsim/nrf52_bsim.conf +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG_ZMK_BLE=y -CONFIG_LOG=y -CONFIG_LOG_BACKEND_SHOW_COLOR=n -CONFIG_ZMK_LOG_LEVEL_DBG=y diff --git a/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.conf b/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.conf deleted file mode 100644 index c520a3b73..000000000 --- a/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.conf +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_ZMK_DISPLAY=y -CONFIG_LV_FONT_UNSCII_8=n -CONFIG_ZMK_USB=y -CONFIG_I2C=y -CONFIG_I2C_DW=y -CONFIG_LV_Z_VDB_SIZE=50 diff --git a/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.overlay b/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.overlay deleted file mode 100644 index b5d2cdb2f..000000000 --- a/app/boards/extensions/rp2040_042lcd/01space_rp2040_042lcd.overlay +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright (c) 2023 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -&xiao_serial { status = "disabled"; }; diff --git a/app/boards/extensions/rpi_pico/rpi_pico.conf b/app/boards/extensions/rpi_pico/rpi_pico.conf deleted file mode 100644 index 147adc6d7..000000000 --- a/app/boards/extensions/rpi_pico/rpi_pico.conf +++ /dev/null @@ -1,16 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n -CONFIG_ZMK_USB=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y \ No newline at end of file diff --git a/app/boards/extensions/seeeduino_xiao/seeeduino_xiao.conf b/app/boards/extensions/seeeduino_xiao/seeeduino_xiao.conf deleted file mode 100644 index f0db8ed14..000000000 --- a/app/boards/extensions/seeeduino_xiao/seeeduino_xiao.conf +++ /dev/null @@ -1,5 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n -CONFIG_ZMK_USB=y diff --git a/app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.conf b/app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.conf deleted file mode 100644 index 70b90914d..000000000 --- a/app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.conf +++ /dev/null @@ -1,15 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_ZMK_USB=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y \ No newline at end of file diff --git a/app/boards/extensions/xiao_rp2040/xiao_rp2040.conf b/app/boards/extensions/xiao_rp2040/xiao_rp2040.conf deleted file mode 100644 index 1f7d85b36..000000000 --- a/app/boards/extensions/xiao_rp2040/xiao_rp2040.conf +++ /dev/null @@ -1,15 +0,0 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_ZMK_USB=y - -CONFIG_MPU_ALLOW_FLASH_WRITE=y -CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y - -CONFIG_RETAINED_MEM=y -CONFIG_RETENTION=y -CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/joric/nrfmicro/Kconfig.nrfmicro b/app/boards/joric/nrfmicro/Kconfig.nrfmicro index 38b80a809..7925e4a0e 100644 --- a/app/boards/joric/nrfmicro/Kconfig.nrfmicro +++ b/app/boards/joric/nrfmicro/Kconfig.nrfmicro @@ -4,9 +4,9 @@ # SPDX-License-Identifier: MIT config BOARD_NRFMICRO - select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840 - select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_FLIPPED - select SOC_NRF52833_QIAA if BOARD_NRFMICRO_NRF52833 - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_ZMK + select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK + select SOC_NRF52833_QIAA if BOARD_NRFMICRO_NRF52833_ZMK + imply RETAINED_MEM if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK + imply RETENTION if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK + imply RETENTION_BOOT_MODE if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK diff --git a/app/boards/joric/nrfmicro/board.yml b/app/boards/joric/nrfmicro/board.yml index 1cfcc492f..391cee63d 100644 --- a/app/boards/joric/nrfmicro/board.yml +++ b/app/boards/joric/nrfmicro/board.yml @@ -1,14 +1,9 @@ board: - name: nrfmicro - vendor: joric - socs: - - name: nrf52840 - variants: - - name: flipped - - name: nrf52833 - revision: - format: major.minor.patch - default: 1.3.0 - revisions: - - name: 1.3.0 - - name: 1.1.0 + extend: nrfmicro + variants: + - name: zmk + qualifier: nrf52840 + - name: flipped_zmk + qualifier: nrf52840 + - name: zmk + qualifier: nrf52833 diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52833.zmk.yml b/app/boards/joric/nrfmicro/nrfmicro_nrf52833.zmk.yml index 918c0b353..632d283e8 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52833.zmk.yml +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52833.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nrfmicro/nrf52833 +id: nrfmicro/nrf52833/zmk name: nRFMicro (nRF52833) type: board arch: arm diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52833_zmk.dts b/app/boards/joric/nrfmicro/nrfmicro_nrf52833_zmk.dts new file mode 100644 index 000000000..7f597f581 --- /dev/null +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52833_zmk.dts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/joric/nrfmicro/nrfmicro_nrf52833.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>; + init-delay-ms = <50>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 2>; + output-ohms = <2000000>; + full-ohms = <(2000000 + 820000)>; + }; +}; + diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0_defconfig b/app/boards/joric/nrfmicro/nrfmicro_nrf52833_zmk_1_3_0_defconfig similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0_defconfig rename to app/boards/joric/nrfmicro/nrfmicro_nrf52833_zmk_1_3_0_defconfig diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840.zmk.yml b/app/boards/joric/nrfmicro/nrfmicro_nrf52840.zmk.yml index a1cfb4fe3..403fdda3c 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52840.zmk.yml +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52840.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nrfmicro/nrf52840 +id: nrfmicro/nrf52840/zmk name: nRFMicro (nRF52840) 1.1/1.2/1.3 type: board arch: arm diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.zmk.yml b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.zmk.yml index 252d04b98..d3b66619f 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.zmk.yml +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nrfmicro/nrf52840/flipped +id: nrfmicro/nrf52840/flipped_zmk name: nRFMicro nRF52840 (flipped) type: board arch: arm diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0.overlay b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0.overlay deleted file mode 100644 index 758f4ee89..000000000 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0.overlay +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_zmk.dts b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_zmk.dts new file mode 100644 index 000000000..d1de13cec --- /dev/null +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_zmk.dts @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts> +#include + +/ { + // 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_HIGH>; + init-delay-ms = <50>; + }; +}; diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0_defconfig b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_zmk_1_1_0_defconfig similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0_defconfig rename to app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_zmk_1_1_0_defconfig diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk.dts b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk.dts new file mode 100644 index 000000000..a19957328 --- /dev/null +++ b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk.dts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/joric/nrfmicro/nrfmicro_nrf52840.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>; + init-delay-ms = <50>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 2>; + output-ohms = <2000000>; + full-ohms = <(2000000 + 820000)>; + }; +}; diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0_defconfig b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_1_0_defconfig similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0_defconfig rename to app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_1_0_defconfig diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0.overlay b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_3_0.overlay similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0.overlay rename to app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_3_0.overlay diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0_defconfig b/app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_3_0_defconfig similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0_defconfig rename to app/boards/joric/nrfmicro/nrfmicro_nrf52840_zmk_1_3_0_defconfig diff --git a/app/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 b/app/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 index da3774d7c..c1f1d0a26 100644 --- a/app/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 +++ b/app/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 @@ -1,8 +1,8 @@ -# Copyright (c) 2020 Pete Johanson, Derek Schmell +# Copyright (c) 2026 Pete Johanson, Derek Schmell # SPDX-License-Identifier: Apache-2.0 config BOARD_BLUEMICRO840 select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + imply RETAINED_MEM if BOARD_BLUEMICRO840_NRF52840_ZMK + imply RETENTION if BOARD_BLUEMICRO840_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_BLUEMICRO840_NRF52840_ZMK diff --git a/app/boards/jpconstantineau/bluemicro840/bluemicro840.zmk.yml b/app/boards/jpconstantineau/bluemicro840/bluemicro840.zmk.yml index 10afcbf1f..7b1d84529 100644 --- a/app/boards/jpconstantineau/bluemicro840/bluemicro840.zmk.yml +++ b/app/boards/jpconstantineau/bluemicro840/bluemicro840.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bluemicro840 +id: bluemicro840//zmk name: BlueMicro840 v1 type: board arch: arm diff --git a/app/boards/jpconstantineau/bluemicro840/bluemicro840_nrf52840_zmk.dts b/app/boards/jpconstantineau/bluemicro840/bluemicro840_nrf52840_zmk.dts new file mode 100644 index 000000000..e36be9125 --- /dev/null +++ b/app/boards/jpconstantineau/bluemicro840/bluemicro840_nrf52840_zmk.dts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2026 Pete Johanson, Derek Schmell + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/jpconstantineau/bluemicro840/bluemicro840.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"; + init-delay-ms = <20>; + control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 7>; + output-ohms = <2000000>; + full-ohms = <(2000000 + 806000)>; + }; + +}; diff --git a/app/boards/jpconstantineau/bluemicro840/bluemicro840_defconfig b/app/boards/jpconstantineau/bluemicro840/bluemicro840_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/jpconstantineau/bluemicro840/bluemicro840_defconfig rename to app/boards/jpconstantineau/bluemicro840/bluemicro840_nrf52840_zmk_defconfig diff --git a/app/boards/jpconstantineau/bluemicro840/board.yml b/app/boards/jpconstantineau/bluemicro840/board.yml index 0a9ebdd5d..4341c04fa 100644 --- a/app/boards/jpconstantineau/bluemicro840/board.yml +++ b/app/boards/jpconstantineau/bluemicro840/board.yml @@ -1,5 +1,5 @@ board: - name: bluemicro840 - vendor: jpconstantineau - socs: - - name: nrf52840 + extend: bluemicro840 + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/kbdfans/tofu65/board.yml b/app/boards/kbdfans/tofu65/board.yml index a044fea25..9441c6425 100644 --- a/app/boards/kbdfans/tofu65/board.yml +++ b/app/boards/kbdfans/tofu65/board.yml @@ -3,3 +3,5 @@ board: vendor: kbdfans socs: - name: rp2040 + variants: + - name: zmk diff --git a/app/boards/kbdfans/tofu65/tofu65.zmk.yml b/app/boards/kbdfans/tofu65/tofu65.zmk.yml index b8ef43b36..fd24d1834 100644 --- a/app/boards/kbdfans/tofu65/tofu65.zmk.yml +++ b/app/boards/kbdfans/tofu65/tofu65.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: tofu65 +id: tofu65//zmk name: KBDfans Tofu65 2.0 type: board arch: arm diff --git a/app/boards/kbdfans/tofu65/tofu65.dts b/app/boards/kbdfans/tofu65/tofu65_rp2040_zmk.dts similarity index 100% rename from app/boards/kbdfans/tofu65/tofu65.dts rename to app/boards/kbdfans/tofu65/tofu65_rp2040_zmk.dts diff --git a/app/boards/kbdfans/tofu65/tofu65_defconfig b/app/boards/kbdfans/tofu65/tofu65_rp2040_zmk_defconfig similarity index 100% rename from app/boards/kbdfans/tofu65/tofu65_defconfig rename to app/boards/kbdfans/tofu65/tofu65_rp2040_zmk_defconfig diff --git a/app/boards/keebio/bdn9/bdn9.zmk.yml b/app/boards/keebio/bdn9/bdn9.zmk.yml index 4991888c4..a6c764adf 100644 --- a/app/boards/keebio/bdn9/bdn9.zmk.yml +++ b/app/boards/keebio/bdn9/bdn9.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bdn9 +id: bdn9//zmk name: BDN9 (Rev2) type: board arch: arm diff --git a/app/boards/keebio/bdn9/bdn9.dts b/app/boards/keebio/bdn9/bdn9_stm32f072xb_zmk.dts similarity index 100% rename from app/boards/keebio/bdn9/bdn9.dts rename to app/boards/keebio/bdn9/bdn9_stm32f072xb_zmk.dts diff --git a/app/boards/keebio/bdn9/bdn9_defconfig b/app/boards/keebio/bdn9/bdn9_stm32f072xb_zmk_defconfig similarity index 100% rename from app/boards/keebio/bdn9/bdn9_defconfig rename to app/boards/keebio/bdn9/bdn9_stm32f072xb_zmk_defconfig diff --git a/app/boards/keebio/bdn9/board.yml b/app/boards/keebio/bdn9/board.yml index 45eaad641..a2c5917d6 100644 --- a/app/boards/keebio/bdn9/board.yml +++ b/app/boards/keebio/bdn9/board.yml @@ -3,6 +3,8 @@ board: vendor: keebio socs: - name: stm32f072xb + variants: + - name: zmk revision: format: major.minor.patch default: 2.0.0 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/kinesis/adv360pro/adv360pro.zmk.yml b/app/boards/kinesis/adv360pro/adv360pro.zmk.yml index 5e882680d..2d1e3496b 100644 --- a/app/boards/kinesis/adv360pro/adv360pro.zmk.yml +++ b/app/boards/kinesis/adv360pro/adv360pro.zmk.yml @@ -13,5 +13,5 @@ outputs: - usb - ble siblings: - - adv360pro_left - - adv360pro_right + - adv360pro_left//zmk + - adv360pro_right//zmk diff --git a/app/boards/kinesis/adv360pro/adv360pro_left.dts b/app/boards/kinesis/adv360pro/adv360pro_left_nrf52840_zmk.dts similarity index 100% rename from app/boards/kinesis/adv360pro/adv360pro_left.dts rename to app/boards/kinesis/adv360pro/adv360pro_left_nrf52840_zmk.dts diff --git a/app/boards/kinesis/adv360pro/adv360pro_left_defconfig b/app/boards/kinesis/adv360pro/adv360pro_left_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/kinesis/adv360pro/adv360pro_left_defconfig rename to app/boards/kinesis/adv360pro/adv360pro_left_nrf52840_zmk_defconfig diff --git a/app/boards/kinesis/adv360pro/adv360pro_right.dts b/app/boards/kinesis/adv360pro/adv360pro_right_nrf52840_zmk.dts similarity index 100% rename from app/boards/kinesis/adv360pro/adv360pro_right.dts rename to app/boards/kinesis/adv360pro/adv360pro_right_nrf52840_zmk.dts diff --git a/app/boards/kinesis/adv360pro/adv360pro_right_defconfig b/app/boards/kinesis/adv360pro/adv360pro_right_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/kinesis/adv360pro/adv360pro_right_defconfig rename to app/boards/kinesis/adv360pro/adv360pro_right_nrf52840_zmk_defconfig diff --git a/app/boards/kinesis/adv360pro/board.yml b/app/boards/kinesis/adv360pro/board.yml index 1332451e5..8ec7f8f8f 100644 --- a/app/boards/kinesis/adv360pro/board.yml +++ b/app/boards/kinesis/adv360pro/board.yml @@ -3,7 +3,11 @@ boards: vendor: kinesis socs: - name: nrf52840 + variants: + - name: zmk - name: adv360pro_right vendor: kinesis socs: - name: nrf52840 + variants: + - name: zmk diff --git a/app/boards/lowprokb/corneish_zen/board.yml b/app/boards/lowprokb/corneish_zen/board.yml index 97d63ec68..aafdcbd6c 100644 --- a/app/boards/lowprokb/corneish_zen/board.yml +++ b/app/boards/lowprokb/corneish_zen/board.yml @@ -3,6 +3,8 @@ boards: vendor: lowprokb socs: - name: nrf52840 + variants: + - name: zmk revision: format: major.minor.patch default: 2.0.0 @@ -14,6 +16,8 @@ boards: vendor: lowprokb socs: - name: nrf52840 + variants: + - name: zmk revision: format: major.minor.patch default: 2.0.0 diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen.zmk.yml b/app/boards/lowprokb/corneish_zen/corneish_zen.zmk.yml index 9630386de..574664a25 100644 --- a/app/boards/lowprokb/corneish_zen/corneish_zen.zmk.yml +++ b/app/boards/lowprokb/corneish_zen/corneish_zen.zmk.yml @@ -15,5 +15,5 @@ revisions: - 2.0.0 - 1.0.0 siblings: - - corneish_zen_left - - corneish_zen_right + - corneish_zen_left//zmk + - corneish_zen_right//zmk diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_left.dts b/app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk.dts similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_left.dts rename to app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk.dts diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_left_1_0_0.overlay b/app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_1_0_0.overlay similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_left_1_0_0.overlay rename to app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_1_0_0.overlay diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_left_1_0_0_defconfig b/app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_1_0_0_defconfig similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_left_1_0_0_defconfig rename to app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_1_0_0_defconfig diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_left_2_0_0.overlay b/app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_2_0_0.overlay similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_left_2_0_0.overlay rename to app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_2_0_0.overlay diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_left_2_0_0_defconfig b/app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_2_0_0_defconfig similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_left_2_0_0_defconfig rename to app/boards/lowprokb/corneish_zen/corneish_zen_left_nrf52840_zmk_2_0_0_defconfig diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_right.dts b/app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk.dts similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_right.dts rename to app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk.dts diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_right_1_0_0.overlay b/app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_1_0_0.overlay similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_right_1_0_0.overlay rename to app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_1_0_0.overlay diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_right_1_0_0_defconfig b/app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_1_0_0_defconfig similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_right_1_0_0_defconfig rename to app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_1_0_0_defconfig diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_right_2_0_0.overlay b/app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_2_0_0.overlay similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_right_2_0_0.overlay rename to app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_2_0_0.overlay diff --git a/app/boards/lowprokb/corneish_zen/corneish_zen_right_2_0_0_defconfig b/app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_2_0_0_defconfig similarity index 100% rename from app/boards/lowprokb/corneish_zen/corneish_zen_right_2_0_0_defconfig rename to app/boards/lowprokb/corneish_zen/corneish_zen_right_nrf52840_zmk_2_0_0_defconfig diff --git a/app/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 b/app/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 index acb746cdc..82aa35e2a 100644 --- a/app/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 +++ b/app/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 @@ -3,6 +3,6 @@ config BOARD_NRF52840_M2 select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + imply RETAINED_MEM if BOARD_NRF52840_M2_NRF52840_ZMK + imply RETENTION if BOARD_NRF52840_M2_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_NRF52840_M2_NRF52840_ZMK diff --git a/app/boards/makerdiary/nrf52840_m2/board.yml b/app/boards/makerdiary/nrf52840_m2/board.yml index a1675e245..16079c2c5 100644 --- a/app/boards/makerdiary/nrf52840_m2/board.yml +++ b/app/boards/makerdiary/nrf52840_m2/board.yml @@ -1,5 +1,5 @@ board: - name: nrf52840_m2 - vendor: makerdiary - socs: - - name: nrf52840 + extend: nrf52840_m2 + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.zmk.yml b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.zmk.yml index 2a4ccb0ce..227c4500b 100644 --- a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.zmk.yml +++ b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nrf52840_m2 +id: nrf52840_m2//zmk name: nRF52840 M.2 Module type: board arch: arm diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_nrf52840_zmk.dts b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_nrf52840_zmk.dts new file mode 100644 index 000000000..cdca8a68d --- /dev/null +++ b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_nrf52840_zmk.dts @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +/dts-v1/; +#include <../boards/makerdiary/nrf52840_m2/nrf52840_m2.dts> +#include + +/ { + model = "Makerdiary nRF52840 M.2 module"; + compatible = "makerdiary,nrf52840_m2"; + + chosen { + zmk,battery = &vbatt; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 0>; + output-ohms = <1000000>; + full-ohms = <(1000000 + 1000000)>; + }; +}; diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig rename to app/boards/makerdiary/nrf52840_m2/nrf52840_m2_nrf52840_zmk_defconfig diff --git a/app/boards/mechwild/pillbug/Kconfig.pillbug b/app/boards/mechwild/pillbug/Kconfig.pillbug index b8e0e1482..27482cc2f 100644 --- a/app/boards/mechwild/pillbug/Kconfig.pillbug +++ b/app/boards/mechwild/pillbug/Kconfig.pillbug @@ -3,6 +3,6 @@ config BOARD_PILLBUG select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + imply RETAINED_MEM if BOARD_PILLBUG_NRF52840_ZMK + imply RETENTION if BOARD_PILLBUG_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_PILLBUG_NRF52840_ZMK diff --git a/app/boards/mechwild/pillbug/board.yml b/app/boards/mechwild/pillbug/board.yml index abd15044f..7e6a99597 100644 --- a/app/boards/mechwild/pillbug/board.yml +++ b/app/boards/mechwild/pillbug/board.yml @@ -1,5 +1,5 @@ board: name: pillbug - vendor: mechwild - socs: - - name: nrf52840 + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/mechwild/pillbug/pillbug.zmk.yml b/app/boards/mechwild/pillbug/pillbug.zmk.yml index 5df11b9e0..397ce6537 100644 --- a/app/boards/mechwild/pillbug/pillbug.zmk.yml +++ b/app/boards/mechwild/pillbug/pillbug.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: pillbug +id: pillbug//zmk name: PillBug type: board arch: arm diff --git a/app/boards/mechwild/pillbug/pillbug_nrf52840_zmk.dts b/app/boards/mechwild/pillbug/pillbug_nrf52840_zmk.dts new file mode 100644 index 000000000..ff977338d --- /dev/null +++ b/app/boards/mechwild/pillbug/pillbug_nrf52840_zmk.dts @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +/dts-v1/; + +#include <../boards/mechwild/pillbug/pillbug.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 7 GPIO_ACTIVE_LOW>; + init-delay-ms = <50>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 2>; + output-ohms = <2000000>; + full-ohms = <(2000000 + 820000)>; + }; +}; diff --git a/app/boards/mechwild/pillbug/pillbug_defconfig b/app/boards/mechwild/pillbug/pillbug_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/mechwild/pillbug/pillbug_defconfig rename to app/boards/mechwild/pillbug/pillbug_nrf52840_zmk_defconfig diff --git a/app/boards/mechwild/s40nc/board.yml b/app/boards/mechwild/s40nc/board.yml index 3df3c330f..61700618a 100644 --- a/app/boards/mechwild/s40nc/board.yml +++ b/app/boards/mechwild/s40nc/board.yml @@ -3,3 +3,5 @@ board: vendor: mechwild socs: - name: nrf52840 + variants: + - name: zmk diff --git a/app/boards/mechwild/s40nc/s40nc.zmk.yml b/app/boards/mechwild/s40nc/s40nc.zmk.yml index 57b30ecae..e64fc007d 100644 --- a/app/boards/mechwild/s40nc/s40nc.zmk.yml +++ b/app/boards/mechwild/s40nc/s40nc.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: s40nc +id: s40nc//zmk name: S40NC type: board arch: arm diff --git a/app/boards/mechwild/s40nc/s40nc.dts b/app/boards/mechwild/s40nc/s40nc_nrf52840_zmk.dts similarity index 100% rename from app/boards/mechwild/s40nc/s40nc.dts rename to app/boards/mechwild/s40nc/s40nc_nrf52840_zmk.dts diff --git a/app/boards/mechwild/s40nc/s40nc_defconfig b/app/boards/mechwild/s40nc/s40nc_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/mechwild/s40nc/s40nc_defconfig rename to app/boards/mechwild/s40nc/s40nc_nrf52840_zmk_defconfig diff --git a/app/boards/native/native_sim/Kconfig b/app/boards/native/native_sim/Kconfig new file mode 100644 index 000000000..8d7f746f5 --- /dev/null +++ b/app/boards/native/native_sim/Kconfig @@ -0,0 +1,11 @@ + +config BOARD_NATIVE_SIM + bool + select POSIX_ARCH_CONSOLE + select NATIVE_LIBRARY + select NATIVE_POSIX_TIMER + select 64BIT if BOARD_NATIVE_SIM_NATIVE_ZMK_TEST_MOCK || BOARD_NATIVE_SIM_NATIVE_ZMK_DISPLAY_TESTING + imply BOARD_NATIVE_POSIX if NATIVE_SIM_NATIVE_POSIX_COMPAT + help + Native simulator (Single Core) + Will produce a console Linux process which can be executed natively. diff --git a/app/boards/native/native_sim/board.yml b/app/boards/native/native_sim/board.yml new file mode 100644 index 000000000..81f8d1b28 --- /dev/null +++ b/app/boards/native/native_sim/board.yml @@ -0,0 +1,7 @@ +board: + extend: native_sim + variants: + - name: zmk_display_testing + qualifier: native + - name: zmk_test_mock + qualifier: native diff --git a/app/boards/native/native_sim/native_sim_native_zmk_display_testing.keymap b/app/boards/native/native_sim/native_sim_native_zmk_display_testing.keymap new file mode 100644 index 000000000..d55614c33 --- /dev/null +++ b/app/boards/native/native_sim/native_sim_native_zmk_display_testing.keymap @@ -0,0 +1,20 @@ +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + bindings = < + &none &mo 1 + &kp A &none>; + }; + + lower_layer { + bindings = < + &none &trans + &none &kp A>; + }; + }; +}; diff --git a/app/boards/native/native_sim/native_sim_native_zmk_display_testing_defconfig b/app/boards/native/native_sim/native_sim_native_zmk_display_testing_defconfig new file mode 100644 index 000000000..26fcc6ad3 --- /dev/null +++ b/app/boards/native/native_sim/native_sim_native_zmk_display_testing_defconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: MIT + +CONFIG_ZMK_DISPLAY=y + +CONFIG_CONSOLE=y +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=1000000 + +CONFIG_LOG=y +CONFIG_LOG_BACKEND_SHOW_COLOR=n +CONFIG_ZMK_LOG_LEVEL_DBG=y +CONFIG_DEBUG=y +CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000 diff --git a/app/boards/extensions/native_sim/native_sim_native_64.conf b/app/boards/native/native_sim/native_sim_native_zmk_test_mock_defconfig similarity index 56% rename from app/boards/extensions/native_sim/native_sim_native_64.conf rename to app/boards/native/native_sim/native_sim_native_zmk_test_mock_defconfig index 0d8e0d81f..fc1b04077 100644 --- a/app/boards/extensions/native_sim/native_sim_native_64.conf +++ b/app/boards/native/native_sim/native_sim_native_zmk_test_mock_defconfig @@ -1,6 +1,8 @@ -CONFIG_GPIO=n -# Enable to have the native posix build expose USBIP device(s) -# CONFIG_ZMK_USB=y +# SPDX-License-Identifier: MIT + +CONFIG_CONSOLE=y +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=1000000 + CONFIG_LOG=y CONFIG_LOG_BACKEND_SHOW_COLOR=n CONFIG_ZMK_LOG_LEVEL_DBG=y diff --git a/app/boards/native/native_sim/native_sim_zmk_display_testing.dts b/app/boards/native/native_sim/native_sim_zmk_display_testing.dts new file mode 100644 index 000000000..f82371b47 --- /dev/null +++ b/app/boards/native/native_sim/native_sim_zmk_display_testing.dts @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: MIT */ + +#include "native_sim_zmk_test_mock.dts" + +&kscan { + events = <>; + /delete-property/ exit-after; +}; + +&sdl_dc { + width = <128>; + height = <128>; +}; diff --git a/app/boards/extensions/native_sim/native_sim.overlay b/app/boards/native/native_sim/native_sim_zmk_test_mock.dts similarity index 52% rename from app/boards/extensions/native_sim/native_sim.overlay rename to app/boards/native/native_sim/native_sim_zmk_test_mock.dts index 5b8e23d30..fa67bfc5d 100644 --- a/app/boards/extensions/native_sim/native_sim.overlay +++ b/app/boards/native/native_sim/native_sim_zmk_test_mock.dts @@ -1,10 +1,10 @@ +#include <../boards/native/native_sim/native_sim.dts> #include #include / { chosen { - zephyr,console = &uart0; zmk,kscan = &kscan; }; @@ -15,13 +15,5 @@ columns = <2>; exit-after; }; - - uart0: uart { - status = "okay"; - compatible = "zephyr,native-posix-uart"; - /* Dummy current-speed entry to comply with serial - * DTS binding - */ - current-speed = <0>; - }; }; + diff --git a/app/boards/native/nrf_bsim/board.yml b/app/boards/native/nrf_bsim/board.yml new file mode 100644 index 000000000..89ccb73ec --- /dev/null +++ b/app/boards/native/nrf_bsim/board.yml @@ -0,0 +1,5 @@ +board: + extend: nrf52_bsim + variants: + - name: zmk_test_mock + qualifier: native diff --git a/app/boards/native/nrf_bsim/nrf52_bsim_native_zmk_test_mock_defconfig b/app/boards/native/nrf_bsim/nrf52_bsim_native_zmk_test_mock_defconfig new file mode 100644 index 000000000..c24991bf2 --- /dev/null +++ b/app/boards/native/nrf_bsim/nrf52_bsim_native_zmk_test_mock_defconfig @@ -0,0 +1,10 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +CONFIG_CONSOLE=y +CONFIG_NO_OPTIMIZATIONS=y + +CONFIG_ZMK_BLE=y +CONFIG_LOG=y +CONFIG_LOG_BACKEND_SHOW_COLOR=n +CONFIG_ZMK_LOG_LEVEL_DBG=y diff --git a/app/boards/extensions/nrf_bsim/nrf52_bsim.overlay b/app/boards/native/nrf_bsim/nrf52_bsim_zmk_test_mock.dts similarity index 83% rename from app/boards/extensions/nrf_bsim/nrf52_bsim.overlay rename to app/boards/native/nrf_bsim/nrf52_bsim_zmk_test_mock.dts index ec7c49ae9..835a49c10 100644 --- a/app/boards/extensions/nrf_bsim/nrf52_bsim.overlay +++ b/app/boards/native/nrf_bsim/nrf52_bsim_zmk_test_mock.dts @@ -1,3 +1,5 @@ +#include <../boards/native/nrf_bsim/nrf52_bsim.dts> + #include #include #include diff --git a/app/boards/nicekeyboards/nice60/README.md b/app/boards/nicekeyboards/nice60/README.md index dce230ae7..4b3fa09a9 100644 --- a/app/boards/nicekeyboards/nice60/README.md +++ b/app/boards/nicekeyboards/nice60/README.md @@ -7,5 +7,5 @@ The nice!60 is a hotswap 60% made by Nice Keyboards. https://nicekeyboards.com/n ## Building nice!60 ZMK firmware ``` -west build -p -b nice60 +west build -p -b nice60//zmk ``` diff --git a/app/boards/nicekeyboards/nice60/board.yml b/app/boards/nicekeyboards/nice60/board.yml index fdbe7cef1..e945cbf04 100644 --- a/app/boards/nicekeyboards/nice60/board.yml +++ b/app/boards/nicekeyboards/nice60/board.yml @@ -3,3 +3,5 @@ board: vendor: nicekeyboards socs: - name: nrf52840 + variants: + - name: zmk diff --git a/app/boards/nicekeyboards/nice60/nice60.zmk.yml b/app/boards/nicekeyboards/nice60/nice60.zmk.yml index 2847260f8..b6d2a2b13 100644 --- a/app/boards/nicekeyboards/nice60/nice60.zmk.yml +++ b/app/boards/nicekeyboards/nice60/nice60.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nice60 +id: nice60//zmk name: nice!60 type: board arch: arm diff --git a/app/boards/nicekeyboards/nice60/nice60.dts b/app/boards/nicekeyboards/nice60/nice60_nrf52840_zmk.dts similarity index 100% rename from app/boards/nicekeyboards/nice60/nice60.dts rename to app/boards/nicekeyboards/nice60/nice60_nrf52840_zmk.dts diff --git a/app/boards/nicekeyboards/nice60/nice60_defconfig b/app/boards/nicekeyboards/nice60/nice60_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/nicekeyboards/nice60/nice60_defconfig rename to app/boards/nicekeyboards/nice60/nice60_nrf52840_zmk_defconfig diff --git a/app/boards/nicekeyboards/nice_nano/Kconfig.nice_nano b/app/boards/nicekeyboards/nice_nano/Kconfig.nice_nano index d1be26ef9..ae9a61703 100644 --- a/app/boards/nicekeyboards/nice_nano/Kconfig.nice_nano +++ b/app/boards/nicekeyboards/nice_nano/Kconfig.nice_nano @@ -3,6 +3,6 @@ config BOARD_NICE_NANO select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE \ No newline at end of file + imply RETAINED_MEM if BOARD_NICE_NANO_NRF52840_ZMK + imply RETENTION if BOARD_NICE_NANO_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_NICE_NANO_NRF52840_ZMK diff --git a/app/boards/nicekeyboards/nice_nano/board.yml b/app/boards/nicekeyboards/nice_nano/board.yml index 89171957c..13cba4f6b 100644 --- a/app/boards/nicekeyboards/nice_nano/board.yml +++ b/app/boards/nicekeyboards/nice_nano/board.yml @@ -1,11 +1,5 @@ board: - name: nice_nano - vendor: nicekeyboards - socs: - - name: nrf52840 - revision: - format: major.minor.patch - default: 2.0.0 - revisions: - - name: 1.0.0 - - name: 2.0.0 + extend: nice_nano + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano.zmk.yml b/app/boards/nicekeyboards/nice_nano/nice_nano.zmk.yml index 2245a89ee..e9b69fffa 100644 --- a/app/boards/nicekeyboards/nice_nano/nice_nano.zmk.yml +++ b/app/boards/nicekeyboards/nice_nano/nice_nano.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nice_nano +id: nice_nano//zmk name: nice!nano type: board arch: arm diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk.dts b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk.dts new file mode 100644 index 000000000..ed5b9b7bb --- /dev/null +++ b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk.dts @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +/dts-v1/; + +#include <../boards/nicekeyboards/nice_nano/nice_nano.dts> +#include + diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano_1_0_0.overlay b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_1_0_0.overlay similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano_1_0_0.overlay rename to app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_1_0_0.overlay diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano_1_0_0_defconfig b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_1_0_0_defconfig similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano_1_0_0_defconfig rename to app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_1_0_0_defconfig diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano_2_0_0.overlay b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_2_0_0.overlay similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano_2_0_0.overlay rename to app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_2_0_0.overlay diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano_2_0_0_defconfig b/app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_2_0_0_defconfig similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano_2_0_0_defconfig rename to app/boards/nicekeyboards/nice_nano/nice_nano_nrf52840_zmk_2_0_0_defconfig diff --git a/app/boards/nordic/nrf52840dk/Kconfig.nrf52840dk b/app/boards/nordic/nrf52840dk/Kconfig.nrf52840dk new file mode 100644 index 000000000..66852ec1c --- /dev/null +++ b/app/boards/nordic/nrf52840dk/Kconfig.nrf52840dk @@ -0,0 +1,3 @@ + +config BOARD_NRF52840DK + select SOC_NRF52840_QIAA if BOARD_NRF52840DK_NRF52840_ZMK diff --git a/app/boards/nordic/nrf52840dk/board.yml b/app/boards/nordic/nrf52840dk/board.yml new file mode 100644 index 000000000..a8be86a3e --- /dev/null +++ b/app/boards/nordic/nrf52840dk/board.yml @@ -0,0 +1,5 @@ +board: + extend: nrf52840dk + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/nordic/nrf52840dk_nrf52840/nrf52840dk_nrf52840.zmk.yml b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.zmk.yml similarity index 86% rename from app/boards/nordic/nrf52840dk_nrf52840/nrf52840dk_nrf52840.zmk.yml rename to app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.zmk.yml index 47cb6461a..738cf2900 100644 --- a/app/boards/nordic/nrf52840dk_nrf52840/nrf52840dk_nrf52840.zmk.yml +++ b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: nrf52840dk/nrf52840 +id: nrf52840dk/nrf52840/zmk name: Nordic nRF52840 DK type: board arch: arm diff --git a/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk.dts b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk.dts new file mode 100644 index 000000000..d2a0b8556 --- /dev/null +++ b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk.dts @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/nordic/nrf52840dk/nrf52840dk_nrf52840.dts> + diff --git a/app/boards/extensions/nrf52840dk/nrf52840dk_nrf52840.conf b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk_defconfig similarity index 59% rename from app/boards/extensions/nrf52840dk/nrf52840dk_nrf52840.conf rename to app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk_defconfig index 6c9bcdf13..087cfbd0c 100644 --- a/app/boards/extensions/nrf52840dk/nrf52840dk_nrf52840.conf +++ b/app/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_zmk_defconfig @@ -1,9 +1,20 @@ # Copyright (c) 2022 The ZMK Contributors # SPDX-License-Identifier: MIT +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# enable GPIO +CONFIG_GPIO=y + +# USB and BLE HID CONFIG_ZMK_USB=y CONFIG_ZMK_BLE=y +# Settings Support CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_NVS=y CONFIG_SETTINGS_NVS=y diff --git a/app/boards/nordic/nrf52840dongle/board.yml b/app/boards/nordic/nrf52840dongle/board.yml new file mode 100644 index 000000000..26104aa08 --- /dev/null +++ b/app/boards/nordic/nrf52840dongle/board.yml @@ -0,0 +1,5 @@ +board: + extend: nrf52840dongle + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk.dts b/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk.dts new file mode 100644 index 000000000..2b093635a --- /dev/null +++ b/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk.dts @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.dts> + diff --git a/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk_defconfig b/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk_defconfig new file mode 100644 index 000000000..2c19ebd88 --- /dev/null +++ b/app/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_zmk_defconfig @@ -0,0 +1,29 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# enable GPIO +CONFIG_GPIO=y + +# Board Kconfig.defconfig enables USB CDC ACM and should disable USB remote +# wakeup by default. It needs to be disabled here, because the USB nrfx +# driver always overwrites option from Kconfig mentioned above with the +# imply from CONFIG_USB_NRFX. +CONFIG_USB_DEVICE_REMOTE_WAKEUP=n + +# HID Transports +CONFIG_ZMK_BLE=y +CONFIG_ZMK_USB=y + +# Settings options +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y diff --git a/app/boards/extensions/nrf5340dk/nrf5340dk_nrf5340_cpuapp.conf b/app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.conf similarity index 100% rename from app/boards/extensions/nrf5340dk/nrf5340dk_nrf5340_cpuapp.conf rename to app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.conf diff --git a/app/boards/extensions/nrf5340dk/nrf5340dk_nrf5340_cpuapp.overlay b/app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.overlay similarity index 100% rename from app/boards/extensions/nrf5340dk/nrf5340dk_nrf5340_cpuapp.overlay rename to app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.overlay diff --git a/app/boards/nordic/nrf5340dk_nrf5340_cpuapp/nrf5340dk_nrf5340_cpuapp.zmk.yml b/app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.zmk.yml similarity index 100% rename from app/boards/nordic/nrf5340dk_nrf5340_cpuapp/nrf5340dk_nrf5340_cpuapp.zmk.yml rename to app/boards/nordic/nrf5340dk/nrf5340dk_nrf5340_cpuapp.zmk.yml diff --git a/app/boards/olkb/planck/board.yml b/app/boards/olkb/planck/board.yml index b81bcddbf..dd30d7cfe 100644 --- a/app/boards/olkb/planck/board.yml +++ b/app/boards/olkb/planck/board.yml @@ -3,6 +3,8 @@ board: vendor: olkb socs: - name: stm32f303xc + variants: + - name: zmk revision: format: major.minor.patch default: 6.0.0 diff --git a/app/boards/olkb/planck/planck.zmk.yml b/app/boards/olkb/planck/planck.zmk.yml index 42e83d12f..541945422 100644 --- a/app/boards/olkb/planck/planck.zmk.yml +++ b/app/boards/olkb/planck/planck.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: planck +id: planck//zmk name: Planck (Rev6) type: board arch: arm diff --git a/app/boards/olkb/planck/planck.dts b/app/boards/olkb/planck/planck_stm32f303xc_zmk.dts similarity index 100% rename from app/boards/olkb/planck/planck.dts rename to app/boards/olkb/planck/planck_stm32f303xc_zmk.dts diff --git a/app/boards/olkb/planck/planck_6_0_0_defconfig b/app/boards/olkb/planck/planck_stm32f303xc_zmk_6_0_0_defconfig similarity index 100% rename from app/boards/olkb/planck/planck_6_0_0_defconfig rename to app/boards/olkb/planck/planck_stm32f303xc_zmk_6_0_0_defconfig diff --git a/app/boards/olkb/preonic/board.yml b/app/boards/olkb/preonic/board.yml index 688df6846..95992c3ee 100644 --- a/app/boards/olkb/preonic/board.yml +++ b/app/boards/olkb/preonic/board.yml @@ -3,6 +3,8 @@ board: vendor: olkb socs: - name: stm32f303xc + variants: + - name: zmk revision: format: major.minor.patch default: 3.0.0 diff --git a/app/boards/olkb/preonic/preonic.zmk.yml b/app/boards/olkb/preonic/preonic.zmk.yml index 692f91a83..887550832 100644 --- a/app/boards/olkb/preonic/preonic.zmk.yml +++ b/app/boards/olkb/preonic/preonic.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: preonic +id: preonic//zmk name: Preonic Rev3 type: board arch: arm diff --git a/app/boards/olkb/preonic/preonic.dts b/app/boards/olkb/preonic/preonic_stm32f303xc_zmk.dts similarity index 100% rename from app/boards/olkb/preonic/preonic.dts rename to app/boards/olkb/preonic/preonic_stm32f303xc_zmk.dts diff --git a/app/boards/olkb/preonic/preonic_defconfig b/app/boards/olkb/preonic/preonic_stm32f303xc_zmk_defconfig similarity index 100% rename from app/boards/olkb/preonic/preonic_defconfig rename to app/boards/olkb/preonic/preonic_stm32f303xc_zmk_defconfig diff --git a/app/boards/pierrechevalier83/ferris/board.yml b/app/boards/pierrechevalier83/ferris/board.yml index 3bed9d0b4..6fb3af39e 100644 --- a/app/boards/pierrechevalier83/ferris/board.yml +++ b/app/boards/pierrechevalier83/ferris/board.yml @@ -3,3 +3,5 @@ board: vendor: pierrechevalier83 socs: - name: stm32f072xb + variants: + - name: zmk diff --git a/app/boards/pierrechevalier83/ferris/ferris.zmk.yml b/app/boards/pierrechevalier83/ferris/ferris.zmk.yml index 841f437a4..68919fe53 100644 --- a/app/boards/pierrechevalier83/ferris/ferris.zmk.yml +++ b/app/boards/pierrechevalier83/ferris/ferris.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: ferris +id: ferris//zmk name: Ferris 0.2 type: board arch: arm diff --git a/app/boards/pierrechevalier83/ferris/ferris.dts b/app/boards/pierrechevalier83/ferris/ferris_stm32f072xb_zmk.dts similarity index 100% rename from app/boards/pierrechevalier83/ferris/ferris.dts rename to app/boards/pierrechevalier83/ferris/ferris_stm32f072xb_zmk.dts diff --git a/app/boards/pierrechevalier83/ferris/ferris_defconfig b/app/boards/pierrechevalier83/ferris/ferris_stm32f072xb_zmk_defconfig similarity index 100% rename from app/boards/pierrechevalier83/ferris/ferris_defconfig rename to app/boards/pierrechevalier83/ferris/ferris_stm32f072xb_zmk_defconfig diff --git a/app/boards/polarityworks/bt60/board.yml b/app/boards/polarityworks/bt60/board.yml index 2db078f6b..2f9a8b804 100644 --- a/app/boards/polarityworks/bt60/board.yml +++ b/app/boards/polarityworks/bt60/board.yml @@ -3,10 +3,14 @@ boards: vendor: polarityworks socs: - name: nrf52840 + variants: + - name: zmk - name: bt60 vendor: polarityworks socs: - name: nrf52840 + variants: + - name: zmk revision: format: major.minor.patch default: 2.0.0 diff --git a/app/boards/polarityworks/bt60/bt60.zmk.yml b/app/boards/polarityworks/bt60/bt60.zmk.yml index bec416a97..98bb85fc6 100644 --- a/app/boards/polarityworks/bt60/bt60.zmk.yml +++ b/app/boards/polarityworks/bt60/bt60.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bt60 +id: bt60//zmk name: BT60 V2 type: board arch: arm diff --git a/app/boards/polarityworks/bt60/bt60_hs.zmk.yml b/app/boards/polarityworks/bt60/bt60_hs.zmk.yml index 2d156370f..cc9d8ed7b 100644 --- a/app/boards/polarityworks/bt60/bt60_hs.zmk.yml +++ b/app/boards/polarityworks/bt60/bt60_hs.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bt60_hs +id: bt60_hs//zmk name: BT60 V1 Hotswap type: board arch: arm diff --git a/app/boards/polarityworks/bt60/bt60_hs.dts b/app/boards/polarityworks/bt60/bt60_hs_nrf52840_zmk.dts similarity index 98% rename from app/boards/polarityworks/bt60/bt60_hs.dts rename to app/boards/polarityworks/bt60/bt60_hs_nrf52840_zmk.dts index c152a62a0..55f905256 100644 --- a/app/boards/polarityworks/bt60/bt60_hs.dts +++ b/app/boards/polarityworks/bt60/bt60_hs_nrf52840_zmk.dts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: MIT */ -#include "bt60.dts" +#include "bt60_nrf52840_zmk.dts" #include "bt60_1_0_0.dtsi" #include diff --git a/app/boards/polarityworks/bt60/bt60_1_0_0_defconfig b/app/boards/polarityworks/bt60/bt60_hs_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/polarityworks/bt60/bt60_1_0_0_defconfig rename to app/boards/polarityworks/bt60/bt60_hs_nrf52840_zmk_defconfig diff --git a/app/boards/polarityworks/bt60/bt60.dts b/app/boards/polarityworks/bt60/bt60_nrf52840_zmk.dts similarity index 100% rename from app/boards/polarityworks/bt60/bt60.dts rename to app/boards/polarityworks/bt60/bt60_nrf52840_zmk.dts diff --git a/app/boards/polarityworks/bt60/bt60_1_0_0.overlay b/app/boards/polarityworks/bt60/bt60_nrf52840_zmk_1_0_0.overlay similarity index 100% rename from app/boards/polarityworks/bt60/bt60_1_0_0.overlay rename to app/boards/polarityworks/bt60/bt60_nrf52840_zmk_1_0_0.overlay diff --git a/app/boards/polarityworks/bt60/bt60_hs_defconfig b/app/boards/polarityworks/bt60/bt60_nrf52840_zmk_1_0_0_defconfig similarity index 100% rename from app/boards/polarityworks/bt60/bt60_hs_defconfig rename to app/boards/polarityworks/bt60/bt60_nrf52840_zmk_1_0_0_defconfig diff --git a/app/boards/polarityworks/bt60/bt60_2_0_0.overlay b/app/boards/polarityworks/bt60/bt60_nrf52840_zmk_2_0_0.overlay similarity index 100% rename from app/boards/polarityworks/bt60/bt60_2_0_0.overlay rename to app/boards/polarityworks/bt60/bt60_nrf52840_zmk_2_0_0.overlay diff --git a/app/boards/polarityworks/bt60/bt60_2_0_0_defconfig b/app/boards/polarityworks/bt60/bt60_nrf52840_zmk_2_0_0_defconfig similarity index 100% rename from app/boards/polarityworks/bt60/bt60_2_0_0_defconfig rename to app/boards/polarityworks/bt60/bt60_nrf52840_zmk_2_0_0_defconfig diff --git a/app/boards/polarityworks/bt65/board.yml b/app/boards/polarityworks/bt65/board.yml index 97f443cfd..7392a4057 100644 --- a/app/boards/polarityworks/bt65/board.yml +++ b/app/boards/polarityworks/bt65/board.yml @@ -3,3 +3,5 @@ board: vendor: polarityworks socs: - name: nrf52840 + variants: + - name: zmk diff --git a/app/boards/polarityworks/bt65/bt65.zmk.yml b/app/boards/polarityworks/bt65/bt65.zmk.yml index 136ace23c..aaeb1835f 100644 --- a/app/boards/polarityworks/bt65/bt65.zmk.yml +++ b/app/boards/polarityworks/bt65/bt65.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bt65 +id: bt65//zmk name: BT65 type: board arch: arm diff --git a/app/boards/polarityworks/bt65/bt65.dts b/app/boards/polarityworks/bt65/bt65_nrf52840_zmk.dts similarity index 100% rename from app/boards/polarityworks/bt65/bt65.dts rename to app/boards/polarityworks/bt65/bt65_nrf52840_zmk.dts diff --git a/app/boards/polarityworks/bt65/bt65_defconfig b/app/boards/polarityworks/bt65/bt65_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/polarityworks/bt65/bt65_defconfig rename to app/boards/polarityworks/bt65/bt65_nrf52840_zmk_defconfig diff --git a/app/boards/polarityworks/bt75/board.yml b/app/boards/polarityworks/bt75/board.yml index d12dcb3a1..5a8057c8f 100644 --- a/app/boards/polarityworks/bt75/board.yml +++ b/app/boards/polarityworks/bt75/board.yml @@ -3,3 +3,5 @@ board: vendor: polarityworks socs: - name: nrf52840 + variants: + - name: zmk diff --git a/app/boards/polarityworks/bt75/bt75.zmk.yml b/app/boards/polarityworks/bt75/bt75.zmk.yml index d4424a4bb..fb909c525 100644 --- a/app/boards/polarityworks/bt75/bt75.zmk.yml +++ b/app/boards/polarityworks/bt75/bt75.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: bt75 +id: bt75//zmk name: BT75 V1 type: board arch: arm diff --git a/app/boards/polarityworks/bt75/bt75.dts b/app/boards/polarityworks/bt75/bt75_nrf52840_zmk.dts similarity index 100% rename from app/boards/polarityworks/bt75/bt75.dts rename to app/boards/polarityworks/bt75/bt75_nrf52840_zmk.dts diff --git a/app/boards/polarityworks/bt75/bt75_defconfig b/app/boards/polarityworks/bt75/bt75_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/polarityworks/bt75/bt75_defconfig rename to app/boards/polarityworks/bt75/bt75_nrf52840_zmk_defconfig diff --git a/app/boards/post_boards_shields.cmake b/app/boards/post_boards_shields.cmake index 3bd7eb1da..6c4dd0ade 100644 --- a/app/boards/post_boards_shields.cmake +++ b/app/boards/post_boards_shields.cmake @@ -5,7 +5,7 @@ # * single overlay, # * or per board/shield. -list(APPEND KEYMAP_DIRS ${BOARD_DIR}) +list(APPEND KEYMAP_DIRS "${BOARD_DIRECTORIES}") get_filename_component(BOARD_DIR_NAME ${BOARD_DIR} NAME) # Give a shield like `kyria_rev2_left` we want to use `kyria_rev2` and `kyria` as candidate names for # overlay/conf/keymap files. @@ -81,7 +81,7 @@ endif() if(NOT KEYMAP_FILE) message("${NORMALIZED_BOARD_TARGET} for ${NORMALIZED_BOARD_QUALIFIERS} for ${BOARD} with version ${BOARD_REVISION}") foreach(keymap_dir ${KEYMAP_DIRS}) - foreach(keymap_prefix ${shield_candidate_names} ${SHIELD_AS_LIST} ${SHIELD_DIR} "${BOARD}_${BOARD_REVISION_STRING}" ${BOARD} ${BOARD_DIR_NAME}) + foreach(keymap_prefix ${shield_candidate_names} ${SHIELD_AS_LIST} ${SHIELD_DIR} "${NORMALIZED_BOARD_TARGET}" "${BOARD}_${BOARD_REVISION_STRING}" ${BOARD} ${BOARD_DIR_NAME}) if (EXISTS ${keymap_dir}/${keymap_prefix}.keymap) set(KEYMAP_FILE "${keymap_dir}/${keymap_prefix}.keymap" CACHE STRING "Selected keymap file") message(STATUS "Using keymap file: ${KEYMAP_FILE}") diff --git a/app/boards/qmk/proton_c/board.yml b/app/boards/qmk/proton_c/board.yml index 54ecb64bb..0b6a5d3ea 100644 --- a/app/boards/qmk/proton_c/board.yml +++ b/app/boards/qmk/proton_c/board.yml @@ -1,5 +1,5 @@ board: - name: proton_c - vendor: qmk - socs: - - name: stm32f303xc + extend: proton_c + variants: + - name: zmk + qualifier: stm32f303xc diff --git a/app/boards/qmk/proton_c/proton_c.zmk.yml b/app/boards/qmk/proton_c/proton_c.zmk.yml index 682783ce6..e89acf243 100644 --- a/app/boards/qmk/proton_c/proton_c.zmk.yml +++ b/app/boards/qmk/proton_c/proton_c.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: proton_c +id: proton_c//zmk name: QMK Proton-C type: board arch: arm diff --git a/app/boards/qmk/proton_c/proton_c_stm32f303xc_zmk.dts b/app/boards/qmk/proton_c/proton_c_stm32f303xc_zmk.dts new file mode 100644 index 000000000..dfee886e4 --- /dev/null +++ b/app/boards/qmk/proton_c/proton_c_stm32f303xc_zmk.dts @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +/dts-v1/; +#include <../boards/qmk/proton_c/proton_c.dts> + diff --git a/app/boards/qmk/proton_c/proton_c_defconfig b/app/boards/qmk/proton_c/proton_c_stm32f303xc_zmk_defconfig similarity index 100% rename from app/boards/qmk/proton_c/proton_c_defconfig rename to app/boards/qmk/proton_c/proton_c_stm32f303xc_zmk_defconfig diff --git a/app/boards/raspberrypi/rpi_pico/board.yml b/app/boards/raspberrypi/rpi_pico/board.yml new file mode 100644 index 000000000..de179f805 --- /dev/null +++ b/app/boards/raspberrypi/rpi_pico/board.yml @@ -0,0 +1,5 @@ +board: + extend: rpi_pico + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/raspberrypi/rpi_pico/rpi_pico.zmk.yml b/app/boards/raspberrypi/rpi_pico/rpi_pico.zmk.yml new file mode 100644 index 000000000..7142cb56a --- /dev/null +++ b/app/boards/raspberrypi/rpi_pico/rpi_pico.zmk.yml @@ -0,0 +1,8 @@ +file_format: "1" +id: rpi_pico//zmk +name: Raspberry Pi Pico +type: board +arch: arm +outputs: + - usb +url: https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-family diff --git a/app/boards/extensions/rpi_pico/rpi_pico.overlay b/app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk.dts similarity index 70% rename from app/boards/extensions/rpi_pico/rpi_pico.overlay rename to app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk.dts index b0aed7610..3acf57ff9 100644 --- a/app/boards/extensions/rpi_pico/rpi_pico.overlay +++ b/app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk.dts @@ -1,3 +1,10 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/raspberrypi/rpi_pico/rpi_pico.dts> #include &uart0 { status = "disabled"; }; diff --git a/app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk_defconfig b/app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk_defconfig new file mode 100644 index 000000000..5ff98221d --- /dev/null +++ b/app/boards/raspberrypi/rpi_pico/rpi_pico_rp2040_zmk_defconfig @@ -0,0 +1,27 @@ +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +# Core deps +CONFIG_RESET=y +CONFIG_CLOCK_CONTROL=y +CONFIG_GPIO=y + +# Build Output +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_BUILD_OUTPUT_HEX=y + +# USB HID +CONFIG_ZMK_USB=y + +# Settings Support +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/seeed/seeeduino_xiao/board.yml b/app/boards/seeed/seeeduino_xiao/board.yml new file mode 100644 index 000000000..c5d20792c --- /dev/null +++ b/app/boards/seeed/seeeduino_xiao/board.yml @@ -0,0 +1,5 @@ +board: + extend: seeeduino_xiao + variants: + - name: zmk + qualifier: samd21g18a diff --git a/app/boards/seeed/seeeduino_xiao/seeeduino_xiao.zmk.yml b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao.zmk.yml index 51093b046..da65bb69b 100644 --- a/app/boards/seeed/seeeduino_xiao/seeeduino_xiao.zmk.yml +++ b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: seeeduino_xiao +id: seeeduino_xiao//zmk name: Seeed Studio XIAO SAMD21 type: board arch: arm diff --git a/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk.dts b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk.dts new file mode 100644 index 000000000..66a500dd2 --- /dev/null +++ b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk.dts @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/seeed/seeeduino_xiao/seeeduino_xiao.dts> + diff --git a/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk_defconfig b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk_defconfig new file mode 100644 index 000000000..04da60c96 --- /dev/null +++ b/app/boards/seeed/seeeduino_xiao/seeeduino_xiao_zmk_defconfig @@ -0,0 +1,11 @@ +# XTAL setup +CONFIG_SOC_ATMEL_SAMD_XOSC32K=y +CONFIG_SOC_ATMEL_SAMD_XOSC32K_AS_MAIN=y + +# Bootloader Setup +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_BOOTLOADER_BOSSA=y +CONFIG_BOOTLOADER_BOSSA_ADAFRUIT_UF2=y + +# ZMK USB Transport +CONFIG_ZMK_USB=y diff --git a/app/boards/seeed/xiao_ble/board.yml b/app/boards/seeed/xiao_ble/board.yml new file mode 100644 index 000000000..5643184c3 --- /dev/null +++ b/app/boards/seeed/xiao_ble/board.yml @@ -0,0 +1,5 @@ +board: + extend: xiao_ble + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/seeed/xiao_ble/xiao_ble.zmk.yml b/app/boards/seeed/xiao_ble/xiao_ble.zmk.yml index 270d80906..d4159e36c 100644 --- a/app/boards/seeed/xiao_ble/xiao_ble.zmk.yml +++ b/app/boards/seeed/xiao_ble/xiao_ble.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: xiao_ble +id: xiao_ble//zmk name: Seeed Studio XIAO nRF52840 type: board arch: arm diff --git a/app/boards/extensions/xiao_ble/xiao_ble.overlay b/app/boards/seeed/xiao_ble/xiao_ble_zmk.dts similarity index 96% rename from app/boards/extensions/xiao_ble/xiao_ble.overlay rename to app/boards/seeed/xiao_ble/xiao_ble_zmk.dts index 331b8fb74..b01c544e4 100644 --- a/app/boards/extensions/xiao_ble/xiao_ble.overlay +++ b/app/boards/seeed/xiao_ble/xiao_ble_zmk.dts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: MIT */ +#include <../boards/seeed/xiao_ble/xiao_ble.dts> #include /* Add an sd_partition label for compatibility with the nosd snippet */ diff --git a/app/boards/extensions/xiao_ble/xiao_ble.conf b/app/boards/seeed/xiao_ble/xiao_ble_zmk_defconfig similarity index 50% rename from app/boards/extensions/xiao_ble/xiao_ble.conf rename to app/boards/seeed/xiao_ble/xiao_ble_zmk_defconfig index 49eaacf65..fd85e275d 100644 --- a/app/boards/extensions/xiao_ble/xiao_ble.conf +++ b/app/boards/seeed/xiao_ble/xiao_ble_zmk_defconfig @@ -1,12 +1,21 @@ -CONFIG_CONSOLE=n -CONFIG_SERIAL=n -CONFIG_UART_CONSOLE=n -CONFIG_UART_INTERRUPT_DRIVEN=n +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable GPIO +CONFIG_GPIO=y + CONFIG_ZMK_USB=y CONFIG_ZMK_BLE=y +# Build UF2 by default, supported by the Adafruit nRF52 Bootloader +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_USE_DT_CODE_PARTITION=y +# Settings Support CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_NVS=y CONFIG_SETTINGS_NVS=y @@ -14,6 +23,7 @@ CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y +# Bootloader Support CONFIG_RETAINED_MEM=y CONFIG_RETENTION=y CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/seeed/xiao_rp2040/board.yml b/app/boards/seeed/xiao_rp2040/board.yml new file mode 100644 index 000000000..813e33463 --- /dev/null +++ b/app/boards/seeed/xiao_rp2040/board.yml @@ -0,0 +1,5 @@ +board: + extend: xiao_rp2040 + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/seeed/xiao_rp2040/xiao_rp2040.zmk.yml b/app/boards/seeed/xiao_rp2040/xiao_rp2040.zmk.yml index ea6f04f30..ab30d3f79 100644 --- a/app/boards/seeed/xiao_rp2040/xiao_rp2040.zmk.yml +++ b/app/boards/seeed/xiao_rp2040/xiao_rp2040.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: xiao_rp2040 +id: xiao_rp2040//zmk name: Seeed Studio XIAO RP2040 type: board arch: arm diff --git a/app/boards/extensions/xiao_rp2040/xiao_rp2040.overlay b/app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk.dts similarity index 89% rename from app/boards/extensions/xiao_rp2040/xiao_rp2040.overlay rename to app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk.dts index 8f2e87143..b55ddc63a 100644 --- a/app/boards/extensions/xiao_rp2040/xiao_rp2040.overlay +++ b/app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk.dts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: MIT */ +#include <../boards/seeed/xiao_rp2040/xiao_rp2040.dts> #include &xiao_serial { status = "disabled"; }; diff --git a/app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk_defconfig b/app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk_defconfig new file mode 100644 index 000000000..d4a902e06 --- /dev/null +++ b/app/boards/seeed/xiao_rp2040/xiao_rp2040_zmk_defconfig @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: MIT + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 +CONFIG_RESET=y + +# Enable clock control by default +CONFIG_CLOCK_CONTROL=y + +# Code partition needed to target the correct flash range +CONFIG_USE_DT_CODE_PARTITION=y + +# Output UF2 by default, native bootloader supports it. +CONFIG_BUILD_OUTPUT_UF2=y + +# Enable USB HID transport by default +CONFIG_ZMK_USB=y + +# Settings Enablement +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y + + +# Bootloader support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/shields/chalice/boards/nice_nano.overlay b/app/boards/shields/chalice/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/chalice/boards/nice_nano.overlay rename to app/boards/shields/chalice/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/corne/boards/nice_nano.overlay b/app/boards/shields/corne/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/corne/boards/nice_nano.overlay rename to app/boards/shields/corne/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/elephant42/boards/nice_nano.overlay b/app/boards/shields/elephant42/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/elephant42/boards/nice_nano.overlay rename to app/boards/shields/elephant42/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/eternal_keypad/boards/nice_nano.overlay b/app/boards/shields/eternal_keypad/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/eternal_keypad/boards/nice_nano.overlay rename to app/boards/shields/eternal_keypad/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/helix/boards/nice_nano.overlay b/app/boards/shields/helix/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/helix/boards/nice_nano.overlay rename to app/boards/shields/helix/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/jorne/boards/nice_nano.overlay b/app/boards/shields/jorne/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/jorne/boards/nice_nano.overlay rename to app/boards/shields/jorne/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/kyria/boards/nice_nano.overlay b/app/boards/shields/kyria/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/kyria/boards/nice_nano.overlay rename to app/boards/shields/kyria/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/kyria/boards/nrfmicro_11.overlay b/app/boards/shields/kyria/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/kyria/boards/nrfmicro_11.overlay rename to app/boards/shields/kyria/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay diff --git a/app/boards/shields/kyria/boards/nrfmicro_11_flipped.overlay b/app/boards/shields/kyria/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/kyria/boards/nrfmicro_11_flipped.overlay rename to app/boards/shields/kyria/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay diff --git a/app/boards/shields/kyria/boards/nrfmicro_13.overlay b/app/boards/shields/kyria/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay similarity index 100% rename from app/boards/shields/kyria/boards/nrfmicro_13.overlay rename to app/boards/shields/kyria/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay diff --git a/app/boards/shields/lily58/boards/nice_nano.overlay b/app/boards/shields/lily58/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/lily58/boards/nice_nano.overlay rename to app/boards/shields/lily58/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/microdox/boards/nice_nano.overlay b/app/boards/shields/microdox/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/microdox/boards/nice_nano.overlay rename to app/boards/shields/microdox/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/murphpad/boards/nice_nano.overlay b/app/boards/shields/murphpad/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/murphpad/boards/nice_nano.overlay rename to app/boards/shields/murphpad/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/nibble/boards/nice_nano.overlay b/app/boards/shields/nibble/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/nibble/boards/nice_nano.overlay rename to app/boards/shields/nibble/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/bluemicro840_v1.overlay b/app/boards/shields/nice_view_adapter/boards/bluemicro840_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/bluemicro840_v1.overlay rename to app/boards/shields/nice_view_adapter/boards/bluemicro840_nrf52840_zmk.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/mikoto.overlay b/app/boards/shields/nice_view_adapter/boards/mikoto_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/mikoto.overlay rename to app/boards/shields/nice_view_adapter/boards/mikoto_nrf52840_zmk.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/nice_nano.overlay b/app/boards/shields/nice_view_adapter/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/nice_nano.overlay rename to app/boards/shields/nice_view_adapter/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/nrfmicro_11_flipped.overlay b/app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/nrfmicro_11_flipped.overlay rename to app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/nrfmicro_11.overlay b/app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/nrfmicro_11.overlay rename to app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay diff --git a/app/boards/shields/nice_view_adapter/boards/nrfmicro_13.overlay b/app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/nrfmicro_13.overlay rename to app/boards/shields/nice_view_adapter/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay 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/shields/redox/boards/nice_nano.overlay b/app/boards/shields/redox/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/redox/boards/nice_nano.overlay rename to app/boards/shields/redox/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/reviung41/boards/nice_nano.overlay b/app/boards/shields/reviung41/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/reviung41/boards/nice_nano.overlay rename to app/boards/shields/reviung41/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/reviung53/boards/nice_nano.overlay b/app/boards/shields/reviung53/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/reviung53/boards/nice_nano.overlay rename to app/boards/shields/reviung53/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/romac_plus/boards/nice_nano.overlay b/app/boards/shields/romac_plus/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/romac_plus/boards/nice_nano.overlay rename to app/boards/shields/romac_plus/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/snap/boards/nice_nano.overlay b/app/boards/shields/snap/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/snap/boards/nice_nano.overlay rename to app/boards/shields/snap/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/sofle/boards/nice_nano.overlay b/app/boards/shields/sofle/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/sofle/boards/nice_nano.overlay rename to app/boards/shields/sofle/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/sofle/boards/nrfmicro_11.overlay b/app/boards/shields/sofle/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/sofle/boards/nrfmicro_11.overlay rename to app/boards/shields/sofle/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay diff --git a/app/boards/shields/sofle/boards/nrfmicro_13.overlay b/app/boards/shields/sofle/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay similarity index 100% rename from app/boards/shields/sofle/boards/nrfmicro_13.overlay rename to app/boards/shields/sofle/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay diff --git a/app/boards/shields/splitkb_aurora_corne/boards/nice_nano.overlay b/app/boards/shields/splitkb_aurora_corne/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/splitkb_aurora_corne/boards/nice_nano.overlay rename to app/boards/shields/splitkb_aurora_corne/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/splitkb_aurora_helix/boards/nice_nano.overlay b/app/boards/shields/splitkb_aurora_helix/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/splitkb_aurora_helix/boards/nice_nano.overlay rename to app/boards/shields/splitkb_aurora_helix/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/splitkb_aurora_lily58/boards/nice_nano.overlay b/app/boards/shields/splitkb_aurora_lily58/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/splitkb_aurora_lily58/boards/nice_nano.overlay rename to app/boards/shields/splitkb_aurora_lily58/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay b/app/boards/shields/splitkb_aurora_sofle/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay rename to app/boards/shields/splitkb_aurora_sofle/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/splitkb_aurora_sweep/boards/nice_nano.overlay b/app/boards/shields/splitkb_aurora_sweep/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/splitkb_aurora_sweep/boards/nice_nano.overlay rename to app/boards/shields/splitkb_aurora_sweep/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/tg4x/boards/nice_nano.overlay b/app/boards/shields/tg4x/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/tg4x/boards/nice_nano.overlay rename to app/boards/shields/tg4x/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/tidbit/boards/nice_nano.overlay b/app/boards/shields/tidbit/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/tidbit/boards/nice_nano.overlay rename to app/boards/shields/tidbit/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/two_percent_milk/boards/nice_nano.overlay b/app/boards/shields/two_percent_milk/boards/nice_nano_nrf52840_zmk.overlay similarity index 100% rename from app/boards/shields/two_percent_milk/boards/nice_nano.overlay rename to app/boards/shields/two_percent_milk/boards/nice_nano_nrf52840_zmk.overlay diff --git a/app/boards/shields/two_percent_milk/boards/nrfmicro_11_flipped.overlay b/app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/two_percent_milk/boards/nrfmicro_11_flipped.overlay rename to app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_flipped_zmk_1_1_0.overlay diff --git a/app/boards/shields/two_percent_milk/boards/nrfmicro_11.overlay b/app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay similarity index 100% rename from app/boards/shields/two_percent_milk/boards/nrfmicro_11.overlay rename to app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_zmk_1_1_0.overlay diff --git a/app/boards/shields/two_percent_milk/boards/nrfmicro_13.overlay b/app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay similarity index 100% rename from app/boards/shields/two_percent_milk/boards/nrfmicro_13.overlay rename to app/boards/shields/two_percent_milk/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay diff --git a/app/boards/sparkfun/pro_micro_rp2040/board.yml b/app/boards/sparkfun/pro_micro_rp2040/board.yml new file mode 100644 index 000000000..4f3dd49ab --- /dev/null +++ b/app/boards/sparkfun/pro_micro_rp2040/board.yml @@ -0,0 +1,5 @@ +board: + extend: sparkfun_pro_micro_rp2040 + variants: + - name: zmk + qualifier: rp2040 diff --git a/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml index 26a2ca640..d9243be02 100644 --- a/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml +++ b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: sparkfun_pro_micro_rp2040 +id: sparkfun_pro_micro_rp2040//zmk name: SparkFun Pro Micro RP2040 type: board arch: arm diff --git a/app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.overlay b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk.dts similarity index 87% rename from app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.overlay rename to app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk.dts index ac83d9816..733e2d087 100644 --- a/app/boards/extensions/sparkfun_pro_micro_rp2040/sparkfun_pro_micro_rp2040.overlay +++ b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk.dts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: MIT */ +#include <../boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040.dts> #include &pro_micro_serial { status = "disabled"; }; diff --git a/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk_defconfig b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk_defconfig new file mode 100644 index 000000000..0c1a531e8 --- /dev/null +++ b/app/boards/sparkfun/pro_micro_rp2040/sparkfun_pro_micro_rp2040_zmk_defconfig @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: MIT + +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=125000000 + +CONFIG_RESET=y + +# Enable clock control by default +CONFIG_CLOCK_CONTROL=y + +# Code partition needed to target the correct flash range +CONFIG_USE_DT_CODE_PARTITION=y + +# Output UF2 by default, native bootloader supports it. +CONFIG_BUILD_OUTPUT_UF2=y + +# USB HID +CONFIG_ZMK_USB=y + +# Settings Support +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y + +# Bootloader Support +CONFIG_RETAINED_MEM=y +CONFIG_RETENTION=y +CONFIG_RETENTION_BOOT_MODE=y diff --git a/app/boards/weact/blackpill_f401cc/blackpill_f401cc.zmk.yml b/app/boards/weact/blackpill_f401cc/blackpill_f401cc.zmk.yml index 329b7371d..2cf8c2818 100644 --- a/app/boards/weact/blackpill_f401cc/blackpill_f401cc.zmk.yml +++ b/app/boards/weact/blackpill_f401cc/blackpill_f401cc.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: blackpill_f401cc +id: blackpill_f401cc//zmk name: BlackPill F401CC type: board arch: arm diff --git a/app/boards/extensions/blackpill_f401ce/blackpill_f401ce.overlay b/app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk.dts similarity index 94% rename from app/boards/extensions/blackpill_f401ce/blackpill_f401ce.overlay rename to app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk.dts index 54e360a39..4704552dd 100644 --- a/app/boards/extensions/blackpill_f401ce/blackpill_f401ce.overlay +++ b/app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk.dts @@ -1,9 +1,10 @@ /* - * Copyright (c) 2022 The ZMK Contributors + * Copyright (c) 2026 The ZMK Contributors * * SPDX-License-Identifier: MIT */ +#include <../boards/weact/blackpill_f401cc/blackpill_f401cc.dts> / { blackpill: connector { diff --git a/app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk_defconfig b/app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk_defconfig new file mode 100644 index 000000000..c0efb874d --- /dev/null +++ b/app/boards/weact/blackpill_f401cc/blackpill_f401cc_zmk_defconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y + + +# Enable GPIO +CONFIG_GPIO=y + +# USB HID +CONFIG_ZMK_USB=y + +# Defaults for matrix scanning to avoid interrupt issues +CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/weact/blackpill_f401cc/board.yml b/app/boards/weact/blackpill_f401cc/board.yml new file mode 100644 index 000000000..7aa1253d9 --- /dev/null +++ b/app/boards/weact/blackpill_f401cc/board.yml @@ -0,0 +1,5 @@ +board: + extend: blackpill_f401cc + variants: + - name: zmk + qualifier: stm32f401xc diff --git a/app/boards/weact/blackpill_f401ce/blackpill_f401ce.zmk.yml b/app/boards/weact/blackpill_f401ce/blackpill_f401ce.zmk.yml index 251d2c272..261156804 100644 --- a/app/boards/weact/blackpill_f401ce/blackpill_f401ce.zmk.yml +++ b/app/boards/weact/blackpill_f401ce/blackpill_f401ce.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: blackpill_f401ce +id: blackpill_f401ce//zmk name: BlackPill F401CE type: board arch: arm diff --git a/app/boards/extensions/blackpill_f411ce/blackpill_f411ce.overlay b/app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk.dts similarity index 94% rename from app/boards/extensions/blackpill_f411ce/blackpill_f411ce.overlay rename to app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk.dts index 54e360a39..ea7f06346 100644 --- a/app/boards/extensions/blackpill_f411ce/blackpill_f411ce.overlay +++ b/app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk.dts @@ -1,9 +1,10 @@ /* - * Copyright (c) 2022 The ZMK Contributors + * Copyright (c) 2026 The ZMK Contributors * * SPDX-License-Identifier: MIT */ +#include <../boards/weact/blackpill_f401ce/blackpill_f401ce.dts> / { blackpill: connector { diff --git a/app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk_defconfig b/app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk_defconfig new file mode 100644 index 000000000..c0efb874d --- /dev/null +++ b/app/boards/weact/blackpill_f401ce/blackpill_f401ce_zmk_defconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y + + +# Enable GPIO +CONFIG_GPIO=y + +# USB HID +CONFIG_ZMK_USB=y + +# Defaults for matrix scanning to avoid interrupt issues +CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/weact/blackpill_f401ce/board.yml b/app/boards/weact/blackpill_f401ce/board.yml new file mode 100644 index 000000000..85d23de12 --- /dev/null +++ b/app/boards/weact/blackpill_f401ce/board.yml @@ -0,0 +1,5 @@ +board: + extend: blackpill_f401ce + variants: + - name: zmk + qualifier: stm32f401xe diff --git a/app/boards/weact/blackpill_f411ce/blackpill_f411ce.zmk.yml b/app/boards/weact/blackpill_f411ce/blackpill_f411ce.zmk.yml index eaa714d69..2684da2d7 100644 --- a/app/boards/weact/blackpill_f411ce/blackpill_f411ce.zmk.yml +++ b/app/boards/weact/blackpill_f411ce/blackpill_f411ce.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: blackpill_f411ce +id: blackpill_f411ce//zmk name: BlackPill F411CE type: board arch: arm diff --git a/app/boards/extensions/blackpill_f401cc/blackpill_f401cc.overlay b/app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk.dts similarity index 94% rename from app/boards/extensions/blackpill_f401cc/blackpill_f401cc.overlay rename to app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk.dts index 6ed4c3cf8..f9be15c13 100644 --- a/app/boards/extensions/blackpill_f401cc/blackpill_f401cc.overlay +++ b/app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk.dts @@ -1,9 +1,11 @@ /* - * Copyright (c) 2024 The ZMK Contributors + * Copyright (c) 2026 The ZMK Contributors * * SPDX-License-Identifier: MIT */ +#include <../boards/weact/blackpill_f411ce/blackpill_f411ce.dts> + / { blackpill: connector { compatible = "blackpill"; diff --git a/app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk_defconfig b/app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk_defconfig new file mode 100644 index 000000000..c0efb874d --- /dev/null +++ b/app/boards/weact/blackpill_f411ce/blackpill_f411ce_zmk_defconfig @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y + + +# Enable GPIO +CONFIG_GPIO=y + +# USB HID +CONFIG_ZMK_USB=y + +# Defaults for matrix scanning to avoid interrupt issues +CONFIG_ZMK_KSCAN_MATRIX_POLLING=y diff --git a/app/boards/weact/blackpill_f411ce/board.yml b/app/boards/weact/blackpill_f411ce/board.yml new file mode 100644 index 000000000..d0bb76916 --- /dev/null +++ b/app/boards/weact/blackpill_f411ce/board.yml @@ -0,0 +1,5 @@ +board: + extend: blackpill_f411ce + variants: + - name: zmk + qualifier: stm32f411xe diff --git a/app/boards/zhiayang/mikoto/Kconfig.mikoto b/app/boards/zhiayang/mikoto/Kconfig.mikoto index 69ca49c0e..171227bd2 100644 --- a/app/boards/zhiayang/mikoto/Kconfig.mikoto +++ b/app/boards/zhiayang/mikoto/Kconfig.mikoto @@ -3,7 +3,7 @@ config BOARD_MIKOTO select SOC_NRF52840_QIAA - imply RETAINED_MEM - imply RETENTION - imply RETENTION_BOOT_MODE + imply RETAINED_MEM if BOARD_MIKOTO_NRF52840_ZMK + imply RETENTION if BOARD_MIKOTO_NRF52840_ZMK + imply RETENTION_BOOT_MODE if BOARD_MIKOTO_NRF52840_ZMK imply I2C if BOARD_REVISION="7.2.0" diff --git a/app/boards/zhiayang/mikoto/board.yml b/app/boards/zhiayang/mikoto/board.yml index d1f715576..745ed1c33 100644 --- a/app/boards/zhiayang/mikoto/board.yml +++ b/app/boards/zhiayang/mikoto/board.yml @@ -1,14 +1,5 @@ board: - name: mikoto - vendor: zhiayang - revision: - format: major.minor.patch - default: 5.20.0 - exact: false - revisions: - - name: 5.20.0 - - name: 6.1.0 - - name: 6.3.0 - - name: 7.2.0 - socs: - - name: nrf52840 + extend: mikoto + variants: + - name: zmk + qualifier: nrf52840 diff --git a/app/boards/zhiayang/mikoto/mikoto.zmk.yml b/app/boards/zhiayang/mikoto/mikoto.zmk.yml index 6e073410f..7726e82bd 100644 --- a/app/boards/zhiayang/mikoto/mikoto.zmk.yml +++ b/app/boards/zhiayang/mikoto/mikoto.zmk.yml @@ -1,5 +1,5 @@ file_format: "1" -id: mikoto +id: mikoto//zmk name: Mikoto type: board arch: arm diff --git a/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk.dts b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk.dts new file mode 100644 index 000000000..7363967a4 --- /dev/null +++ b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/zhiayang/mikoto/mikoto.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 = <&gpio0 13 GPIO_ACTIVE_HIGH>; + init-delay-ms = <50>; + }; + + vbatt: vbatt { + compatible = "zmk,battery-voltage-divider"; + io-channels = <&adc 1>; + output-ohms = <10000000>; + full-ohms = <(10000000 + 4000000)>; + }; +}; diff --git a/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_5_20_0.overlay b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_5_20_0.overlay new file mode 100644 index 000000000..e5ea48646 --- /dev/null +++ b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_5_20_0.overlay @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/zhiayang/mikoto/mikoto-pinctrl.dtsi> +#include <../boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi> diff --git a/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_6_1_0.overlay b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_6_1_0.overlay new file mode 100644 index 000000000..e5ea48646 --- /dev/null +++ b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_6_1_0.overlay @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/zhiayang/mikoto/mikoto-pinctrl.dtsi> +#include <../boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi> diff --git a/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_7_2_0.overlay b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_7_2_0.overlay new file mode 100644 index 000000000..06db3f9ca --- /dev/null +++ b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_7_2_0.overlay @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <../boards/zhiayang/mikoto/mikoto-pinctrl.dtsi> +#include <../boards/zhiayang/mikoto/arduino_pro_micro_pins_v6.dtsi> + +&pinctrl { + i2c1_default: i2c1_default { + group1 { + psels = , + ; + bias-pull-up; + }; + }; + + i2c1_sleep: i2c1_sleep { + group1 { + psels = , + ; + low-power-enable; + bias-pull-up; + }; + }; +}; + +&i2c1 { + status = "okay"; + compatible = "nordic,nrf-twi"; + pinctrl-0 = <&i2c1_default>; + pinctrl-1 = <&i2c1_sleep>; + pinctrl-names = "default", "sleep"; + + builtin_fuel_gauge: max17048@36 { + compatible = "zmk,maxim-max17048"; + status = "okay"; + reg = <0x36>; + }; +}; + +/ { + chosen { + zmk,battery = &builtin_fuel_gauge; + }; +}; diff --git a/app/boards/zhiayang/mikoto/mikoto_7_2_0.conf b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_7_2_0_defconfig similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto_7_2_0.conf rename to app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_7_2_0_defconfig diff --git a/app/boards/zhiayang/mikoto/mikoto_defconfig b/app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_defconfig similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto_defconfig rename to app/boards/zhiayang/mikoto/mikoto_nrf52840_zmk_defconfig diff --git a/app/core-coverage.yml b/app/core-coverage.yml index 6dc6a0519..beefb2eb6 100644 --- a/app/core-coverage.yml +++ b/app/core-coverage.yml @@ -1,7 +1,7 @@ board: - - nice_nano - - nrfmicro/nrf52840 - - proton_c + - nice_nano//zmk + - nrfmicro/nrf52840/zmk + - proton_c//zmk shield: - corne_left - corne_right @@ -9,62 +9,62 @@ shield: - settings_reset - tidbit include: - - board: bdn9 - - board: nice60 - - board: xiao_ble + - board: bdn9//zmk + - board: nice60//zmk + - board: xiao_ble//zmk shield: hummingbird - - board: nrf52840_m2 + - board: nrf52840_m2//zmk shield: m60 - - board: planck - - board: proton_c + - board: planck//zmk + - board: proton_c//zmk shield: clueboard_california - - board: nice_nano + - board: nice_nano//zmk shield: kyria_left cmake-args: "-DCONFIG_ZMK_DISPLAY=y" nickname: "display" - - board: nice_nano + - board: nice_nano//zmk shield: kyria_left cmake-args: "-DCONFIG_ZMK_POINTING=y" nickname: "mouse" - - board: sparkfun_pro_micro_rp2040 + - board: sparkfun_pro_micro_rp2040//zmk shield: reviung41 cmake-args: "-DSNIPPET='zmk-usb-logging'" - - board: nice_nano + - board: nice_nano//zmk shield: kyria_right cmake-args: "-DCONFIG_ZMK_DISPLAY=y" nickname: "display" - - board: nice_nano + - board: nice_nano//zmk shield: romac_plus cmake-args: "-DCONFIG_ZMK_RGB_UNDERGLOW=y" nickname: "underglow" - - board: nice_nano + - board: nice_nano//zmk shield: lily58_left nice_view_adapter nice_view nickname: "niceview" - - board: bdn9 + - board: bdn9//zmk snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" nickname: "stm32-studio" - - board: nice_nano + - board: nice_nano//zmk shield: reviung41 snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" nickname: "nrf52-studio" - - board: nice_nano + - board: nice_nano//zmk shield: corne_left snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" nickname: "split-left-studio" - - board: nice_nano + - board: nice_nano//zmk shield: corne_right snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" nickname: "split-right-studio" - - board: sparkfun_pro_micro_rp2040 + - board: sparkfun_pro_micro_rp2040//zmk shield: reviung41 snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" nickname: "rp2040-studio" - - board: seeeduino_xiao + - board: seeeduino_xiao//zmk shield: hummingbird snippet: studio-rpc-usb-uart cmake-args: "-DCONFIG_ZMK_STUDIO=y" diff --git a/app/boards/joric/nrfmicro/CMakeLists.txt b/app/module/boards/joric/nrfmicro/CMakeLists.txt similarity index 100% rename from app/boards/joric/nrfmicro/CMakeLists.txt rename to app/module/boards/joric/nrfmicro/CMakeLists.txt diff --git a/app/boards/joric/nrfmicro/Kconfig b/app/module/boards/joric/nrfmicro/Kconfig similarity index 100% rename from app/boards/joric/nrfmicro/Kconfig rename to app/module/boards/joric/nrfmicro/Kconfig diff --git a/app/boards/joric/nrfmicro/Kconfig.defconfig b/app/module/boards/joric/nrfmicro/Kconfig.defconfig similarity index 100% rename from app/boards/joric/nrfmicro/Kconfig.defconfig rename to app/module/boards/joric/nrfmicro/Kconfig.defconfig diff --git a/app/module/boards/joric/nrfmicro/Kconfig.nrfmicro b/app/module/boards/joric/nrfmicro/Kconfig.nrfmicro new file mode 100644 index 000000000..27eb747b1 --- /dev/null +++ b/app/module/boards/joric/nrfmicro/Kconfig.nrfmicro @@ -0,0 +1,9 @@ +# nrfmicro board configuration + +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config BOARD_NRFMICRO + select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840 + select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_FLIPPED + select SOC_NRF52833_QIAA if BOARD_NRFMICRO_NRF52833 diff --git a/app/boards/joric/nrfmicro/arduino_pro_micro_pins.dtsi b/app/module/boards/joric/nrfmicro/arduino_pro_micro_pins.dtsi similarity index 100% rename from app/boards/joric/nrfmicro/arduino_pro_micro_pins.dtsi rename to app/module/boards/joric/nrfmicro/arduino_pro_micro_pins.dtsi diff --git a/app/boards/joric/nrfmicro/arduino_pro_micro_pins_52833.dtsi b/app/module/boards/joric/nrfmicro/arduino_pro_micro_pins_52833.dtsi similarity index 100% rename from app/boards/joric/nrfmicro/arduino_pro_micro_pins_52833.dtsi rename to app/module/boards/joric/nrfmicro/arduino_pro_micro_pins_52833.dtsi diff --git a/app/boards/joric/nrfmicro/arduino_pro_micro_pins_flipped.dtsi b/app/module/boards/joric/nrfmicro/arduino_pro_micro_pins_flipped.dtsi similarity index 100% rename from app/boards/joric/nrfmicro/arduino_pro_micro_pins_flipped.dtsi rename to app/module/boards/joric/nrfmicro/arduino_pro_micro_pins_flipped.dtsi diff --git a/app/boards/joric/nrfmicro/board.cmake b/app/module/boards/joric/nrfmicro/board.cmake similarity index 100% rename from app/boards/joric/nrfmicro/board.cmake rename to app/module/boards/joric/nrfmicro/board.cmake diff --git a/app/module/boards/joric/nrfmicro/board.yml b/app/module/boards/joric/nrfmicro/board.yml new file mode 100644 index 000000000..1cfcc492f --- /dev/null +++ b/app/module/boards/joric/nrfmicro/board.yml @@ -0,0 +1,14 @@ +board: + name: nrfmicro + vendor: joric + socs: + - name: nrf52840 + variants: + - name: flipped + - name: nrf52833 + revision: + format: major.minor.patch + default: 1.3.0 + revisions: + - name: 1.3.0 + - name: 1.1.0 diff --git a/app/boards/joric/nrfmicro/nrfmicro-flipped-pinctrl.dtsi b/app/module/boards/joric/nrfmicro/nrfmicro-flipped-pinctrl.dtsi similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro-flipped-pinctrl.dtsi rename to app/module/boards/joric/nrfmicro/nrfmicro-flipped-pinctrl.dtsi diff --git a/app/boards/joric/nrfmicro/nrfmicro-pinctrl.dtsi b/app/module/boards/joric/nrfmicro/nrfmicro-pinctrl.dtsi similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro-pinctrl.dtsi rename to app/module/boards/joric/nrfmicro/nrfmicro-pinctrl.dtsi diff --git a/app/boards/joric/nrfmicro/nrfmicro_11.yaml b/app/module/boards/joric/nrfmicro/nrfmicro_11.yaml similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_11.yaml rename to app/module/boards/joric/nrfmicro/nrfmicro_11.yaml diff --git a/app/boards/joric/nrfmicro/nrfmicro_11_flipped.yaml b/app/module/boards/joric/nrfmicro/nrfmicro_11_flipped.yaml similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_11_flipped.yaml rename to app/module/boards/joric/nrfmicro/nrfmicro_11_flipped.yaml diff --git a/app/boards/joric/nrfmicro/nrfmicro_13.yaml b/app/module/boards/joric/nrfmicro/nrfmicro_13.yaml similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_13.yaml rename to app/module/boards/joric/nrfmicro/nrfmicro_13.yaml diff --git a/app/boards/joric/nrfmicro/nrfmicro_13_52833.yaml b/app/module/boards/joric/nrfmicro/nrfmicro_13_52833.yaml similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_13_52833.yaml rename to app/module/boards/joric/nrfmicro/nrfmicro_13_52833.yaml diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52833.dts b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833.dts similarity index 83% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52833.dts rename to app/module/boards/joric/nrfmicro/nrfmicro_nrf52833.dts index a5cca787c..723987168 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52833.dts +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833.dts @@ -19,7 +19,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -28,20 +27,6 @@ gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; }; }; - - // 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>; - init-delay-ms = <50>; - }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 2>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 820000)>; - }; }; ®1 { diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0.overlay b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0.overlay similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0.overlay rename to app/module/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0.overlay diff --git a/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0_defconfig b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0_defconfig new file mode 100644 index 000000000..5b1400889 --- /dev/null +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52833_1_3_0_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y + diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840.dts b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840.dts similarity index 81% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840.dts rename to app/module/boards/joric/nrfmicro/nrfmicro_nrf52840.dts index 149f4be3a..787cfc349 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52840.dts +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840.dts @@ -6,7 +6,6 @@ /dts-v1/; #include -#include #include "arduino_pro_micro_pins.dtsi" #include "nrfmicro-pinctrl.dtsi" @@ -19,7 +18,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -28,20 +26,6 @@ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; }; }; - - // 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>; - init-delay-ms = <50>; - }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 2>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 820000)>; - }; }; ®1 { @@ -90,7 +74,6 @@ zephyr_udc0: &usbd { status = "okay"; }; - &flash0 { /* * For more information, see: diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0.overlay b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0.overlay similarity index 100% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0.overlay rename to app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0.overlay diff --git a/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0_defconfig b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0_defconfig new file mode 100644 index 000000000..5b1400889 --- /dev/null +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_1_0_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y + diff --git a/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0_defconfig b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0_defconfig new file mode 100644 index 000000000..5e669b34f --- /dev/null +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_1_3_0_defconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y diff --git a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts similarity index 88% rename from app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts rename to app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts index 8f1d30312..1e3288165 100644 --- a/app/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts @@ -6,7 +6,6 @@ /dts-v1/; #include -#include #include "arduino_pro_micro_pins_flipped.dtsi" #include "nrfmicro-flipped-pinctrl.dtsi" @@ -27,13 +26,6 @@ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; }; }; - - // 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_HIGH>; - init-delay-ms = <50>; - }; }; ®1 { diff --git a/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0_defconfig b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0_defconfig new file mode 100644 index 000000000..5e669b34f --- /dev/null +++ b/app/module/boards/joric/nrfmicro/nrfmicro_nrf52840_flipped_1_1_0_defconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y diff --git a/app/boards/joric/nrfmicro/pinmux.c b/app/module/boards/joric/nrfmicro/pinmux.c similarity index 100% rename from app/boards/joric/nrfmicro/pinmux.c rename to app/module/boards/joric/nrfmicro/pinmux.c diff --git a/app/boards/joric/nrfmicro/pre_dt_board.cmake b/app/module/boards/joric/nrfmicro/pre_dt_board.cmake similarity index 100% rename from app/boards/joric/nrfmicro/pre_dt_board.cmake rename to app/module/boards/joric/nrfmicro/pre_dt_board.cmake diff --git a/app/boards/jpconstantineau/bluemicro840/Kconfig b/app/module/boards/jpconstantineau/bluemicro840/Kconfig similarity index 100% rename from app/boards/jpconstantineau/bluemicro840/Kconfig rename to app/module/boards/jpconstantineau/bluemicro840/Kconfig diff --git a/app/module/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 b/app/module/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 new file mode 100644 index 000000000..fd2a9143e --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/Kconfig.bluemicro840 @@ -0,0 +1,5 @@ +# Copyright (c) 2026 Pete Johanson, Derek Schmell +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_BLUEMICRO840 + select SOC_NRF52840_QIAA diff --git a/app/boards/jpconstantineau/bluemicro840/Kconfig.defconfig b/app/module/boards/jpconstantineau/bluemicro840/Kconfig.defconfig similarity index 100% rename from app/boards/jpconstantineau/bluemicro840/Kconfig.defconfig rename to app/module/boards/jpconstantineau/bluemicro840/Kconfig.defconfig diff --git a/app/boards/jpconstantineau/bluemicro840/arduino_pro_micro_pins.dtsi b/app/module/boards/jpconstantineau/bluemicro840/arduino_pro_micro_pins.dtsi similarity index 100% rename from app/boards/jpconstantineau/bluemicro840/arduino_pro_micro_pins.dtsi rename to app/module/boards/jpconstantineau/bluemicro840/arduino_pro_micro_pins.dtsi diff --git a/app/boards/jpconstantineau/bluemicro840/bluemicro840-pinctrl.dtsi b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840-pinctrl.dtsi similarity index 100% rename from app/boards/jpconstantineau/bluemicro840/bluemicro840-pinctrl.dtsi rename to app/module/boards/jpconstantineau/bluemicro840/bluemicro840-pinctrl.dtsi diff --git a/app/boards/jpconstantineau/bluemicro840/bluemicro840.dts b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840.dts similarity index 80% rename from app/boards/jpconstantineau/bluemicro840/bluemicro840.dts rename to app/module/boards/jpconstantineau/bluemicro840/bluemicro840.dts index 6c4e8ced7..fe32d9522 100644 --- a/app/boards/jpconstantineau/bluemicro840/bluemicro840.dts +++ b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840.dts @@ -6,7 +6,6 @@ /dts-v1/; #include -#include #include "arduino_pro_micro_pins.dtsi" #include "bluemicro840-pinctrl.dtsi" @@ -19,7 +18,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -28,21 +26,6 @@ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; }; }; - - // Node name must match original "EXT_POWER" label to preserve user settings. - EXT_POWER { - compatible = "zmk,ext-power-generic"; - init-delay-ms = <20>; - control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; - }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 7>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 806000)>; - }; - }; &adc { diff --git a/app/module/boards/jpconstantineau/bluemicro840/bluemicro840.yaml b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840.yaml new file mode 100644 index 000000000..c36eee0c9 --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840.yaml @@ -0,0 +1,15 @@ +identifier: bluemicro840 +name: BlueMicro840_V1 +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - adc + - usb_device + - ble + - ieee802154 + - pwm + - watchdog diff --git a/app/module/boards/jpconstantineau/bluemicro840/bluemicro840_defconfig b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840_defconfig new file mode 100644 index 000000000..5b1400889 --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/bluemicro840_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y + diff --git a/app/module/boards/jpconstantineau/bluemicro840/board.cmake b/app/module/boards/jpconstantineau/bluemicro840/board.cmake new file mode 100644 index 000000000..73fa64a9a --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/board.cmake @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MIT + +board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") +include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake) +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/app/module/boards/jpconstantineau/bluemicro840/board.yml b/app/module/boards/jpconstantineau/bluemicro840/board.yml new file mode 100644 index 000000000..0a9ebdd5d --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/board.yml @@ -0,0 +1,5 @@ +board: + name: bluemicro840 + vendor: jpconstantineau + socs: + - name: nrf52840 diff --git a/app/module/boards/jpconstantineau/bluemicro840/pre_dt_board.cmake b/app/module/boards/jpconstantineau/bluemicro840/pre_dt_board.cmake new file mode 100644 index 000000000..b0c27aa5d --- /dev/null +++ b/app/module/boards/jpconstantineau/bluemicro840/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/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 + diff --git a/app/boards/makerdiary/nrf52840_m2/Kconfig b/app/module/boards/makerdiary/nrf52840_m2/Kconfig similarity index 100% rename from app/boards/makerdiary/nrf52840_m2/Kconfig rename to app/module/boards/makerdiary/nrf52840_m2/Kconfig diff --git a/app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig b/app/module/boards/makerdiary/nrf52840_m2/Kconfig.defconfig similarity index 100% rename from app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig rename to app/module/boards/makerdiary/nrf52840_m2/Kconfig.defconfig diff --git a/app/module/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 b/app/module/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 new file mode 100644 index 000000000..d4eb4c304 --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/Kconfig.nrf52840_m2 @@ -0,0 +1,5 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NRF52840_M2 + select SOC_NRF52840_QIAA diff --git a/app/module/boards/makerdiary/nrf52840_m2/board.cmake b/app/module/boards/makerdiary/nrf52840_m2/board.cmake new file mode 100644 index 000000000..0acfeb735 --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/board.cmake @@ -0,0 +1,7 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") + +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake) diff --git a/app/module/boards/makerdiary/nrf52840_m2/board.yml b/app/module/boards/makerdiary/nrf52840_m2/board.yml new file mode 100644 index 000000000..a1675e245 --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/board.yml @@ -0,0 +1,5 @@ +board: + name: nrf52840_m2 + vendor: makerdiary + socs: + - name: nrf52840 diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts similarity index 86% rename from app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts rename to app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts index f9ffee623..821fcd2a9 100644 --- a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts +++ b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts @@ -6,7 +6,6 @@ /dts-v1/; #include -#include / { model = "Makerdiary nRF52840 M.2 module"; @@ -16,7 +15,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -31,14 +29,6 @@ gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; }; }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 0>; - output-ohms = <1000000>; - full-ohms = <(1000000 + 1000000)>; - }; - }; &adc { diff --git a/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.yaml b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.yaml new file mode 100644 index 000000000..0a999bbf6 --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2.yaml @@ -0,0 +1,15 @@ +identifier: nrf52840_m2 +name: Makerdiary nRF52840 M.2 module +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - adc + - usb_device + - ble + - ieee802154 + - pwm + - watchdog diff --git a/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig new file mode 100644 index 000000000..c7dc6fcf3 --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig @@ -0,0 +1,12 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y + diff --git a/app/module/boards/makerdiary/nrf52840_m2/pre_dt_board.cmake b/app/module/boards/makerdiary/nrf52840_m2/pre_dt_board.cmake new file mode 100644 index 000000000..b0c27aa5d --- /dev/null +++ b/app/module/boards/makerdiary/nrf52840_m2/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/mechwild/pillbug/Kconfig b/app/module/boards/mechwild/pillbug/Kconfig similarity index 100% rename from app/boards/mechwild/pillbug/Kconfig rename to app/module/boards/mechwild/pillbug/Kconfig diff --git a/app/boards/mechwild/pillbug/Kconfig.defconfig b/app/module/boards/mechwild/pillbug/Kconfig.defconfig similarity index 100% rename from app/boards/mechwild/pillbug/Kconfig.defconfig rename to app/module/boards/mechwild/pillbug/Kconfig.defconfig diff --git a/app/module/boards/mechwild/pillbug/Kconfig.pillbug b/app/module/boards/mechwild/pillbug/Kconfig.pillbug new file mode 100644 index 000000000..d89679445 --- /dev/null +++ b/app/module/boards/mechwild/pillbug/Kconfig.pillbug @@ -0,0 +1,8 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_PILLBUG + select SOC_NRF52840_QIAA + imply RETAINED_MEM + imply RETENTION + imply RETENTION_BOOT_MODE diff --git a/app/boards/mechwild/pillbug/blackpill_pins.dtsi b/app/module/boards/mechwild/pillbug/blackpill_pins.dtsi similarity index 100% rename from app/boards/mechwild/pillbug/blackpill_pins.dtsi rename to app/module/boards/mechwild/pillbug/blackpill_pins.dtsi diff --git a/app/module/boards/mechwild/pillbug/board.cmake b/app/module/boards/mechwild/pillbug/board.cmake new file mode 100644 index 000000000..d9d4ed92e --- /dev/null +++ b/app/module/boards/mechwild/pillbug/board.cmake @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: MIT + +set(OPENOCD_NRF5_SUBFAMILY nrf52) +board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") +include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake) +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake) diff --git a/app/module/boards/mechwild/pillbug/board.yml b/app/module/boards/mechwild/pillbug/board.yml new file mode 100644 index 000000000..abd15044f --- /dev/null +++ b/app/module/boards/mechwild/pillbug/board.yml @@ -0,0 +1,5 @@ +board: + name: pillbug + vendor: mechwild + socs: + - name: nrf52840 diff --git a/app/module/boards/mechwild/pillbug/pillbug-pinctrl.dtsi b/app/module/boards/mechwild/pillbug/pillbug-pinctrl.dtsi new file mode 100644 index 000000000..609c4a725 --- /dev/null +++ b/app/module/boards/mechwild/pillbug/pillbug-pinctrl.dtsi @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2026 The ZMK Contributors + * SPDX-License-Identifier: MIT + */ + +&pinctrl { + uart0_default: uart0_default { + group1 { + psels = ; + bias-pull-up; + }; + group2 { + psels = ; + }; + }; + + uart0_sleep: uart0_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; + + i2c0_default: i2c0_default { + group1 { + psels = , + ; + }; + }; + + i2c0_sleep: i2c0_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; + + spi1_default: spi1_default { + group1 { + psels = , + , + ; + }; + }; + + spi1_sleep: spi1_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; +}; diff --git a/app/boards/mechwild/pillbug/pillbug.dts b/app/module/boards/mechwild/pillbug/pillbug.dts similarity index 80% rename from app/boards/mechwild/pillbug/pillbug.dts rename to app/module/boards/mechwild/pillbug/pillbug.dts index cb2db7c46..b24f05df5 100644 --- a/app/boards/mechwild/pillbug/pillbug.dts +++ b/app/module/boards/mechwild/pillbug/pillbug.dts @@ -7,7 +7,6 @@ /dts-v1/; #include -#include #include "pillbug-pinctrl.dtsi" #include "blackpill_pins.dtsi" @@ -20,7 +19,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -29,20 +27,6 @@ gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; }; }; - - // Node name must match original "EXT_POWER" label to preserve user settings. - EXT_POWER { - compatible = "zmk,ext-power-generic"; - control-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; - init-delay-ms = <50>; - }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 2>; - output-ohms = <2000000>; - full-ohms = <(2000000 + 820000)>; - }; }; &adc { @@ -88,7 +72,6 @@ zephyr_udc0: &usbd { status = "okay"; }; - &flash0 { /* * For more information, see: diff --git a/app/boards/mechwild/pillbug/pillbug.yaml b/app/module/boards/mechwild/pillbug/pillbug.yaml similarity index 100% rename from app/boards/mechwild/pillbug/pillbug.yaml rename to app/module/boards/mechwild/pillbug/pillbug.yaml diff --git a/app/module/boards/mechwild/pillbug/pillbug_defconfig b/app/module/boards/mechwild/pillbug/pillbug_defconfig new file mode 100644 index 000000000..8332d62ba --- /dev/null +++ b/app/module/boards/mechwild/pillbug/pillbug_defconfig @@ -0,0 +1,14 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Use pinctrl +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y diff --git a/app/boards/mechwild/pillbug/pre_dt_board.cmake b/app/module/boards/mechwild/pillbug/pre_dt_board.cmake similarity index 100% rename from app/boards/mechwild/pillbug/pre_dt_board.cmake rename to app/module/boards/mechwild/pillbug/pre_dt_board.cmake diff --git a/app/module/boards/nicekeyboards/nice_nano/Kconfig.nice_nano b/app/module/boards/nicekeyboards/nice_nano/Kconfig.nice_nano new file mode 100644 index 000000000..01a9329c4 --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/Kconfig.nice_nano @@ -0,0 +1,5 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NICE_NANO + select SOC_NRF52840_QIAA diff --git a/app/boards/nicekeyboards/nice_nano/arduino_pro_micro_pins.dtsi b/app/module/boards/nicekeyboards/nice_nano/arduino_pro_micro_pins.dtsi similarity index 100% rename from app/boards/nicekeyboards/nice_nano/arduino_pro_micro_pins.dtsi rename to app/module/boards/nicekeyboards/nice_nano/arduino_pro_micro_pins.dtsi diff --git a/app/module/boards/nicekeyboards/nice_nano/board.cmake b/app/module/boards/nicekeyboards/nice_nano/board.cmake new file mode 100644 index 000000000..73fa64a9a --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/board.cmake @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MIT + +board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") +include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake) +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/app/module/boards/nicekeyboards/nice_nano/board.yml b/app/module/boards/nicekeyboards/nice_nano/board.yml new file mode 100644 index 000000000..89171957c --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/board.yml @@ -0,0 +1,11 @@ +board: + name: nice_nano + vendor: nicekeyboards + socs: + - name: nrf52840 + revision: + format: major.minor.patch + default: 2.0.0 + revisions: + - name: 1.0.0 + - name: 2.0.0 diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano-pinctrl.dtsi b/app/module/boards/nicekeyboards/nice_nano/nice_nano-pinctrl.dtsi similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano-pinctrl.dtsi rename to app/module/boards/nicekeyboards/nice_nano/nice_nano-pinctrl.dtsi diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano.dts b/app/module/boards/nicekeyboards/nice_nano/nice_nano.dts similarity index 97% rename from app/boards/nicekeyboards/nice_nano/nice_nano.dts rename to app/module/boards/nicekeyboards/nice_nano/nice_nano.dts index 0595ce137..2788ceaea 100644 --- a/app/boards/nicekeyboards/nice_nano/nice_nano.dts +++ b/app/module/boards/nicekeyboards/nice_nano/nice_nano.dts @@ -7,7 +7,6 @@ /dts-v1/; #include -#include #include "nice_nano-pinctrl.dtsi" #include "arduino_pro_micro_pins.dtsi" diff --git a/app/boards/nicekeyboards/nice_nano/nice_nano.yaml b/app/module/boards/nicekeyboards/nice_nano/nice_nano.yaml similarity index 100% rename from app/boards/nicekeyboards/nice_nano/nice_nano.yaml rename to app/module/boards/nicekeyboards/nice_nano/nice_nano.yaml diff --git a/app/module/boards/nicekeyboards/nice_nano/nice_nano_1_0_0_defconfig b/app/module/boards/nicekeyboards/nice_nano/nice_nano_1_0_0_defconfig new file mode 100644 index 000000000..0779d3590 --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/nice_nano_1_0_0_defconfig @@ -0,0 +1,13 @@ +# 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 diff --git a/app/module/boards/nicekeyboards/nice_nano/nice_nano_2_0_0_defconfig b/app/module/boards/nicekeyboards/nice_nano/nice_nano_2_0_0_defconfig new file mode 100644 index 000000000..73d6e98a9 --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/nice_nano_2_0_0_defconfig @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y + +# Use pinctrl +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y diff --git a/app/module/boards/nicekeyboards/nice_nano/pre_dt_board.cmake b/app/module/boards/nicekeyboards/nice_nano/pre_dt_board.cmake new file mode 100644 index 000000000..b0c27aa5d --- /dev/null +++ b/app/module/boards/nicekeyboards/nice_nano/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/qmk/proton_c/Kconfig.proton_c b/app/module/boards/qmk/proton_c/Kconfig.proton_c similarity index 100% rename from app/boards/qmk/proton_c/Kconfig.proton_c rename to app/module/boards/qmk/proton_c/Kconfig.proton_c diff --git a/app/boards/qmk/proton_c/arduino_pro_micro_pins.dtsi b/app/module/boards/qmk/proton_c/arduino_pro_micro_pins.dtsi similarity index 100% rename from app/boards/qmk/proton_c/arduino_pro_micro_pins.dtsi rename to app/module/boards/qmk/proton_c/arduino_pro_micro_pins.dtsi diff --git a/app/module/boards/qmk/proton_c/board.cmake b/app/module/boards/qmk/proton_c/board.cmake new file mode 100644 index 000000000..9da8ea911 --- /dev/null +++ b/app/module/boards/qmk/proton_c/board.cmake @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: MIT + +board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") +board_runner_args(jlink "--device=STM32F303CC" "--speed=4000") + +include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/app/module/boards/qmk/proton_c/board.yml b/app/module/boards/qmk/proton_c/board.yml new file mode 100644 index 000000000..54ecb64bb --- /dev/null +++ b/app/module/boards/qmk/proton_c/board.yml @@ -0,0 +1,5 @@ +board: + name: proton_c + vendor: qmk + socs: + - name: stm32f303xc diff --git a/app/boards/qmk/proton_c/proton_c.dts b/app/module/boards/qmk/proton_c/proton_c.dts similarity index 100% rename from app/boards/qmk/proton_c/proton_c.dts rename to app/module/boards/qmk/proton_c/proton_c.dts diff --git a/app/boards/qmk/proton_c/proton_c.yaml b/app/module/boards/qmk/proton_c/proton_c.yaml similarity index 100% rename from app/boards/qmk/proton_c/proton_c.yaml rename to app/module/boards/qmk/proton_c/proton_c.yaml diff --git a/app/module/boards/qmk/proton_c/proton_c.zmk.yml b/app/module/boards/qmk/proton_c/proton_c.zmk.yml new file mode 100644 index 000000000..682783ce6 --- /dev/null +++ b/app/module/boards/qmk/proton_c/proton_c.zmk.yml @@ -0,0 +1,9 @@ +file_format: "1" +id: proton_c +name: QMK Proton-C +type: board +arch: arm +outputs: + - usb +url: https://qmk.fm/proton-c/ +exposes: [pro_micro] diff --git a/app/module/boards/qmk/proton_c/proton_c_defconfig b/app/module/boards/qmk/proton_c/proton_c_defconfig new file mode 100644 index 000000000..83dd1ee9e --- /dev/null +++ b/app/module/boards/qmk/proton_c/proton_c_defconfig @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: MIT + +# 72MHz system clock +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000 + +# Floating Point Options +CONFIG_FPU=y + +# enable pinctrl +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +# clock configuration +CONFIG_CLOCK_CONTROL=y diff --git a/app/boards/zhiayang/mikoto/CMakeLists.txt b/app/module/boards/zhiayang/mikoto/CMakeLists.txt similarity index 100% rename from app/boards/zhiayang/mikoto/CMakeLists.txt rename to app/module/boards/zhiayang/mikoto/CMakeLists.txt diff --git a/app/boards/zhiayang/mikoto/Kconfig b/app/module/boards/zhiayang/mikoto/Kconfig similarity index 100% rename from app/boards/zhiayang/mikoto/Kconfig rename to app/module/boards/zhiayang/mikoto/Kconfig diff --git a/app/boards/zhiayang/mikoto/Kconfig.defconfig b/app/module/boards/zhiayang/mikoto/Kconfig.defconfig similarity index 91% rename from app/boards/zhiayang/mikoto/Kconfig.defconfig rename to app/module/boards/zhiayang/mikoto/Kconfig.defconfig index ec6ee532d..730cc0059 100644 --- a/app/boards/zhiayang/mikoto/Kconfig.defconfig +++ b/app/module/boards/zhiayang/mikoto/Kconfig.defconfig @@ -15,9 +15,6 @@ config USB_DEVICE_STACK endif # USB -config BT_CTLR - default BT - choice BOARD_MIKOTO_CHARGER_CURRENT default BOARD_MIKOTO_CHARGER_CURRENT_100MA endchoice diff --git a/app/module/boards/zhiayang/mikoto/Kconfig.mikoto b/app/module/boards/zhiayang/mikoto/Kconfig.mikoto new file mode 100644 index 000000000..2190c382f --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/Kconfig.mikoto @@ -0,0 +1,5 @@ +# Copyright (c) 2026 The ZMK Contributors +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_MIKOTO + select SOC_NRF52840_QIAA diff --git a/app/boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi b/app/module/boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi similarity index 100% rename from app/boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi rename to app/module/boards/zhiayang/mikoto/arduino_pro_micro_pins_v5.dtsi diff --git a/app/boards/zhiayang/mikoto/arduino_pro_micro_pins_v6.dtsi b/app/module/boards/zhiayang/mikoto/arduino_pro_micro_pins_v6.dtsi similarity index 100% rename from app/boards/zhiayang/mikoto/arduino_pro_micro_pins_v6.dtsi rename to app/module/boards/zhiayang/mikoto/arduino_pro_micro_pins_v6.dtsi diff --git a/app/module/boards/zhiayang/mikoto/board.cmake b/app/module/boards/zhiayang/mikoto/board.cmake new file mode 100644 index 000000000..73fa64a9a --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/board.cmake @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: MIT + +board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset") +include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake) +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) diff --git a/app/module/boards/zhiayang/mikoto/board.yml b/app/module/boards/zhiayang/mikoto/board.yml new file mode 100644 index 000000000..d1f715576 --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/board.yml @@ -0,0 +1,14 @@ +board: + name: mikoto + vendor: zhiayang + revision: + format: major.minor.patch + default: 5.20.0 + exact: false + revisions: + - name: 5.20.0 + - name: 6.1.0 + - name: 6.3.0 + - name: 7.2.0 + socs: + - name: nrf52840 diff --git a/app/boards/zhiayang/mikoto/mikoto-pinctrl.dtsi b/app/module/boards/zhiayang/mikoto/mikoto-pinctrl.dtsi similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto-pinctrl.dtsi rename to app/module/boards/zhiayang/mikoto/mikoto-pinctrl.dtsi diff --git a/app/boards/zhiayang/mikoto/mikoto.dts b/app/module/boards/zhiayang/mikoto/mikoto.dts similarity index 82% rename from app/boards/zhiayang/mikoto/mikoto.dts rename to app/module/boards/zhiayang/mikoto/mikoto.dts index c2a82a47c..e0ce24aa5 100644 --- a/app/boards/zhiayang/mikoto/mikoto.dts +++ b/app/module/boards/zhiayang/mikoto/mikoto.dts @@ -16,7 +16,6 @@ zephyr,code-partition = &code_partition; zephyr,sram = &sram0; zephyr,flash = &flash0; - zmk,battery = &vbatt; }; leds { @@ -25,20 +24,6 @@ gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; }; }; - - // Node name must match original "EXT_POWER" label to preserve user settings. - EXT_POWER { - compatible = "zmk,ext-power-generic"; - control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; - init-delay-ms = <50>; - }; - - vbatt: vbatt { - compatible = "zmk,battery-voltage-divider"; - io-channels = <&adc 1>; - output-ohms = <10000000>; - full-ohms = <(10000000 + 4000000)>; - }; }; ®1 { diff --git a/app/boards/zhiayang/mikoto/mikoto.yaml b/app/module/boards/zhiayang/mikoto/mikoto.yaml similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto.yaml rename to app/module/boards/zhiayang/mikoto/mikoto.yaml diff --git a/app/boards/zhiayang/mikoto/mikoto_5_20_0.overlay b/app/module/boards/zhiayang/mikoto/mikoto_5_20_0.overlay similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto_5_20_0.overlay rename to app/module/boards/zhiayang/mikoto/mikoto_5_20_0.overlay diff --git a/app/boards/zhiayang/mikoto/mikoto_6_1_0.overlay b/app/module/boards/zhiayang/mikoto/mikoto_6_1_0.overlay similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto_6_1_0.overlay rename to app/module/boards/zhiayang/mikoto/mikoto_6_1_0.overlay diff --git a/app/module/boards/zhiayang/mikoto/mikoto_7_2_0.conf b/app/module/boards/zhiayang/mikoto/mikoto_7_2_0.conf new file mode 100644 index 000000000..8bf928868 --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/mikoto_7_2_0.conf @@ -0,0 +1,2 @@ +CONFIG_I2C=y +CONFIG_ZMK_MAX17048=y diff --git a/app/boards/zhiayang/mikoto/mikoto_7_2_0.overlay b/app/module/boards/zhiayang/mikoto/mikoto_7_2_0.overlay similarity index 100% rename from app/boards/zhiayang/mikoto/mikoto_7_2_0.overlay rename to app/module/boards/zhiayang/mikoto/mikoto_7_2_0.overlay diff --git a/app/module/boards/zhiayang/mikoto/mikoto_defconfig b/app/module/boards/zhiayang/mikoto/mikoto_defconfig new file mode 100644 index 000000000..17ef2da47 --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/mikoto_defconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: MIT + +# Enable MPU +CONFIG_ARM_MPU=y +CONFIG_PINCTRL=y + +# enable GPIO +CONFIG_GPIO=y + +CONFIG_USE_DT_CODE_PARTITION=y +CONFIG_BUILD_OUTPUT_UF2=y + diff --git a/app/boards/zhiayang/mikoto/pinmux.c b/app/module/boards/zhiayang/mikoto/pinmux.c similarity index 100% rename from app/boards/zhiayang/mikoto/pinmux.c rename to app/module/boards/zhiayang/mikoto/pinmux.c diff --git a/app/module/boards/zhiayang/mikoto/pre_dt_board.cmake b/app/module/boards/zhiayang/mikoto/pre_dt_board.cmake new file mode 100644 index 000000000..d2d492264 --- /dev/null +++ b/app/module/boards/zhiayang/mikoto/pre_dt_board.cmake @@ -0,0 +1,8 @@ +# 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/module/zephyr/module.yml b/app/module/zephyr/module.yml index 219b2cfd2..70de6620d 100644 --- a/app/module/zephyr/module.yml +++ b/app/module/zephyr/module.yml @@ -3,3 +3,4 @@ build: kconfig: Kconfig settings: dts_root: . + board_root: . diff --git a/app/run-ble-test.sh b/app/run-ble-test.sh index 8c65c91b6..f8e705374 100755 --- a/app/run-ble-test.sh +++ b/app/run-ble-test.sh @@ -61,7 +61,7 @@ echo "Running $testcase:" shopt -s nullglob for file in $(pwd)/$testcase/peripheral*.overlay ; do pn=$(basename -s .overlay ${file}) - west build -d build/${testcase%%/}_${pn}/ -b nrf52_bsim -- -DZMK_CONFIG="$(pwd)/$testcase" -DEXTRA_DTC_OVERLAY_FILE="${file}" > /dev/null 2>&1 + west build -d build/${testcase%%/}_${pn}/ -b nrf52_bsim//zmk_test_mock -- -DZMK_CONFIG="$(pwd)/$testcase" -DEXTRA_DTC_OVERLAY_FILE="${file}" > /dev/null 2>&1 if [ $? -gt 0 ]; then echo "FAILED: $testcase peripheral ${pn} did not build" | tee -a ./build/tests/pass-fail.log @@ -76,7 +76,7 @@ if ls $(pwd)/$testcase/peripheral*.overlay >/dev/null 2>&1; then extra_cmake_args="-DCONFIG_ZMK_SPLIT_ROLE_CENTRAL=y" fi -west build -d build/$testcase -b nrf52_bsim -- -DZMK_CONFIG="$(pwd)/$testcase" ${extra_cmake_args} > /dev/null 2>&1 +west build -d build/$testcase -b nrf52_bsim//zmk_test_mock -- -DZMK_CONFIG="$(pwd)/$testcase" ${extra_cmake_args} > /dev/null 2>&1 if [ $? -gt 0 ]; then echo "FAILED: $testcase did not build" | tee -a ./build/tests/pass-fail.log exit 1 diff --git a/app/run-test.sh b/app/run-test.sh index cd944c9a5..aa84ed69b 100755 --- a/app/run-test.sh +++ b/app/run-test.sh @@ -38,7 +38,7 @@ testcase=$(realpath $path | sed -n -e "s|.*/tests/||p") echo "Running $testcase:" build_cmd="west build ${ZMK_SRC_DIR:+-s $ZMK_SRC_DIR} -d ${ZMK_BUILD_DIR}/tests/$testcase \ - -b native_sim/native/64 -p -- -DCONFIG_ASSERT=y -DZMK_CONFIG="$(realpath $path)" \ + -b native_sim//zmk_test_mock -p -- -DCONFIG_ASSERT=y -DZMK_CONFIG="$(realpath $path)" \ ${ZMK_EXTRA_MODULES:+-DZMK_EXTRA_MODULES="$(realpath ${ZMK_EXTRA_MODULES})"}" # Add extra cmake arguments from file if it exists diff --git a/docs/blog/2025-12-09-zephyr-4-1.md b/docs/blog/2025-12-09-zephyr-4-1.md index 6a6773465..9608317b1 100644 --- a/docs/blog/2025-12-09-zephyr-4-1.md +++ b/docs/blog/2025-12-09-zephyr-4-1.md @@ -8,6 +8,14 @@ We're happy to announce that after a long wait, ZMK's `main` branch is now runni +:::note + +The following changes have been made since this blog post was originally published: + +- The [move to `zmk` variants by default](https://github.com/zmkfirmware/zmk/pull/3145) for ZMK boards was documented. + +::: + Zephyr 4.1 is a large leap forward from our previous version of 3.5, featuring: - Support for lots of new SoCs, boards, and shields, such as the WCH CH32V003, the Raspberry Pi Pico 2, and [many many more](https://docs.zephyrproject.org/4.1.0/boards/index.html#boards). @@ -61,6 +69,12 @@ The following steps will get you building ZMK locally against Zephyr 4.1: From there, you should be ready to build as normal! +## ZMK Board Variant + +The new Zephyr version includes a [standard mechanism for extending boards](https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#board-extensions) found in Zephyr (like the Seeeduino XIAO, or Raspberry Pi Pico) with new variants that include additional configuration/defaults that are relevant to the application. This also means the original "stock" board can still be used as is, if consumers don't want to use those customizations for any reason. + +As a result, all board definitions found in the ZMK tree now must be used with a `zmk` variant. For example, the previous board ID of `adv360pro_left` would now be `adv360pro_left/nrf52840/zmk`, which can be shortened to `adv360pro_left//zmk` since there's only one SoC on the board. + ## Board Revisions As part of this change, ZMK is now using board/shield revisions, rather than duplicate board/shield definitions. This means that instead of having e.g. `nice_nano`, and `nice_nano_v2`, we only have `nice_nano`, which by default points to the `2.0.0` revision. To point to the original Nice!Nano V1, you would need to use `nice_nano@1.0.0` where you would have previously used `nice_nano`. Of course, you could also put `nice_nano@2.0.0` if you wished to make that explicit, instead of merely replacing `nice_nano_v2` with `nice_nano`. Some boards, such as the `nrfmicro`, also have additional _board qualifiers_ such as the choice between multiple SoCs. Board qualifiers must always be specified, and do not have defaults. See [Zephyr's overview](https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#board-terminology) for more information on board qualifiers. The below table provides an overview of some of the differences in in-tree boards we have in ZMK, and how they are selected in the new build system. The shorthand shows the minimum needed to build with a specific board, taking into account defaults. diff --git a/docs/docs/development/hardware-integration/lighting/underglow.md b/docs/docs/development/hardware-integration/lighting/underglow.md index d0d14a854..605db261b 100644 --- a/docs/docs/development/hardware-integration/lighting/underglow.md +++ b/docs/docs/development/hardware-integration/lighting/underglow.md @@ -11,7 +11,7 @@ See the documentation page on [pin control](../pinctrl.mdx) for detailed informa Shields written for boards which support RGB underglow should add a `boards/` folder underneath the shield folder. Inside this `boards/` folder, create a `.overlay` for any of the boards the shield can be used with. Place all hardware-specific configurations in these `.overlay` files. -For example: the `kyria` shield has a [`boards/nice_nano.overlay`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/boards/nice_nano.overlay) and a [`boards/nrfmicro_13.overlay`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/boards/nrfmicro_13.overlay), which configure a WS2812 LED strip for the `nice_nano` and `nrfmicro_13` boards respectively. +For example: the `kyria` shield has a [`boards/nice_nano_nrf52840_zmk.overlay`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/boards/nice_nano_nrf52840_zmk.overlay) and a [`boards/nrfmicro_nrf52840_zmk_1_3_0.overlay`](https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/kyria/boards/nrfmicro_nrf52840_zmk_1_3_0.overlay), which configure a WS2812 LED strip for the `nice_nano/nrf52840/zmk` and `nrfmicro@1.3.0/nrf52840/zmk` boards respectively. ### nRF52-Based Boards diff --git a/docs/docs/development/hardware-integration/pinctrl.mdx b/docs/docs/development/hardware-integration/pinctrl.mdx index edd882d9b..f634cb145 100644 --- a/docs/docs/development/hardware-integration/pinctrl.mdx +++ b/docs/docs/development/hardware-integration/pinctrl.mdx @@ -27,9 +27,8 @@ Pin control is always defined for a _board_, never for a shield: ```plaintext boards/shields/sofle/ ├── boards/ - │ ├── nice_nano.overlay - │ ├── nrfmicro_11.overlay - │ └── nrfmicro_13.overlay + │ ├── nice_nano_nrf52840_zmk.overlay + │ ├── nrfmicro_nrf52840_zmk_1_3_0.overlay └── ``` Note that you will need to define a separate overlay _for each_ of the boards to be used with the shield. diff --git a/docs/docs/hardware.mdx b/docs/docs/hardware.mdx index 84d16908f..8611f94bb 100644 --- a/docs/docs/hardware.mdx +++ b/docs/docs/hardware.mdx @@ -44,6 +44,12 @@ With the solid technical foundation of Zephyr™ RTOS, ZMK can support a wide di including but not limited to Nordic nRF52, Raspberry Pi RP2040/RP2350, most ST STM32 MCUs, and Microchip SAMD21. That being said, there are specific [boards / shields](development/hardware-integration/index.mdx#boards--shields) that have been implemented and tested by the ZMK contributors, listed below. +:::note + +With the [upgrade to Zephyr 4.1](/blog/2025/12/09/zephyr-4-1#zmk-board-variant), the ZMK project has moved all in-tree boards to use a `zmk` [board variant](https://docs.zephyrproject.org/4.1.0/glossary.html#term-variant), for consistency when distinguishing from stock boards that are actually in upstream Zephyr. + +::: + {/* prettier-ignore */}