🛠️

Custom Board Development with NRF Connect SDK

Nov 22, 2024

Adding Custom Board Support in NRF Connect SDK

Presenter Information

  • Name: Ali Aljani
  • Role: Developer Marketing Manager at Nordic Semiconductor

Agenda for Webinar

  1. What is a board in the context of NRF Connect SDK and Zephyr?
  2. Hardware support hierarchy in NRF Connect SDK and Zephyr
  3. Board files: mandatory, optional, and special use cases
  4. Considerations for custom boards based on nRF91 and nRF53 series
  5. Hands-on demo: Building a custom board from scratch

Key Concepts

Definition of a Board

  • A board refers to the target hardware for application development and execution.
  • Examples include development kits, prototyping platforms, modules, and custom PCBs.
  • Important attributes include:
    • Exact chip used (SoC or SIP)
    • Peripheral configurations
    • Components (sensors, connectors, etc.)

Portability

  • NRF Connect SDK is designed with high portability.
  • Applications can be moved across different hardware by changing the build target.

Hardware Support Hierarchy

  1. Board Layer: Specific instance of an SoC and its peripherals; needs to be written for custom hardware.
  2. SoC Layer: Describes the exact SoC, including memory and peripherals; provided by the SDK.
  3. SoC Series and Family Layers: Groups related SoCs together.
  4. CPU Core and Architecture: Provided by the SDK; includes low-level functions like boot-up sequences.

Board Files

  • Mandatory Files: Required for any custom board implementation.
    • Device Tree Files
    • KConfig Files
  • Optional/Special Use Case Files: Include documentation, CMake files, etc.

Special Considerations for nRF91 and nRF53 Series

  • Architecture:
    • nRF52: ARMv7M architecture, single-core, no trust zone.
    • nRF53/nRF91: ARMv8M architecture, multi-core with trust zone support.
  • Trusted Firmware M (TFM): Provides a secure processing environment.
    • Two options: Using TFM (secure and non-secure processing environments) or not using TFM (single image with full privilege).

Hands-on Demo

Steps to Create a Custom Board Definition

  1. Set Up Environment: Open Visual Studio Code with NRF Connect SDK.
  2. Create Board Files: Using a wizard to generate board files for the nRF52A33 SoC.
  3. **Define Configuration:
    • Specify board name (e.g., dev academy nRF52 833).
    • Generate mandatory KConfig files using the wizard.
  4. Device Tree File: Structure to reflect board hardware, including peripherals.
  5. Utilize Visual Editor: Enables simple population of device tree syntax.
  6. Testing: Build the application and check console output to verify board setup.

Resources

  • Nordic Developer Academy: Free online courses about SDK and Zephyr.
  • Dedicated courses for Bluetooth Low Energy, cellular protocols, and more.
  • Guides and documentation from the Zephyr project.

Q&A Session

  • Open floor for questions and clarifications.