diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32e084cb..619902d2 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 c8973f5c..f3a79315 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 bf3fd17a..8c05cbaf 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 00000000..b7b0308b --- /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 00000000..7ef758e0 --- /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 9b9c1450..ebda8559 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 a68455c4..2a64ff75 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 00000000..b7b0308b --- /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 00000000..cda7173e --- /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 a6e91afd..00000000 --- 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 00000000..0891ee1b --- /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 00000000..dac3d4df --- /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 00000000..c7bb7cc2 --- /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 00000000..0c1a531e --- /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 9c394f2c..00000000 --- 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 bf3fd17a..00000000 --- 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 9c394f2c..00000000 --- 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 c4252425..00000000 --- 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 c4252425..00000000 --- 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 c4252425..00000000 --- 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 9c394f2c..00000000 --- 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 277e4532..00000000 --- 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 97e95bf7..00000000 --- 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 526f3bc7..00000000 --- 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 c520a3b7..00000000 --- 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 b5d2cdb2..00000000 --- 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 147adc6d..00000000 --- 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 f0db8ed1..00000000 --- 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 70b90914..00000000 --- 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 1f7d85b3..00000000 --- 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 38b80a80..7925e4a0 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 1cfcc492..391cee63 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 918c0b35..632d283e 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 00000000..7f597f58 --- /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 a1cfb4fe..403fdda3 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 252d04b9..d3b66619 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 758f4ee8..00000000 --- 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 00000000..d1de13ce --- /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 00000000..a1995732 --- /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 da3774d7..c1f1d0a2 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 10afcbf1..7b1d8452 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 00000000..e36be912 --- /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 0a9ebdd5..4341c04f 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 a044fea2..9441c642 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 b8ef43b3..fd24d183 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 4991888c..a6c764ad 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 45eaad64..a2c5917d 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 0411ee3f..696e60f0 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 31327902..133a95d0 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 d192a306..ba5a6b11 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 18f6463c..c641fe7d 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 00000000..4ba21200 --- /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 5e882680..2d1e3496 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 1332451e..8ec7f8f8 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 97d63ec6..aafdcbd6 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 9630386d..574664a2 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 acb746cd..82aa35e2 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 a1675e24..16079c2c 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 2a4ccb0c..227c4500 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 00000000..cdca8a68 --- /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 b8e0e148..27482cc2 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 abd15044..7e6a9959 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 5df11b9e..397ce653 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 00000000..ff977338 --- /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 3df3c330..61700618 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 57b30eca..e64fc007 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 00000000..8d7f746f --- /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 00000000..81f8d1b2 --- /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 00000000..d55614c3 --- /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 00000000..26fcc6ad --- /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 0d8e0d81..fc1b0407 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 00000000..f82371b4 --- /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 5b8e23d3..fa67bfc5 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 00000000..89ccb73e --- /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 00000000..c24991bf --- /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 ec7c49ae..835a49c1 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 dce230ae..4b3fa09a 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 fdbe7cef..e945cbf0 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 2847260f..b6d2a2b1 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 d1be26ef..ae9a6170 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 89171957..13cba4f6 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 2245a89e..e9b69fff 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 00000000..ed5b9b7b --- /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 00000000..66852ec1 --- /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 00000000..a8be86a3 --- /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 47cb6461..738cf290 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 00000000..d2a0b855 --- /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 6c9bcdf1..087cfbd0 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 00000000..26104aa0 --- /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 00000000..2b093635 --- /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 00000000..2c19ebd8 --- /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 b81bcddb..dd30d7cf 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 42e83d12..54194542 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 688df684..95992c3e 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 692f91a8..88755083 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 3bed9d0b..6fb3af39 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 841f437a..68919fe5 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 2db078f6..2f9a8b80 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 bec416a9..98bb85fc 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 2d156370..cc9d8ed7 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 c152a62a..55f90525 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 97f443cf..7392a405 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 136ace23..aaeb1835 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 d12dcb3a..5a8057c8 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 d4424a4b..fb909c52 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 3bd7eb1d..6c4dd0ad 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 54ecb64b..0b6a5d3e 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 682783ce..e89acf24 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 00000000..dfee886e --- /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 00000000..de179f80 --- /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 00000000..7142cb56 --- /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 b0aed761..3acf57ff 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 00000000..5ff98221 --- /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 00000000..c5d20792 --- /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 51093b04..da65bb69 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 00000000..66a500dd --- /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 00000000..04da60c9 --- /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 00000000..5643184c --- /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 270d8090..d4159e36 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 331b8fb7..b01c544e 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 49eaacf6..fd85e275 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 00000000..813e3346 --- /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 ea6f04f3..ab30d3f7 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 8f2e8714..b55ddc63 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 00000000..d4a902e0 --- /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 00000000..4f3dd49a --- /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 26a2ca64..d9243be0 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 ac83d981..733e2d08 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 00000000..0c1a531e --- /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 329b7371..2cf8c281 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 54e360a3..4704552d 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 00000000..c0efb874 --- /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 00000000..7aa1253d --- /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 251d2c27..26115680 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 54e360a3..ea7f0634 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 00000000..c0efb874 --- /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 00000000..85d23de1 --- /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 eaa714d6..2684da2d 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 6ed4c3cf..f9be15c1 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 00000000..c0efb874 --- /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 00000000..d0bb7691 --- /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 69ca49c0..171227bd 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 d1f71557..745ed1c3 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 6e073410..7726e82b 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 00000000..7363967a --- /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 00000000..e5ea4864 --- /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 00000000..e5ea4864 --- /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 00000000..06db3f9c --- /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 6dc6a051..beefb2eb 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 00000000..27eb747b --- /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 00000000..1cfcc492 --- /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 a5cca787..72398716 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 00000000..5b140088 --- /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 149f4be3..787cfc34 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 00000000..5b140088 --- /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 00000000..5e669b34 --- /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 8f1d3031..1e328816 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 00000000..5e669b34 --- /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 00000000..fd2a9143 --- /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 6c4e8ced..fe32d952 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 00000000..c36eee0c --- /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 00000000..5b140088 --- /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 00000000..73fa64a9 --- /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 00000000..0a9ebdd5 --- /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 00000000..b0c27aa5 --- /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 00000000..ee8bc573 --- /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 00000000..4cd8b05b --- /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 00000000..d192a306 --- /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 00000000..b0c27aa5 --- /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 00000000..18f6463c --- /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 00000000..5d50cb25 --- /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 00000000..d4eb4c30 --- /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 00000000..0acfeb73 --- /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 00000000..a1675e24 --- /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 f9ffee62..821fcd2a 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 00000000..0a999bbf --- /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 00000000..c7dc6fcf --- /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 00000000..b0c27aa5 --- /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 00000000..d8967944 --- /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 00000000..d9d4ed92 --- /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 00000000..abd15044 --- /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 00000000..609c4a72 --- /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 cb2db7c4..b24f05df 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 00000000..8332d62b --- /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 00000000..01a9329c --- /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 00000000..73fa64a9 --- /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 00000000..89171957 --- /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 0595ce13..2788ceae 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 00000000..0779d359 --- /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 00000000..73d6e98a --- /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 00000000..b0c27aa5 --- /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 00000000..9da8ea91 --- /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 00000000..54ecb64b --- /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 00000000..682783ce --- /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 00000000..83dd1ee9 --- /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 ec6ee532..730cc005 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 00000000..2190c382 --- /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 00000000..73fa64a9 --- /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 00000000..d1f71557 --- /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 c2a82a47..e0ce24aa 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 00000000..8bf92886 --- /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 00000000..17ef2da4 --- /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 00000000..d2d49226 --- /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 219b2cfd..70de6620 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 8c65c91b..f8e70537 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 cd944c9a..aa84ed69 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 6a677346..9608317b 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 d0d14a85..605db261 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 edd882d9..f634cb14 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 84d16908..8611f94b 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 */}