nrfconnect-sdk-zephyr

repository·main·Indexed 19 days ago

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

A repository containing a Python-based firmware update utility for Sierra Wireless HL78xx cellular modems, an integration layer for NXP's MCUX SDK within Zephyr RTOS, and various samples including TensorFlow Lite for Microcontrollers (TFLite Micro) models for sine wave and gesture recognition. It also includes a Zephyr Build Dashboard tool for generating HTML reports on build information, memory usage, and Kconfig configurations.

Tokens
366.5K
Snippets
1.4K
Records
2.2K
Agent score
65%

What's inside nrfconnect-sdk-zephyr

  1. Overview of Public Broadcast Profile (PBP) Public Broadcast Source

    main

    This application demonstrates the Public Broadcast Profile (PBP) Public Broadcast Source functionality. It starts extended advertising and includes a Broadcast Audio Announcement. The advertised broadcast audio stream quality cycles between high and standard quality every 15 seconds.

    Relevant APIs: bluetooth, bt_audio, bt_bap, bt_pbp.

  2. Overview of the NUS Console Snippet

    main

    The nus-console snippet is a configuration that redirects serial console output to a UART over NUS (Bluetooth LE) instance. This allows you to interact with the device's console via a Bluetooth Low Energy connection instead of a physical serial cable. The specific Bluetooth Serial device used must be configured via devicetree.

    west build -S nus-console [...]
  3. Overview of the iBeacon sample

    main

    The bluetooth_ibeacon sample demonstrates how to use the Bluetooth LE GAP Broadcaster role to advertise an Apple iBeacon.

    Key Features:

    • Advertises an Apple iBeacon using hard-coded UUID, major, and minor values (suitable for demonstrations, not production).
    • Allows calibration of the RSSI at 1 meter distance using the IBEACON_RSSI build variable.

    Note: Because the iBeacon identifiers are hard-coded, this sample is intended for quick demonstrations of iBeacon functionality rather than production deployment.

  4. Overview of the USB CDC-ACM bridge sample

    main
    The usb-cdc-acm-bridge sample demonstrates how to use the USB CDC-ACM driver to implement a serial port bridge. It bridges a standard hardware UART on a supported board to a USB CDC-ACM interface. When the board is plugged into a host (e.g., a Linux PC), the host sees a CDC-ACM device. Data sent to the CDC-ACM interface is echoed to the hardware UART, and configuration changes (such as bitrate) applied to the CDC-ACM interface are propagated to the hardware UART port.
  5. Overview of BAP Broadcast Sink Sample

    main

    The bluetooth_bap_broadcast_sink sample demonstrates Basic Audio Profile (BAP) Broadcast Sink functionality. The application performs the following workflow:

    1. Scans for BAP Broadcast Sources.
    2. Synchronizes to the first broadcast source found.
    3. Listens to the source until it is stopped.

    To target a specific broadcast source name, use the Kconfig option CONFIG_TARGET_BROADCAST_NAME. If left as an empty string (the default), the sink will listen to all available broadcast sources.

  6. Overview of the MIMXRT1160-EVK Board

    main

    The MIMXRT1160-EVK is a dual-core development kit based on the NXP i.MX RT1160 MCU. It features a high-performance Cortex-M7 core running at 600 MHz and a Cortex-M4 core running at 240 MHz.

    Key Hardware Specifications:

    • MCU: MIMXRT1166DVM6A (Cortex-M7 @ 600MHz, Cortex-M4 @ 240MHz).
    • Memory: 2MB SRAM (512KB TCM for M7, 256KB TCM for M4), 512 Mbit SDRAM, 128 Mbit QSPI Flash, and 512 Mbit Octal Flash.
    • Connectivity: 10/100/1000 Mbit/s Ethernet, USB 2.0 (OTG and Host), MIPI LCD/CSI connectors, and CAN bus.
    • Audio: 3.5 mm jack, board-mounted microphone, and speaker outputs.
    • Debug: JTAG 20-pin connector and on-board OpenSDA with DAPLink.
  7. Overview of the MIMXRT1040_EVK board

    main

    The mimxrt1040_evk is an NXP i.MX RT1040 crossover MCU evaluation kit. It features an Arm® Cortex®-M7 core running at 600 MHz.

    Key Hardware Specifications:

    • MCU: MIMXRT1042XJM5B (600 MHz, 512 KB TCM)
    • External Memory:
      • 256 MBit SDRAM (W9825G6KH) via SEMC controller (enabled via device configuration data block).
      • 64 Mbit QSPI Flash (W25Q64JVSSIQ) via FLEXSPI controller (enabled via flash configuration block; supported for XIP only).
    • Connectivity: 10/100 Mbit/s Ethernet, USB 2.0 OTG, CAN bus, and Arduino interface.
    • Audio: 3.5 mm stereo jack and board-mounted microphone.
    • Debug: JTAG 20-pin connector and OpenSDA with DAPLink.
  8. Overview of the qemu_x86 board configuration

    main

    The qemu_x86 board configuration is used to emulate the X86 architecture. It provides support for an x86 Minute IA (Lakemont) CPU and includes the following hardware devices:

    • HPET: High Precision Event Timer (configured with a 25 MHz frequency).
    • APIC: Advanced Programmable Interrupt Controller.
    • NS16550 UART: A single serial communication channel using the NS16550 serial driver in polling mode.

    Note on Serial Port: To switch from polling mode to interrupt-driven mode, enable the UART_INTERRUPT_DRIVEN Kconfig option. If SLIP networking is enabled, an additional serial port will be used.

  9. Overview of LoRaWAN FUOTA Sample

    main

    The lorawan-fuota sample demonstrates a Firmware-Upgrade Over The Air (FUOTA) operation using LoRaWAN. The process is initiated by the application and subsequently runs in the background within its own dedicated work queue thread.

    To function correctly, the sample relies on the following LoRa Alliance services:

    • Application Layer Clock Synchronization (TS003-2.0.0)
    • Remote Multicast Setup (TS005-1.0.0)
    • Fragmented Data Block Transport (TS004-1.0.0)

    Workflow:

    1. The application starts the FUOTA process.
    2. The process runs in a background work queue thread.
    3. Upon successful receipt of the firmware upgrade, the application receives a notification via a callback.
    4. The application can then reboot the device into MCUboot to apply the upgrade.

    Requirement: A LoRaWAN Application Server that implements the specified LoRa Alliance services is required.

  10. Overview of Public Broadcast Profile (PBP) Public Broadcast Sink

    main

    The bluetooth_public_broadcast_sink sample demonstrates Public Broadcast Profile (PBP) functionality. The application operates by scanning for PBP Public Broadcast Sources. Once a source is found, the sink synchronizes to it. The source defines a Public Broadcast Announcement, which includes a High Quality Public Broadcast Audio Stream configuration.

    Relevant APIs for this functionality include:

    • bluetooth
    • bt_audio
    • bt_bap
    • bt_pacs
    • bt_pbp
  11. Overview of the AMP audio loopback sample

    main

    This sample demonstrates Asymmetric Multiprocessing (AMP) on NXP i.MX RTxxx platforms using separate projects for the Cortex-M and DSP domains. The two domains are built together into a single image using Sysbuild.

    Domain Responsibilities:

    • Cortex-M domain: Handles DSP domain setup (clock and power configuration, code loading, and starting the DSP).
    • DSP domain: Writes a "hello world" message to the console UART, initializes audio hardware, and performs simultaneous audio capture and playback (loopback/echo).