mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-19 20:45:18 -05:00
docs: Update hardware integration page with Zephyr 4.1 board setup (#3138)
* docs: Update hardware integration page with Zephyr 4.1 board setup * docs: Apply suggestions from code review Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com> --------- Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
This commit is contained in:
@@ -68,33 +68,33 @@ values={[
|
|||||||
<TabItem value="self-contained">
|
<TabItem value="self-contained">
|
||||||
|
|
||||||
For a [self-contained keyboard](../../hardware.mdx#onboard) that includes the microprocessor, all of the above architecture components are included in the Zephyr _board_ definition and no shield is defined.
|
For a [self-contained keyboard](../../hardware.mdx#onboard) that includes the microprocessor, all of the above architecture components are included in the Zephyr _board_ definition and no shield is defined.
|
||||||
You can see an example for the [Planck V6](https://github.com/zmkfirmware/zmk/tree/main/app/boards/arm/planck) board directory.
|
You can see an example for the [Planck V6](https://github.com/zmkfirmware/zmk/tree/main/app/boards/olkb/planck) board directory.
|
||||||
|
|
||||||
With this type of keyboard, the full ZMK definition for the keyboard exists in the `<board_root>/boards/<arch>/<keyboard_name>` directory where `<board_root>` is `zmk/app` or a [module](../../features/modules.mdx) root, e.g. `zmk/app/boards/arm/planck/`.
|
With this type of keyboard, the full ZMK definition for the keyboard exists in the `<board_root>/boards/<vendor or designer>/<keyboard_name>` directory where `<board_root>` is `zmk/app` or a [module](../../features/modules.mdx) root, e.g. `zmk/app/boards/olkb/planck/`.
|
||||||
In that directory you'll have the following files, where there can be multiples of files with `<board_name>`s, corresponding to each keyboard part for [split keyboards](../../features/split-keyboards.md):
|
In that directory you'll have the following files, where there can be multiples of files with `<board_name>`s, corresponding to each keyboard part for [split keyboards](../../features/split-keyboards.md):
|
||||||
|
|
||||||
```
|
```
|
||||||
<keyboard_name>
|
<keyboard_name>
|
||||||
├── Kconfig.board
|
|
||||||
├── Kconfig.defconfig
|
├── Kconfig.defconfig
|
||||||
|
├── Kconfig.<board_name>
|
||||||
├── <board_name>_defconfig
|
├── <board_name>_defconfig
|
||||||
├── <board_name>.dts
|
├── <board_name>.dts
|
||||||
├── <keyboard_name>.keymap
|
├── <keyboard_name>.keymap
|
||||||
├── board.cmake
|
├── board.cmake
|
||||||
|
├── board.yml
|
||||||
└── <keyboard_name>.zmk.yml
|
└── <keyboard_name>.zmk.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
These files include [base Kconfig files](https://docs.zephyrproject.org/4.1.0/build/kconfig/index.html):
|
These files include [base Kconfig files](https://docs.zephyrproject.org/4.1.0/build/kconfig/index.html):
|
||||||
|
|
||||||
- A `Kconfig.board` file that defines the toplevel [Kconfig](https://docs.zephyrproject.org/4.1.0/build/kconfig/index.html) items for the board, including which SoC Kconfig setting it depends on.
|
- A `Kconfig.<board_name>` file that defines the toplevel [Kconfig](https://docs.zephyrproject.org/4.1.0/build/kconfig/index.html) items for the board, including selecting the corresponding SoC Kconfig setting.
|
||||||
- A `Kconfig.defconfig` file that sets some initial defaults when building this keyboard. This usually includes:
|
- A `Kconfig.defconfig` file that sets some initial defaults when building this keyboard. This usually includes:
|
||||||
- Setting [`ZMK_KEYBOARD_NAME`](../../config/system.md#general) to a value, for the product name to be used for USB/BLE info,
|
- Setting [`ZMK_KEYBOARD_NAME`](../../config/system.md#general) to a value, for the product name to be used for USB/BLE info
|
||||||
- Setting [`ZMK_USB`](../../config/system.md#usb) and/or [`ZMK_BLE`](../../config/system.md#bluetooth) for the default values for which HID transport(s) to enable by default
|
|
||||||
|
|
||||||
[Configuration files](../../config/index.md#kconfig-files) that set the visible Kconfig symbols:
|
[Configuration files](../../config/index.md#kconfig-files) that set the visible Kconfig symbols:
|
||||||
|
|
||||||
- A `<board_name>_defconfig` file that forces specific Kconfig settings that are specific to this hardware configuration.
|
- A `<board_name>_defconfig` file that forces specific Kconfig settings that are specific to this hardware configuration.
|
||||||
These are mostly SoC settings around the specific hardware configuration.
|
These tend to be settings enabling various drivers or features, e.g. GPIO, USB support, or memory settings for ZMK Studio.
|
||||||
|
|
||||||
[Devicetree files](../../config/index.md#devicetree-files):
|
[Devicetree files](../../config/index.md#devicetree-files):
|
||||||
|
|
||||||
@@ -107,6 +107,7 @@ These files include [base Kconfig files](https://docs.zephyrproject.org/4.1.0/bu
|
|||||||
And other miscellaneous ones:
|
And other miscellaneous ones:
|
||||||
|
|
||||||
- A `board.cmake` file with CMake directives for how to flash to the device.
|
- A `board.cmake` file with CMake directives for how to flash to the device.
|
||||||
|
- A [`board.yml`](https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#write-your-board-yaml) file containing information about the board and variants.
|
||||||
- A `<keyboard_name>.zmk.yml` file containing [metadata](hardware-metadata-files.md) for the keyboard.
|
- A `<keyboard_name>.zmk.yml` file containing [metadata](hardware-metadata-files.md) for the keyboard.
|
||||||
|
|
||||||
See Zephyr's [board porting guide](https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html) for information on creating a new board.
|
See Zephyr's [board porting guide](https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html) for information on creating a new board.
|
||||||
|
|||||||
Reference in New Issue
Block a user