.. _nrf_desktop_board_configuration: nRF Desktop: Board configuration ################################ .. contents:: :local: :depth: 2 The nRF Desktop application is modular. Depending on requested functions, it can provide mouse, keyboard, or dongle functionality. The selection of modules depends on the chosen role and also on the selected reference design. For more information about modules available for each configuration, see :ref:`nrf_desktop_architecture`. For a board to be supported by the application, you must provide a set of configuration files at :file:`applications/nrf_desktop/configuration/your_board_name`. The application configuration files define both a set of options with which the nRF Desktop application will be created for your board and the selected :ref:`nrf_desktop_requirements_build_types`. Include the following files in this directory: Mandatory configuration files * Application configuration file for the :ref:`debug build type `. * Configuration files for the selected modules. Optional configuration files * Application configuration files for other build types. * Configuration file for the bootloader. * Configuration file for the sysbuild. * Memory layout configuration. * DTS overlay file. See :ref:`porting_guide_adding_board` for information about how to add these files. .. _nrf_desktop_board_configuration_files: nRF Desktop board configuration files ************************************* The nRF Desktop application comes with configuration files for the following reference designs: Sample mouse or keyboard (``nrf54l15dk/nrf54l05/cpuapp``) * The configuration :ref:`emulates the nRF54L05 SoC ` on the nRF54L15 DK. * The build types allow to build the application as a mouse or a keyboard. * Inputs are simulated based on the hardware button presses. * On the nRF54L05 SoC, you can only use the **GPIO1** port for PWM hardware peripheral output. Because of that, on the DK PCA10156 revision v0.9.3, **LED 0** and **LED 2** cannot be used for PWM output. You can still use these LEDs with the PWM LED driver, but you must set the LED color to ``LED_COLOR(255, 255, 255)`` or ``LED_COLOR(0, 0, 0)``. This ensures the PWM peripheral is not used for the mentioned LEDs. * Only Bluetooth LE transport is enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer. Most of the configurations use the Low Latency Packet Mode (LLPM). Only the ``hid_sci``, ``release_hid_sci``, ``hid_sci_keyboard``, and ``release_hid_sci_keyboard`` configurations use HID SCI (Shorter Connection Intervals) and disable LLPM. * The preconfigured ``debug`` configurations do not use the bootloader due to memory size limits. In the ``debug`` configurations, logs are provided through the UART. For detailed information on working with the nRF54L15 DK, see the :ref:`nrf:ug_nrf54l` documentation. * The preconfigured ``release`` configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. All of the ``release`` configurations enable hardware cryptography for the MCUboot bootloader. The application image is verified using a pure ED25519 signature. The public key that MCUboot uses for validating the application image is securely stored in the hardware Key Management Unit (KMU). For more details about KMU, see :ref:`nrf:ug_kmu_guides`. * The board supports the ``release`` :ref:`nrf_desktop_bluetooth_guide_fast_pair` configuration that acts as a mouse (``release_fast_pair`` file suffix). Sample mouse or keyboard (``nrf54l15dk/nrf54l10/cpuapp``) * The configuration :ref:`emulates the nRF54L10 SoC ` on the nRF54L15 DK. * The build types allow to build the application as a mouse or a keyboard. * Inputs are simulated based on the hardware button presses. * On the nRF54L10 SoC, you can only use the **GPIO1** port for PWM hardware peripheral output. Because of that, on the DK PCA10156 revision v0.9.3, **LED 0** and **LED 2** cannot be used for PWM output. You can still use these LEDs with the PWM LED driver, but you must set the LED color to ``LED_COLOR(255, 255, 255)`` or ``LED_COLOR(0, 0, 0)``. This ensures the PWM peripheral is not used for the mentioned LEDs. * Only Bluetooth LE transport is enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer. Most of the configurations use the Low Latency Packet Mode (LLPM). Only the ``hid_sci``, ``release_hid_sci``, ``hid_sci_keyboard``, and ``release_hid_sci_keyboard`` configurations use HID SCI (Shorter Connection Intervals) and disable LLPM. * In ``debug`` configurations, logs are provided through the UART. For detailed information on working with the nRF54L15 DK, see the :ref:`nrf:ug_nrf54l` documentation. * The configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. All of the configurations enable hardware cryptography for the MCUboot bootloader. The application image is verified using a pure ED25519 signature. The public key that MCUboot uses for validating the application image is securely stored in the hardware Key Management Unit (KMU). For more details about KMU, see :ref:`nrf:ug_kmu_guides`. * The board supports the ``debug`` :ref:`nrf_desktop_bluetooth_guide_fast_pair` configuration that acts as a mouse (``fast_pair`` file suffix). The configuration uses the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``), and supports firmware updates using the :ref:`nrf_desktop_dfu` and :ref:`nrf_desktop_dfu_mcumgr`. Sample mouse or keyboard (``nrf54l15dk/nrf54l15/cpuapp``) * The configuration uses the nRF54L15 DK. * The build types allow to build the application as a mouse or a keyboard. * Inputs are simulated based on the hardware button presses. * On the nRF54L15 SoC, you can only use the **GPIO1** port for PWM hardware peripheral output. Because of that, on the DK PCA10156 revision v0.9.3, **LED 0** and **LED 2** cannot be used for PWM output. You can still use these LEDs with the PWM LED driver, but you must set the LED color to ``LED_COLOR(255, 255, 255)`` or ``LED_COLOR(0, 0, 0)``. This ensures the PWM peripheral is not used for the mentioned LEDs. * Only Bluetooth LE transport is enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer. Most of the configurations use the Low Latency Packet Mode (LLPM). Only the ``hid_sci``, ``release_hid_sci``, ``hid_sci_keyboard``, and ``release_hid_sci_keyboard`` configurations use HID SCI (Shorter Connection Intervals) and disable LLPM. * In ``debug`` configurations, logs are provided through the UART. For detailed information on working with the nRF54L15 DK, see the :ref:`nrf:ug_nrf54l` documentation. * The configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. All of the configurations enable hardware cryptography for the MCUboot bootloader. The application image is verified using a pure ED25519 signature. The public key that MCUboot uses for validating the application image is securely stored in the hardware Key Management Unit (KMU). For more details about KMU, see :ref:`nrf:ug_kmu_guides`. * The board supports the ``debug`` :ref:`nrf_desktop_bluetooth_guide_fast_pair` configuration that acts as a mouse (``fast_pair`` file suffix). The configuration uses the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``), and supports firmware updates using the :ref:`nrf_desktop_dfu` and :ref:`nrf_desktop_dfu_mcumgr`. Sample mouse, LLPM dongle, or HID SCI dongle (``nrf54lm20dk/nrf54lm20a/cpuapp``, ``nrf54lm20dk/nrf54lm20b/cpuapp``) * The configuration uses the nRF54LM20 DK. * The build types allow to build the application as a mouse, an LLPM supporting dongle, or an HID SCI (Shorter Connection Intervals) supporting dongle. * In mouse configurations, inputs are simulated based on the hardware button presses. Bluetooth LE and USB High-Speed transports are enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer. Most of the mouse configurations use the Low Latency Packet Mode (LLPM). The ``hid_sci`` and ``release_hid_sci`` configurations use HID SCI (Shorter Connection Intervals) and disable LLPM. USB High-Speed is configured to use the USB next stack (:kconfig:option:`CONFIG_USB_DEVICE_STACK_NEXT`). The :option:`CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE` and :option:`CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB` Kconfig options are enabled in mouse configurations to improve the HID report rate over USB. * In ``dongle`` and ``release_dongle`` configurations, the application is configured to act as a dongle that forwards data from both mouse and keyboard. Bluetooth uses Nordic Semiconductor's SoftDevice Link Layer and Low Latency Packet Mode (LLPM). The dongle is configured to act as a central. Input data comes from Bluetooth and is retransmitted to USB. * In ``dongle_4llpmconn`` and ``release_dongle_4llpmconn`` configurations, the application is configured to act as a dongle that supports up to four simultaneous Bluetooth LE connections in Low Latency Packet Mode. * In ``hid_sci_dongle`` and ``release_hid_sci_dongle`` configurations, the application is configured to act as a dongle that forwards data from both mouse and keyboard. Bluetooth uses Nordic Semiconductor's SoftDevice Link Layer and is configured to act as a central. Input data comes from Bluetooth and is retransmitted to USB. HID Shorter Connection Intervals (SCI) are used to negotiate the connection parameters with the nRF Desktop peripheral. * In the debug versions of the configurations, logs are provided through the UART. For detailed information on working with the nRF54LM20 DK, see the :ref:`nrf:ug_nrf54l` documentation. * In ``llvm`` configurations, the partition layout is different to accommodate for the higher memory footprint of the ``llvm`` toolchain. * Generally, with the exception of the ``ram_load`` and ``release_ram_load`` configurations, the configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. These configurations enable hardware cryptography using KMU for the MCUboot bootloader. The application image is verified using a pure ED25519 signature. The public key that MCUboot uses for validating the application image is securely stored in the hardware Key Management Unit (KMU). For more details about KMU, see :ref:`nrf:ug_kmu_guides`. * The ``ram_load`` and ``release_ram_load`` configurations use the MCUboot bootloader built in the RAM load mode (``MCUBOOT``) and support firmware updates using the :ref:`nrf_desktop_dfu`. Configurations in this bootloader mode use the same security features as direct-xip mode (``MCUBOOT+XIP``), including hardware cryptography, signature type, and public key storage. The application code is executed from the RAM in this mode to improve the HID report rate over USB. For more details on the RAM load mode, see the MCUboot :ref:`nrf_desktop_configuring_mcuboot_bootloader_ram_load` documentation section. Sample mouse or keyboard (``nrf54ls05dk/nrf54ls05a/cpuapp``, ``nrf54ls05dk/nrf54ls05b/cpuapp``) * The configuration uses the nRF54LS05 DK. * The build types allow to build the application as a mouse or a keyboard. * Inputs are simulated based on the hardware button presses. * Only Bluetooth LE transport is enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer. Most of the configurations use the Low Latency Packet Mode (LLPM). Only the ``hid_sci``, ``release_hid_sci``, ``hid_sci_keyboard``, and ``release_hid_sci_keyboard`` configurations use HID SCI (Shorter Connection Intervals) and disable LLPM. * The nRF54LS05 SoC does not have hardware cryptography acceleration or Key Management Unit (KMU). Software-based cryptography is used instead. * The ``debug`` configurations do not use the bootloader due to memory size limits (508 KB RRAM). In the ``debug`` configurations, logs are provided through the UART. * The ``release`` configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. The application image is verified using a pure ED25519 signature with software cryptography. * The board supports the ``release`` :ref:`nrf_desktop_bluetooth_guide_fast_pair` configuration that acts as a mouse (``release_fast_pair`` file suffix). Sample mouse (``nrf54lc10dk/nrf54lc10a/cpuapp``) * The configuration uses the nRF54LC10 DK. * The build types allow to build the application as a mouse. * Inputs are simulated based on the hardware button presses. * Only Bluetooth LE transport is enabled. Bluetooth LE is configured to use Nordic Semiconductor's SoftDevice Link Layer and Low Latency Packet Mode (LLPM). * In ``debug`` configurations, logs are provided through the UART. * The configurations use the MCUboot bootloader built in the direct-xip mode (``MCUBOOT+XIP``) and support firmware updates using the :ref:`nrf_desktop_dfu`. For detailed information on working with the nRF54LC10 DK, see the :ref:`nrf:ug_nrf54l` documentation. All of the configurations enable hardware cryptography for the MCUboot bootloader. The application image is verified using a pure ED25519 signature. The public key that MCUboot uses for validating the application image is securely stored in the hardware Key Management Unit (KMU). For more details about KMU, see :ref:`nrf:ug_kmu_guides`.