Nordic nRF5x Bluetooth Low Energy (BLE) In-Depth Training
This training course 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 nine chips options: nRF52840, nRF52833, nRF52832, nRF52811, nRF52810, nRF51824, nRF51822, nRF51802, 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 and Bluetooth Mesh. 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. The training course is divided into three sections:
- Nordic nRF5x BLE In-Depth Training Course (Foundation Level): Step-by-step lessons and hands-on tutorials that covers all the essentials of the nRF5x SoCs hardware and software stack in-depth.
- Nordic nRF5x BLE In-Depth Training Course (Intermediate Level): Hands-on training which provides a clear, concise, and logical walk through of the Bluetooth Low Energy / Bluetooth 5 connectivity on the nRF5x SoCs.
- Nordic nRF5x BLE In-Depth Training Course (Advanced Level): This section of the course offers a comprehensive hands-on coverage of all aspects of Bluetooth Mesh protocol to create complex large-scale device networks based on the nRF5x SoCs.
Detailed course outlines and objectives for each section are below.
- Basic knowledge in the C programming language.
- Some experience in developing software for embedded systems.
Hardware: nRF52840 DK ,and nRF52840 Dongle. The Dongle is needed for the intermediate and advanced levels only. Different nRF5x boards can be used with some minor modifications.
Software: Segger Embedded Studio(SES) IDE, nRF5 SDK, nRF Connect, PuTTy. SES is the recommended IDE by Nordic Semiconductor for nRF5x firmware development, however, we can accommodate your preference of IDE.
Foundation Level Course 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 define 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 access layers, drivers, and libraries:
- Temperature Sensor.
- Understand the power saving schemes available on an nRF5x SoC and the expected power consumption of each mode. Practice the nRF5 SDK API’s to safely put an nRF5x SoC into the desired sleep mode.
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.
Lesson13 – 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.
(Preview Available)Lesson14 – nRF5x Power Management Tutorial: In this lesson, we will dive into the power management hardware in an nRF5x SoC. We will go over all the details for the two power saving modes available on an nRF5x SoC: System On and System Off and the two sub power saving modes accessible in the System On. The API’s needed to configure them with and without SoftDevice are examined thoroughly with hands-on exercises.
Intermediate Level Course Objectives:
- Examine the BLE protocol architecture, identify its different layers, and how it evolved over the years. Understand the key differences between BLE and “classic” Bluetooth.
- Understand the core BLE stack APIs that you will find in almost all nRF5 SDK-based connection-oriented firmware, and the minimum nRF5 SDK modules (components) needed to make a peripheral BLE device discoverable and connectable.
- Differentiate the different options available for communication over BLE(Point-to-Point, One-to-Many, Many-to-Many). Dive into the details of the BLE protocol upper layers (GAP and GATT).
- Learn how to set up the BLE device address, name, security settings, and the preferred connection parameters through hands-on exercises.
- Learn how to configure all aspects of the advertising phase of a BLE connection-oriented device.
- Learn how to configure the nRF5x BLE Physical Layer(PHY) transmission power to target your application range/power demands.
- Introduce the nRF Connect on both Desktop/Laptop and on Smart Phone/Tablet and use it for testing and debugging BLE connections.
- Compare the nRF Connect features on different platforms, examine other useful debugging and testing utilities by Nordic Semiconductor such as the Power Profiler, Programmer, and the RSSI Viewer.
- Learn how to use the nRF52840 Dongle as a BLE roles emulator.
- Thoroughly investigate through hands-on exercises the connection parameters negotiation process between a BLE peripheral and a BLE central. Deploy the ble_conn_params module of the nRF5 SDK to simplify the process of negotiation.
- Examine Nordic’s Bluetooth Low Energy protocol stack (SoftDevice), review its features, list the available SoftDevices, and determine the right SoftDevice for your product.
- Thoroughly review the memory layout (RAM and Flash) of the firmware when a SoftDevice is used.
- Study the frequently used SoftDevice APIs and how they are implemented.
- Practice the use of the SoftDevice Handler Library to safely enable and disable a SoftDevice and for propagating SoftDevice events to the application.
- Study the common SoftDevice events and how to register application handlers to listen to them.
- Understand the interrupt priorities, CPU utilization, and the hardware resources usage restrictions when using a SoftDevice.
- Exercise establishing bidirectional communication channels through BLE between two devices.
- Practice through in-depth, hands-on exercises controlling/monitoring simple hardware peripherals over BLE and learn how to define custom communication protocols over BLE.
- Take a closer look at how the nRF5 SDK is implementing standard SIG-defined profiles, services, and characteristics.
- Dissect the implementations of the GATT services : Nordic UART Service(NUS), Heart Rate Service(HRS), Battery Service(BAS) and the Device Information Service(DIS).
- Learn how to include, configure, and use standard SIG-defined services. Case studies are the Heart Rate Service(HRS), Battery Service(BAS), and the Device Information Service(DIS).
- Learn how to include, configure, and use already built custom services. Case study Nordic UART Service(NUS).
- Learn how to encode/decode complex data received/sent over BLE and how to stream data from a BLE GATT Server to a BLE GATT Client.
- Build custom BLE profiles containing both standard SIG-defined services and custom made services.
- Support concurrent (simultaneous) BLE connections and use it to build BLE star networks in different configurations.
Intermediate Level Course Outline:
(Preview Available) Lesson1 – Introduction to Bluetooth Low Energy / Bluetooth 5: Examine the BLE protocol architecture, identify its different layers and how it evolved over time. Understand the difference between BLE and “classic” Bluetooth. In the exercise section of this lesson we cover the core BLE common functions that you will find in almost all nRF5 SDK-based connection-oriented devices, and the minimum nRF5 SDK modules (components) needed to make a peripheral BLE device discoverable and connectable.
(Preview Available) Lesson2 – BLE profiles, services, characteristics, device roles and network topology: Differentiate the different options available for communication over BLE. Dive into the details of the BLE protocol upper layers (GAP and GATT). In the exercise section of this lesson, we cover setting up the BLE device address, name, security settings, and the preferred connection parameters. In addition to that, we cover the advertising module in the nRF5 SDK to configure all aspects of the advertising phase of a connection-oriented device. We will also learn how to configure the nRF5x BLE Physical Layer(PHY) transmission power to target your application range/power demands.
Lesson3 – nRF Connect, the nRF52840 Dongle BLE roles emulator, and the Nordic RADIO 2.4 GHz transceiver peripheral: Introduce the nRF Connect on both Desktop/Laptop and on Smart Phone/Tablet and use it for testing and debugging. Compare its features on different platforms and how to use the nRF52840 Dongle as a BLE roles emulator. In the exercise section of this lesson we thoroughly investigate the connection parameters negotiation process between a BLE peripheral and a BLE central.
Lesson4 – Nordic Semiconductor BLE Protocol Stack (SoftDevice S100 series) in-depth: A comprehensive lesson which puts the Nordic’s Bluetooth Low Energy protocol stack (SoftDevice) under the microscope. The available SoftDevices types and how to determine the right SoftDevice for your product are examined. We also examine how the code and RAM memory is organized when a SoftDevice is used. Shed light on the frequently used SoftDevice APIs and how they are implemented. Practice the use of the SoftDevice Handler Library to enable and disable the SoftDevice and for propagating SoftDevice events to the application. Understand the interrupt priorities,CPU utilization with SoftDevice, and general resources usage restrictions when using a SoftDevice. Get familiarized with the SoftDevice BLE Events and their Message Sequence Charts.
Lesson5 – UART/Serial port emulation over BLE tutorial: Takes a closer look at a simple example of a connection-oriented(point-to-point) communication over BLE. Inspect how Nordic UART Service(NUS) is built, how it communicates with the SoftDevice through its API, registers handlers, and listens for BLE stack events. Understand the differences between a characteristic write command and write request. In the exercise section of this lesson we cover setting up the NUS server from scratch and use it to establish a bidirectional communication channel through BLE between two devices.
Lesson6 – Blinking LEDs and reading buttons through BLE ( The BLE Hello World ! ) tutorial: Practice through an in-depth hands-on exercise controlling/monitoring simple hardware peripherals over BLE. Learn how to define simple communication protocol over BLE.
Lesson7 – BLE Heart Rate profile in-depth tutorial: In this lesson we take a closer look at a complex example of a connection-oriented(point-to-point) communication over BLE. Inspect in-depth how the Heart Rate Profile(HRP) is built and how it communicates with the SoftDevie through its API and how it registers handlers and listens for BLE stack events. Identify the general steps for creating a BLE GATT Server. We also cover handling dynamic client requests to change the Maximum ATT_MTU size and the data length. Learn how to generate simulated data to be sent over BLE for debugging purposes, how to encode/decode complex data received/sent over BLE and how to stream data from a BLE GATT Server to a BLE GATT Client.
Lesson8 – Custom BLE services and characteristics creation tutorial: In this lesson we build a complete BLE profile that uses both custom and standard services and characteristics from scratch. We will create a BLE profile for a mock up device that we will call “Mock Device EC-01” . The profile contains seven services. Four are standard SIG defined that we will import and set up from the nRF5 SDK(Generic Access Service, Generic Attribute Service, Battery Service, Device Information Service) and the remaining three are developed in the lesson from scratch.The focus of this lesson is on custom BLE services and characteristics development and to exercise the common characteristic properties operations.
(Preview Available)Lesson 9 – Concurrent BLE Connections : In this lesson, we will examine how to support concurrent (simultaneous) BLE connections(links) and the different concurrency options offered by Nordic Semiconductor SoftDevices. Shed light on the Connection State Library of the nRF5 SDK used to manage simultaneous BLE links and get familiarized with the nRF5 SDK terminology used for concurrent connections. Then, in the exercise section, we will practice through hands-on exercises enabling multiple central devices to connect to the same peripheral at the same time( 1 Peripheral / N Centrals ), where N is limited by the SoftDevice used, and it is currently up 20. The multi-link capable peripheral includes the NUS service, enabling bidirectional communication channels between all central devices and the peripheral. We will also use the BLE concurrency to build BLE star networks in different configurations.
Nordic nRF5x BLE In-Depth Training Course (Advanced Level):
Lesson1 – Introduction to Bluetooth Mesh.
Lesson2 – Bluetooth Mesh network roles and node features.
Lesson3 – nRF5 SDK for Mesh tutorial.
Lesson4 – Configuring Mesh network through the nRF Mesh App.
Lesson5 – Configuring the Nordic Thingy:52 firmware for Mesh.
Lesson6 – Light switch Mesh network in-depth tutorial.
Lesson7 – Integrating low power node feature tutorial
Lesson8 – Device Firmware Update (DFU) over a Mesh network tutorial.
Contact us on email@example.com for more information.