Nordic nRF5x BLE In-Depth Training Course (Foundation Level)
Self-paced training course which provides in-depth technical exposure on the Bluetooth Low Energy (BLE) System on Chip (SoC) by Nordic Semiconductor. Namely, the nRF5x family (Both nRF52 and nRF51) which has seven chips options: nRF52840, nRF52832, nRF52811, nRF52810, nRF51824, nRF51822,and nRF51422. Many of these chips support multiple short-range wireless protocols; BLE, ANT, Thread/Zigbee through the 802.15.4 MAC, and 2.4Ghz propitiatory protocols; However, the main focus of this course is on Bluetooth Low Energy/Bluetooth 5. Nordic Semiconductor is one of the lead pioneers in the Bluetooth Low Energy sector. They have an estimate of about 50% of the global market share in BLE. Their chips are used in a wide spectrum of branded Bluetooth-enabled consumer electronic products worldwide, like the well-established Logitech wireless keyboards and mice.
This level of the course presents its in-depth information in an organized, step-by-step sequence along with commentary from one of our instructors to help you master the essentials of the nRF5x SoCs hardware, the nRF5 SDK software stack, and the SEGGER embedded studio from the ground up. In addition, most lessons include hands-on exercises to help reinforce the concepts presented.
What you will learn ? (Foundation Level Objectives)
- Get familiarized with the nRF5x family, it’s portfolio, available chip options, available development boards, and their typical applications.
- Provides a summary comparison between the nRF51 series and the nRF52 series of the nRF5x family.
- Identify the right nRF5x SoC for your project.
- Understand the hardware architectures of the nRF5x family, its computational capabilities, unique ultra low power features (Programmable Peripheral Interconnect-PPI, Flexible GPIO, Automated Power Management), available hardware peripherals, system blocks, and memories.
- Present all available methods and Integrated Development Environments (IDEs) to program and develop firmware for the nRF5x family and compare them in depth.
- Examine thoroughly the nRF5 Software Development Kit ( nRF5 SDK) by Nordic Semiconductor and understand its structure and content. The SDK contains a broad selection of hardware access layers(HAL), drivers, board definition files, libraries, communication protocol stacks such as the SoftDevices for BLE, and a large set of examples.
- Understand the nRF5x compatibility matrix to identify the compatibility between nRF5x SoC revisions, SDKs, the relevant SoftDevices with corresponding SoftDevice Specifications, and development kits. This is a very important step to select the right nRF5 SDK version to be used, and also to set the right settings for the Flash/RAM sections in the linker files.
- Go over all the steps needed to download, install, configure, license, and test the SEGGER Embedded Studio(SES) for Nordic nRF5x devices and development boards. Then, we learn how to setup, and run an SES project targeting an nRF5x chip from scratch. The SEGGER Embedded studio is a great IDE with free business license sponsored by Nordic Semiconductor for their chips.
- Get familiarized with interacting with system blocks, peripherals, the standards that defines the interface with the on-chip hardware peripherals “The unified peripheral architecture”, tasks, events, shorts, and the peripherals I/O mapping.
- Study and practice through detailed hands-on coding exercises the following frequently used system blocks/hardware peripherals, their drivers, access layers, and libraries:
- Temperature Sensor.
Foundation Level Course Outline:
(Preview Available) Lesson1 – nRF5x SoC overview: Gives an overview on the nRF5x family ( nRF52 and nRF51) of System on Chip (SoC), it’s portfolio, available SoC chip options, and their typical applications. A summary comparison between the nRF51 series and the nRF52 series of the nRF5x family is provided.
(Preview Available) Lesson2 – nRF51 architecture: The hardware architecture of the nRF51 series is examined, highlighting its core features, typical applications, computational capabilities, available system blocks, hardware peripherals, memories, and available chip options. A list of recommended development boards for this series is provided.
Lesson3 – nRF52 architecture: The hardware architecture of the nRF52, which is the enhanced successor the nRF51 series is studied thoroughly to identify the right SoC for your project.
Lesson4 – nRF5 Software Development Kit (SDK) Tutorial: All available methods and DEs to program and develop firmware for the nRF5x SoCs are presented and compared. The nRF5 SDK by Nordic Semiconductor is explored. It contains a broad selection of drivers, libraries, board definition files ,communication protocol stacks such as the SoftDevices for BLE and a large set of examples. Understand the nRF5x compatibility matrix to identify the the compatibility between nRF5x SoC revisions, SDKs, the relevant SoftDevices with corresponding SoftDevice Specifications, and development kits. This is a very important step to select the right nRF5 SDK version to be used and also to set the right settings for the Flash/RAM sections in the linker files.
Lesson5 – Segger Embedded Studio for Nordic nRF5x Tutorial: Go over all the steps needed to download, install , configure, license and test the SEGGER Embedded studio for Nordic nRF5x devices and development boards.Then, we learn how to setup ,and run an SES project targeting an nRF5x chip from scratch.
Lesson6 – Interacting with the nRF5x hardware peripherals: Get familiarized with interacting with system blocks, peripherals, the standards that defines the common interface with the on-chip hardware peripherals “The unified peripheral architecture”, TASKS/EVENTS, SHORTS registers, and the peripherals I/O mapping. Followed by a set of in-depth hands-on exercises to get familiarized with some of the frequently used system blocks, peripherals, interface protocols, drivers, hardware access layers, libraries, and protocols APIs of the nRF5 SDK.
Lesson7 – nRF5x GPIO Tutorial: In this lesson, we take a close look on the General Purpose Input/Output (GPIO) hardware peripheral (aka: GPIO Port) available inside an nRF5x SoC, its registers layout and available software access layers. Understanding the GPIO port is critical and will enable us to interface with a broad range of external circuitry.
Lesson8 – nRF5x Timer Tutorial: The hardware timer peripheral layout and registers are examined, highlighting their usages and operation modes. The timer driver API is then studied to efficiently utilize the hardware timer (TIMER) .
Lesson9 – nRF5x PPI Tutorial: The Programmable Peripheral Interconnect (PPI) is used to allow peripherals to interact autonomously with each other without having to use the CPU. The available channels, TASKS/EVENTS registers layouts are studied thoroughly. Then, the steps needed to use the PPI through its user-friendly driver are elaborated one by one.
Lesson10 – nRF5x GPIOTE Tutorial: In this lesson we study and use the GPIO tasks and events (GPIOTE) hardware, and its software interface in depth.The GPIOTE is used with the PPI to automate tasks. It provides functionality for accessing GPIO pins using tasks and events registers, and without the CPU intervention.
Lesson11 – nRF5x UART Tutorial: Understand the available UART/UARTE hardware available on an nRF5x SoC. Use the nRF5x UART for serial communication with other MCUs and a PC terminal(host). The steps needed to setup and use the UART in a non-blocking interrupt based mode are practiced and tested.
Lesson12 – Temperature Sensor Tutorial: Utilize the on-chip temperature sensor with UART to send temperature readings to a connected host using Putty or any any other serial terminals.
Lesson 13 – nRF5x PWM and Servo Motor Control Tutorial: Examine the PWM hardware in-depth, then go over the available software alternatives(PWM HAL, DRV and Library) within the nRF5 SDK to utilize the PWM hardware efficiently. Finally, in the hands-on part of the lesson we will use the the PWM driver (PWM DRV) to control a servo motor through the two push buttons on the nRF52840-DK (Button1 & Button2) such that pressing Button1 will make the servo rotate clockwise and pressing Button2 will make it go counter clockwise. For this lesson, you need a simple 5V DC servo motor ( Like the FeeTech FS5103R available from adafruit ), alternatively you could use an oscilloscope to view the generated PWM signals.
See course FAQ page here.
- Lesson 1 – nRF5x SoC Overview
- Lesson 2 – nRF51 Architecture
- Lesson 3 – nRF52 Architecture
- Lesson 4 – nRF5 Software Development Kit (SDK) Tutorial
- Lesson 5 – Segger Embedded Studio for Nordic nRF5x Tutorial
- Lesson 6 – The Unified Peripheral Architecture
- Lesson 7 – nRF5x GPIO Tutorial
- Lesson 8 – nRF5x Timer Tutorial
- Lesson 9 – nRF5x PPI Tutorial
- Lesson 10 – nRF5x GPIOTE Tutorial
- Lesson 11 – nRF5x UART Tutorial
- Lesson 12 – Temperature Sensor Tutorial
- Lesson 13 – nRF5x PWM and Servo Motor Control Tutorial