nRF Connect SDK nRF Repository

repository·main·Indexed 23 days ago

https://github.com/nrfconnect/sdk-nrf

Documentation for the nRF Connect SDK nRF repository, featuring the High-Performance Framework (HPF) for GPIO and MSPI on nRF54 series devices, the Nordic Connectivity Bridge application for Thingy:91, and development tools including Twister test harnesses and Vale documentation linting.

Tokens
236.7K
Snippets
297
Records
1.4K
Agent score
80%

What's inside nrfconnect-sdk-nrf

  1. Overview of PPI Sequencer with SPI

    main

    The PPI Sequencer with SPI sample demonstrates how to use the ppi_seq_i2c_spi driver to perform periodic SPI transfers triggered by the Programmable Peripheral Interconnect (PPI).

    Key behaviors:

    • Triggering: SPI transfers are triggered automatically via PPI.
    • CPU Wakeup: The CPU is woken up only after every 16 transfers have been completed, minimizing power consumption.
    • Configurable Periods: The sample can run sequences of SPI transfers with various periods ranging from 1 ms to 100 ms.
  2. Overview of SoftAP Wi-Fi Provisioning

    main

    This sample demonstrates how to use the lib_softap_wifi_provision library to provision Wi-Fi credentials to a Nordic Semiconductor Wi-Fi device using SoftAP (Software Access Point) mode.

    How it works

    1. SoftAP Mode: After booting, the device advertises a SoftAP network. The SSID is determined by the CONFIG_SOFTAP_WIFI_PROVISION_SSID Kconfig option (default is nrf-wifiprov).
    2. Client Connection: A client (Station/STA), such as a smartphone or a computer, connects to this SoftAP network.
    3. Credential Provisioning: The client provides Wi-Fi credentials (SSID, passphrase, etc.) to the device via HTTP resources provided by the library.
    4. Connection: Once credentials are received, the device stops the SoftAP and attempts to connect to the provisioned Wi-Fi network.
  3. Overview of IPC radio firmware

    main

    The IPC radio firmware allows a different core in a multicore device to use the radio peripheral. It acts as a general serialized radio peripheral and supports both Bluetooth® Low Energy and IEEE 802.15.4 simultaneously.

    Bluetooth Low Energy can be configured in two modes:

    1. HCI IPC serialization: Exposes Bluetooth controller support via the IPC subsystem.
    2. nRF RPC Bluetooth Low Energy: Runs the full BLE stack and receives serialized function calls (including bt_gap, bluetooth_connection_mgmt, bt_gatt, and Bluetooth Cryptography) which it decodes and executes.
  4. Overview of Enhanced ShockBurst (ESB) with Bluetooth LE

    main

    The esb_ptx_ble sample demonstrates how to run the Enhanced ShockBurst (ESB) protocol in transmitter mode concurrently with Bluetooth® LE (BLE) services.

    This is achieved using the MPSL (Multiprotocol Service Layer) time slot mechanism, which allows both protocols to share radio time without interference. The sample specifically runs the LBS (LED Button Service) alongside the ESB transmitter, enabling simultaneous wireless communication: transmitting packets via ESB while providing BLE services like remote LED control and button state notifications.

  5. Overview of the Download sample

    main

    The Download sample demonstrates how to download a file from an HTTP or CoAP server using the lib_downloader library. It supports optional TLS (for HTTP) or DTLS (for CoAP) security.

    Workflow:

    1. Initializes the device (including nrf_modem and AT communications for cellular).
    2. Provisions certificates if CONFIG_SAMPLE_PROVISION_CERT and CONFIG_SAMPLE_SECURE_SOCKET are enabled.
    3. Establishes a network connection.
    4. Sets up secure socket options.
    5. Downloads the file using lib_downloader.

    Note for nRF91 Series: Certificate provisioning must be performed before connecting to the LTE network, as certificates can only be provisioned when the device is disconnected.

  6. Overview of Bluetooth Mesh DFU Distributor Sample

    main

    The Bluetooth Mesh DFU distributor sample demonstrates how to distribute device firmware over a Bluetooth Mesh network. It implements the Firmware Distribution role of the Bluetooth Mesh DFU subsystem.

    Key features include:

    • Configuration as an application for MCUboot.
    • Use of the mcumgr image management subsystem to upload firmware images to the Distributor.
    • A set of shell commands to control firmware distribution over the mesh network.
    • Support for self-update functionality.
  7. Overview of the Connectivity Bridge application

    main

    The Connectivity bridge application is designed for Thingy:91 and Thingy:91 X hardware. It functions as a USB composite device that exposes two UART interfaces to a USB host as CDC ACM devices, alongside a USB Mass Storage device containing utility files (e.g., README.txt).

    UART to CDC ACM Mapping

    UART InterfaceCDC ACM port
    UART_0CDC_0
    UART_1CDC_1

    Bluetooth LE Support

    You can enable a Bluetooth® LE UART Service (based on the Nordic UART Service/NUS) by enabling the configuration option CONFIG_BRIDGE_BLE_ENABLE. When enabled, the service maps to UART_0:

    USB InterfaceService mapped
    Bluetooth LEUART_0

    Note: The Bluetooth LE interface is disabled by default for security (no encryption/authentication). To enable it at runtime, you must modify the Config.txt file located on the USB Mass Storage device.

  8. Overview of the Application JWT sample

    main

    The app_jwt sample demonstrates how an application core can generate signed JSON Web Tokens (JWTs). It produces two types of tokens:

    1. Simplified JWT: Contains fewer fields (sub and exp claims) and is signed using a user-generated ECDSA keypair.
    2. Full JWT: Contains complete claims (sub, aud, iss, iat, and exp) and includes a kid field in the header. This version is signed using the IAK key.

    The process involves creating an ECDSA secp256r1 keypair via PSA Crypto interfaces, using the returned key_id as a sec_tag for signing.

  9. Overview of the UDP sample

    main
    The UDP sample demonstrates sequential transmission of UDP packets to a server using an IP-connected device. It supports connectivity via LTE (using nRF91 Series DK or Thingy:91) or Wi-Fi (using nRF7002 DK or nRF54L15 DK with nRF7002-EB II shield). Once a network connection is established, the sample sets up a UDP socket and continuously transmits data to a configurable IP address and port.
  10. Overview of the Peripheral CTS client sample

    main

    The Peripheral CTS client sample implements a Bluetooth® Low Energy Current Time Service (CTS) client. It connects to a CTS Server (such as a Bluetooth LE dongle running a specific setup) to read the current time. Once the time is retrieved, the client prints the date, time, and adjustment reasons to the UART console.

    Key Functionality:

    • Connects to a CTS Server.
    • Reads the Current Time characteristic (UUID 0x2A2B).
    • Responds to time updates via notifications.
    • Provides visual feedback via LEDs and user interaction via buttons.
  11. Overview of the Bluetooth Mesh Light Switch sample

    main

    The Bluetooth Mesh light switch sample demonstrates how to implement a mesh client model application to control light sources (servers) within a mesh network.

    Key features:

    • Generic OnOff Client Model: Implements this model to manipulate the state of Generic OnOff Server models (like the bluetooth_mesh_light sample).
    • Multi-instance support: Instantiates up to four Generic OnOff Client model instances, typically mapped to the physical buttons on a development kit.
    • Low Power Node (LPN) support: Can be configured to run as an LPN to significantly reduce power consumption.
    • Provisioning: Uses the nRF Mesh mobile app for provisioning and configuring key bindings, publication, and subscription settings.
  12. Overview of the Bluetooth Central SMP Client sample

    main

    The Bluetooth Central Simple Management Protocol (SMP) Client sample demonstrates how to communicate with an SMP Server using the Simple Management Protocol.

    Key Capabilities:

    • Connects to an SMP Server via Bluetooth Low Energy (BLE).
    • Performs MTU size negotiation.
    • Discovers the server's GATT database.
    • Configures the DFU SMP Client.
    • Sends an echo command to the server.
    • Receives and decodes CBOR-encoded responses using the zcbor library.

    Important Note: This sample is for demonstrating communication between an SMP Client and an SMP Server; it does not provide the functionality to program a device using DFU.