refactor(core): Adjust our approach for upstream Zephyr boards (#3145)

refactor(core): Adjust our approach for upstream Zephyr boards

Move to using proper HWMv2 board extensions
https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#board-extensions

for extending upstream Zephyr boards for use with ZMK. With this change,
using upstream Zephyr board IDs directly, e.g. `seeeduino_xiao` will be
stock versions as found upstream. To use a board variant that is tuned
for ZMK use, use the `zmk` variant, e.g. `seeeduino_xiao//zmk` which is
shorthand for `seeeduino_xiao/samd21g18a/zmk`.

refactor(boards): Move to ZMK specific variants for the nRFMicro board

For consistency, adjust the nRFMicro board definition to offer a
"vanilla" Zephyr board, and then ZMK variants, e.g.
`nrfmicro/nrf52840/zmk`.

refactor(boards): Move to ZMK specific variant for the bluemicro840 board

For consistency, adjust the bluemicro840 board definition to offer a
"vanilla" Zephyr board, and then ZMK variant, e.g. `bluemicro840//zmk`.

refactor(boards): Make tofu65 to ZMK variant by default

Make the standard Tofu65 board ID be `tofu65/rp2040/zmk` or
`tofu65//zmk` by shorthand.

refactor(boards): Move BDN9 to ZMK variant by default

Make the standard BDN9 board ID be `bdn9/stm32f072xb/zmk` or
`bdn9//zmk` by shorthand.

refactor(boards): Move Puchi BLE to ZMK variant by default

Make the standard Puchi BLE board ID be `puchi_ble/nrf52840/zmk` or
`puchi_ble//zmk` by shorthand.

refactor(boards): Move Adv360 Pro to ZMK variant by default

Make the standard Adv360 Pro board ID be `adv360pro_left/nrf52840/zmk` or
`adv360pro_left//zmk` by shorthand and for right as well.

refactor(boards): Move nRF52840 M2 to ZMK variant by default

Make the standard nRF52840 M2 board ID be `nrf52840_m2/nrf52840/zmk` or
`nrf52840_m2//zmk` by shorthand.

refactor(boards): Move Pillbug to ZMK variant by default

Make the standard Pillbug board ID be `pillbug/nrf52840/zmk` or
`pillbug//zmk` by shorthand.

refactor(boards): Move s40nc to ZMK variant by default

Make the standard s40nc board ID be `s40nc/nrf52840/zmk` or
`s40nc//zmk` by shorthand.

refactor(boards): Move nice!60 to ZMK variant by default

Make the standard nice!60 board ID be `nice60/nrf52840/zmk` or
`nice60//zmk` by shorthand.

refactor(boards): Move planck to ZMK variant by default

Make the standard planck board ID be `planck/stm32f303xc/zmk` or
`planck//zmk` by shorthand.

refactor(boards): Move preonic to ZMK variant by default

Make the standard preonic board ID be `preonic/stm32f303xc/zmk` or
`preonic//zmk` by shorthand.

refactor(boards): Move ferris to ZMK variant by default

Make the standard ferris board ID be `ferris/stm32f072xb/zmk` or
`ferris//zmk` by shorthand.

refactor(boards): Move Proton-C to ZMK variant by default

Make the standard Proton-C board ID be `proton_c/stm32f303xc/zmk` or
`proton_c//zmk` by shorthand.

refactor(boards): Move Corneish Zen to ZMK variant by default

Make the standard Corneish Zen board ID be `corneish_zen_left/nrf52840/zmk` or
`corneish_zen_left//zmk` by shorthand and for right as well.

refactor(boards): Move nice!nano to ZMK variant by default

Make the standard nice!nano board ID be `nice_nano/nrf52840/zmk` or
`nice_nano//zmk` by shorthand.

refactor(boards): Move mikoto to ZMK variant by default

Make the standard mikoto board ID be `mikoto/nrf52840/zmk` or
`mikoto//zmk` by shorthand.

refactor(boards): Move Polarity Works boards to ZMK variants

Make the standard Polarity Works board IDs be `zmk` variants.

doc: Update docs/blog post to reference ZMK variants

* Update Zephyr 4.1 blog post to mention ZMK variants
* Add note to hardware support page about variants

docs: Fix up shield board overlays for new board IDs

Adjust our documentation to properly use the correct qualified board
overlay file names that match our new board conventions.
This commit is contained in:
Pete Johanson
2026-02-11 23:53:54 -07:00
committed by GitHub
parent 6e7e0de2b6
commit 6690d535e6
360 changed files with 1468 additions and 454 deletions

View File

@@ -277,6 +277,7 @@ jobs:
); );
} else { } else {
console.error("Board without keys or interconnect"); console.error("Board without keys or interconnect");
return [];
} }
break; break;
case "shield": case "shield":

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: adafruit_kb2040 id: adafruit_kb2040//zmk
name: Adafruit KB2040 name: Adafruit KB2040
type: board type: board
arch: arm arch: arm

View File

@@ -4,6 +4,7 @@
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
*/ */
#include <../boards/adafruit/kb2040/adafruit_kb2040.dts>
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi> #include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
&pro_micro_serial { status = "disabled"; }; &pro_micro_serial { status = "disabled"; };

View File

@@ -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

View File

@@ -0,0 +1,5 @@
board:
extend: adafruit_kb2040
variants:
- name: zmk
qualifier: rp2040

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: adafruit_qt_py_rp2040 id: adafruit_qt_py_rp2040//zmk
name: Adafruit QT Py RP2040 name: Adafruit QT Py RP2040
type: board type: board
arch: arm arch: arm

View File

@@ -4,6 +4,7 @@
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
*/ */
#include <../boards/adafruit/qt_py_rp2040/adafruit_qt_py_rp2040.dts>
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi> #include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
&xiao_serial { status = "disabled"; }; &xiao_serial { status = "disabled"; };

View File

@@ -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

View File

@@ -0,0 +1,5 @@
board:
extend: adafruit_qt_py_rp2040
variants:
- name: zmk
qualifier: rp2040

View File

@@ -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]

View File

@@ -0,0 +1,5 @@
board:
extend: boardsource_blok
variants:
- name: zmk
qualifier: rp2040

View File

@@ -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]

View File

@@ -0,0 +1,23 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/boardsource/blok/boardsource_blok.dts>
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
&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;
};
};
};

View File

@@ -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

View File

@@ -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

View File

@@ -1,9 +0,0 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <arm/raspberrypi/rp2040-boot-mode-retention.dtsi>
&pro_micro_serial { status = "disabled"; };

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,32 +0,0 @@
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/kscan_mock.h>
/ {
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>;
};

View File

@@ -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

View File

@@ -1,4 +0,0 @@
CONFIG_ZMK_BLE=y
CONFIG_LOG=y
CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_ZMK_LOG_LEVEL_DBG=y

View File

@@ -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

View File

@@ -1,7 +0,0 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
&xiao_serial { status = "disabled"; };

View File

@@ -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

View File

@@ -1,5 +0,0 @@
CONFIG_CONSOLE=n
CONFIG_SERIAL=n
CONFIG_UART_CONSOLE=n
CONFIG_UART_INTERRUPT_DRIVEN=n
CONFIG_ZMK_USB=y

View File

@@ -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

View File

@@ -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

View File

@@ -4,9 +4,9 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
config BOARD_NRFMICRO config BOARD_NRFMICRO
select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840 select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_ZMK
select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_FLIPPED select SOC_NRF52840_QIAA if BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK
select SOC_NRF52833_QIAA if BOARD_NRFMICRO_NRF52833 select SOC_NRF52833_QIAA if BOARD_NRFMICRO_NRF52833_ZMK
imply RETAINED_MEM imply RETAINED_MEM if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK
imply RETENTION imply RETENTION if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK
imply RETENTION_BOOT_MODE imply RETENTION_BOOT_MODE if BOARD_NRFMICRO_NRF52840_ZMK || BOARD_NRFMICRO_NRF52840_FLIPPED_ZMK || BOARD_NRFMICRO_NRF52833_ZMK

View File

@@ -1,14 +1,9 @@
board: board:
name: nrfmicro extend: nrfmicro
vendor: joric variants:
socs: - name: zmk
- name: nrf52840 qualifier: nrf52840
variants: - name: flipped_zmk
- name: flipped qualifier: nrf52840
- name: nrf52833 - name: zmk
revision: qualifier: nrf52833
format: major.minor.patch
default: 1.3.0
revisions:
- name: 1.3.0
- name: 1.1.0

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: nrfmicro/nrf52833 id: nrfmicro/nrf52833/zmk
name: nRFMicro (nRF52833) name: nRFMicro (nRF52833)
type: board type: board
arch: arm arch: arm

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/joric/nrfmicro/nrfmicro_nrf52833.dts>
#include <common/nordic/nrf52833_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: nrfmicro/nrf52840 id: nrfmicro/nrf52840/zmk
name: nRFMicro (nRF52840) 1.1/1.2/1.3 name: nRFMicro (nRF52840) 1.1/1.2/1.3
type: board type: board
arch: arm arch: arm

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: nrfmicro/nrf52840/flipped id: nrfmicro/nrf52840/flipped_zmk
name: nRFMicro nRF52840 (flipped) name: nRFMicro nRF52840 (flipped)
type: board type: board
arch: arm arch: arm

View File

@@ -1,6 +0,0 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/

View File

@@ -0,0 +1,17 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/joric/nrfmicro/nrfmicro_nrf52840_flipped.dts>
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
// 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>;
};
};

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/joric/nrfmicro/nrfmicro_nrf52840.dts>
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -1,8 +1,8 @@
# Copyright (c) 2020 Pete Johanson, Derek Schmell # Copyright (c) 2026 Pete Johanson, Derek Schmell
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
config BOARD_BLUEMICRO840 config BOARD_BLUEMICRO840
select SOC_NRF52840_QIAA select SOC_NRF52840_QIAA
imply RETAINED_MEM imply RETAINED_MEM if BOARD_BLUEMICRO840_NRF52840_ZMK
imply RETENTION imply RETENTION if BOARD_BLUEMICRO840_NRF52840_ZMK
imply RETENTION_BOOT_MODE imply RETENTION_BOOT_MODE if BOARD_BLUEMICRO840_NRF52840_ZMK

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: bluemicro840 id: bluemicro840//zmk
name: BlueMicro840 v1 name: BlueMicro840 v1
type: board type: board
arch: arm arch: arm

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2026 Pete Johanson, Derek Schmell
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/jpconstantineau/bluemicro840/bluemicro840.dts>
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -1,5 +1,5 @@
board: board:
name: bluemicro840 extend: bluemicro840
vendor: jpconstantineau variants:
socs: - name: zmk
- name: nrf52840 qualifier: nrf52840

View File

@@ -3,3 +3,5 @@ board:
vendor: kbdfans vendor: kbdfans
socs: socs:
- name: rp2040 - name: rp2040
variants:
- name: zmk

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: tofu65 id: tofu65//zmk
name: KBDfans Tofu65 2.0 name: KBDfans Tofu65 2.0
type: board type: board
arch: arm arch: arm

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: bdn9 id: bdn9//zmk
name: BDN9 (Rev2) name: BDN9 (Rev2)
type: board type: board
arch: arm arch: arm

View File

@@ -3,6 +3,8 @@ board:
vendor: keebio vendor: keebio
socs: socs:
- name: stm32f072xb - name: stm32f072xb
variants:
- name: zmk
revision: revision:
format: major.minor.patch format: major.minor.patch
default: 2.0.0 default: 2.0.0

View File

@@ -3,9 +3,6 @@
if BOARD_PUCHI_BLE if BOARD_PUCHI_BLE
config BOARD
default "puchi_ble"
if USB_DEVICE_STACK if USB_DEVICE_STACK
config USB_NRFX config USB_NRFX
@@ -13,7 +10,4 @@ config USB_NRFX
endif # USB_DEVICE_STACK endif # USB_DEVICE_STACK
config BT_CTLR
default BT
endif # BOARD_PUCHI_BLE endif # BOARD_PUCHI_BLE

View File

@@ -5,6 +5,6 @@
config BOARD_PUCHI_BLE config BOARD_PUCHI_BLE
select SOC_NRF52840_QIAA select SOC_NRF52840_QIAA
imply RETAINED_MEM imply RETAINED_MEM if BOARD_PUCHI_BLE_NRF52840_ZMK
imply RETENTION imply RETENTION if BOARD_PUCHI_BLE_NRF52840_ZMK
imply RETENTION_BOOT_MODE imply RETENTION_BOOT_MODE if BOARD_PUCHI_BLE_NRF52840_ZMK

View File

@@ -1,5 +1,5 @@
board: board:
name: puchi_ble extend: puchi_ble
vendor: keycapsss variants:
socs: - name: zmk
- name: nrf52840 qualifier: nrf52840

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: puchi_ble id: puchi_ble//zmk
name: Puchi-BLE V1 name: Puchi-BLE V1
type: board type: board
arch: arm arch: arm

View File

@@ -0,0 +1,29 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <../boards/keycapsss/puchi_ble/puchi_ble.dts>
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -13,5 +13,5 @@ outputs:
- usb - usb
- ble - ble
siblings: siblings:
- adv360pro_left - adv360pro_left//zmk
- adv360pro_right - adv360pro_right//zmk

View File

@@ -3,7 +3,11 @@ boards:
vendor: kinesis vendor: kinesis
socs: socs:
- name: nrf52840 - name: nrf52840
variants:
- name: zmk
- name: adv360pro_right - name: adv360pro_right
vendor: kinesis vendor: kinesis
socs: socs:
- name: nrf52840 - name: nrf52840
variants:
- name: zmk

View File

@@ -3,6 +3,8 @@ boards:
vendor: lowprokb vendor: lowprokb
socs: socs:
- name: nrf52840 - name: nrf52840
variants:
- name: zmk
revision: revision:
format: major.minor.patch format: major.minor.patch
default: 2.0.0 default: 2.0.0
@@ -14,6 +16,8 @@ boards:
vendor: lowprokb vendor: lowprokb
socs: socs:
- name: nrf52840 - name: nrf52840
variants:
- name: zmk
revision: revision:
format: major.minor.patch format: major.minor.patch
default: 2.0.0 default: 2.0.0

View File

@@ -15,5 +15,5 @@ revisions:
- 2.0.0 - 2.0.0
- 1.0.0 - 1.0.0
siblings: siblings:
- corneish_zen_left - corneish_zen_left//zmk
- corneish_zen_right - corneish_zen_right//zmk

View File

@@ -3,6 +3,6 @@
config BOARD_NRF52840_M2 config BOARD_NRF52840_M2
select SOC_NRF52840_QIAA select SOC_NRF52840_QIAA
imply RETAINED_MEM imply RETAINED_MEM if BOARD_NRF52840_M2_NRF52840_ZMK
imply RETENTION imply RETENTION if BOARD_NRF52840_M2_NRF52840_ZMK
imply RETENTION_BOOT_MODE imply RETENTION_BOOT_MODE if BOARD_NRF52840_M2_NRF52840_ZMK

View File

@@ -1,5 +1,5 @@
board: board:
name: nrf52840_m2 extend: nrf52840_m2
vendor: makerdiary variants:
socs: - name: zmk
- name: nrf52840 qualifier: nrf52840

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: nrf52840_m2 id: nrf52840_m2//zmk
name: nRF52840 M.2 Module name: nRF52840 M.2 Module
type: board type: board
arch: arm arch: arm

View File

@@ -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 <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -3,6 +3,6 @@
config BOARD_PILLBUG config BOARD_PILLBUG
select SOC_NRF52840_QIAA select SOC_NRF52840_QIAA
imply RETAINED_MEM imply RETAINED_MEM if BOARD_PILLBUG_NRF52840_ZMK
imply RETENTION imply RETENTION if BOARD_PILLBUG_NRF52840_ZMK
imply RETENTION_BOOT_MODE imply RETENTION_BOOT_MODE if BOARD_PILLBUG_NRF52840_ZMK

View File

@@ -1,5 +1,5 @@
board: board:
name: pillbug name: pillbug
vendor: mechwild variants:
socs: - name: zmk
- name: nrf52840 qualifier: nrf52840

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: pillbug id: pillbug//zmk
name: PillBug name: PillBug
type: board type: board
arch: arm arch: arm

View File

@@ -0,0 +1,32 @@
/*
* Copyright (c) 2026 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
/dts-v1/;
#include <../boards/mechwild/pillbug/pillbug.dts>
#include <common/nordic/nrf52840_uf2_boot_mode.dtsi>
/ {
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)>;
};
};

View File

@@ -3,3 +3,5 @@ board:
vendor: mechwild vendor: mechwild
socs: socs:
- name: nrf52840 - name: nrf52840
variants:
- name: zmk

View File

@@ -1,5 +1,5 @@
file_format: "1" file_format: "1"
id: s40nc id: s40nc//zmk
name: S40NC name: S40NC
type: board type: board
arch: arm arch: arm

View File

@@ -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.

View File

@@ -0,0 +1,7 @@
board:
extend: native_sim
variants:
- name: zmk_display_testing
qualifier: native
- name: zmk_test_mock
qualifier: native

View File

@@ -0,0 +1,20 @@
#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&none &mo 1
&kp A &none>;
};
lower_layer {
bindings = <
&none &trans
&none &kp A>;
};
};
};

View File

@@ -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

View File

@@ -1,6 +1,8 @@
CONFIG_GPIO=n # SPDX-License-Identifier: MIT
# Enable to have the native posix build expose USBIP device(s)
# CONFIG_ZMK_USB=y CONFIG_CONSOLE=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=1000000
CONFIG_LOG=y CONFIG_LOG=y
CONFIG_LOG_BACKEND_SHOW_COLOR=n CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_ZMK_LOG_LEVEL_DBG=y CONFIG_ZMK_LOG_LEVEL_DBG=y

Some files were not shown because too many files have changed in this diff Show More