Firmware Development

nRF Connect SDK Intermediate

9.1/10 (79)
736already enrolled

Course description

The nRF Connect SDK Intermediate course is a self-paced, hands-on online course that is aimed at empowering developers to master advanced topics and techniques for developing applications using the nRF Connect SDK. The course is designed to enable developers with some experience in the nRF Connect SDK to take their skills to the next level.

The course covers a wide range of topics, including thread management, data passing, debugging applications, adding support for custom boards, interacting with the SPI, ADC, and PWM peripherals, device driver development, and secure Device Firmware Update (DFU/FOTA) over different transports. The skills and knowledge gained from this course are applicable to any of Nordic Semiconductor’s devices, including the nRF91, nRF70, nRF53, and nRF52 Series.

With a focus on practical, hands-on learning, the nRF Connect SDK Intermediate course enables participants to dive deeper into the intricacies of the nRF Connect SDK and gain a more comprehensive understanding of its features. Through this course, developers will gain a deeper understanding of the underlying technology and techniques required to develop robust and reliable applications on Nordic Semiconductor devices.

What you'll learn


Who should enroll in this course?

The course is designed for embedded software engineers, firmware developers, students, makers, or anyone with prior experience with the nRF Connect SDK/Zephyr RTOS and wishes to take their skills to the next level.

Estimated time

The estimated time needed to finish this course is about ten to twelve hours in total. However, the actual time needed to finish the course will highly depend on your technical background and experience.

Learning Objectives

  • Gain a full understanding of the different execution options and their determinism and preemption nature.

  • Fully comprehend the life cycle of a thread.

  • Gain a good grasp of the Zephyr Kernel options and how the scheduler works.

  • Understand the software and timing implications of adding subsystem and network stacks into your application.

  • Learn how to schedule application tasks using the right execution primitive with the right priority level.

  • Learn how to pass data between threads using message queues and FIFOs safely.

  • Practice through hands-on exercises how to create different types of threads and exchange data between them.

  • Delve into the common pitfalls with nRF Connect SDK applications, including stack overflows, concurrency-related issues, missing devicetree entries, and Kconfig issues.

  • Learn about build errors and fatal errors, as well as about common tools to debug these (core dump and addr2line).

  • Practice through hands-on exercises how to debug an application in Visual Studio Code using the debugger functionality.

  • Practice through hands-on exercises how to debug a fault error using core dump and addr2line.

  • Examine the hardware support hierarchy in the nRF Connect SDK, as well as explore the different options to create custom board files and the associated advantages and disadvantages.

  • Understand the role of each of the mandatory files required to describe your hardware in the nRF Connect SDK/Zephyr RTOS and all other optional and special use case files.

  • Learn how to convert hardware schematics to devicetree syntax using the nRF Connect for VS Code extension and how to write your own Kconfig files for your own custom hardware.

  • Practice through a hands-on exercise how to create a custom board for a single-core SoC.

  • Practice through a hands-on exercise how to create a custom board for a multi-core & TF-M capable SoC.

  • Understand the core principles of Pulse-width modulation (PWM), Serial Peripheral Interface(SPI), and  Analog-to-digital converter (ADC).

  • Examine the PWM, SPI, and ADC peripherals inside Nordic Semiconductor SoC and SiP, and understand their capabilities and features.

  • Learn through hands-on exercises the Zephyr APIs to interact with PWM, SPI, and ADC.

  • Understand the advantages and disadvantages of using nrfx drivers directly instead of Zephyr APIs to interact with peripherals.

  • Learn how interrupts are handled in the nRF Connect SDK/Zephyr RTOS.

  • Explore the available options for adding a custom device driver.

  • Learn how to pick a standard API for your custom device driver.

  • Learn how to create custom API for your device driver.

  • Practice through hands-on exercises how to add a custom device driver.

  • Understand what a bootloader is and why we need it.

  • Learn the essential options in MCUboot, and the options to perform DFU/FOTA in MCUboot.

  • Practice through hands-on exercises how to enable and configure MCUboot.

  • Practice through hands-on exercises how to perform DFU over different transports (UART, USB, External Flash), both from the application and from the bootloader.

  • Practice through hands-on exercises how to perform Firmware Updates Over the Air (FOTA) over Bluetooth Low Energy, Wi-Fi, and Cellular.

Details

Intermediate level
8 lessons
10–12 hours to complete
Certificate of completion

Prerequisites

Hardware Requirements

System Requirements

  • A computer running Windows, macOS, or Linux
  • nRF Connect SDK v2.5.2 or above installed on your computer
  • An up-to-date web browser

Software requirements​

We will go through how to download and install these tools throughout the course:

Course Content

Expand All
Register an account
Already have an account? Log in
(All fields are required unless specified optional)

  • 8 or more characters
  • Upper and lower case letters
  • At least one number or special character

Forgot your password?
Enter the email associated with your account, and we will send you a link to reset your password.