Nordic nRF5x BLE In-Depth Training Course (Intermediate 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 eleven chips options: nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, 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. 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 provides hands-on training which provides a clear, concise, and logical walk through of the Bluetooth Low Energy / Bluetooth 5 connectivity on the nRF5x SoCs
Requirements :
Hardware: nRF52840 DK and nRF52840 Dongle. (Different nRF5x boards can be used with some minor modifications).
Software: Segger Embedded Studio , nRF5 SDK, nRF Connect.
What will learn learn? (Intermediate Level 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 Smartphone/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.
-
Comprehend the Over-the-Air Device Firmware Update process.
- Learn how to use the nRF Util to cryptographically sign and generate secure update packages.
- Thoroughly examine the nRF5 SDK Cryptography library (nrf_crypto).
- Examine how to configure, compile, and include a secure bootloader.
- Understand the nRF5x device memory map with the introduction of a bootloader, and how execution is passed from Master boot record(MBR)->Bootloader->SoftDevice->Application .
- Update your firmware to use a newer version of nRF5 SDK and SoftDevice.
- Perform Over-The-Air secure DFU using both button-triggered approach and buttonless approach.
- Examine BLE scanning in-depth and shed the light on the SoftDevice API and events for scanning.
- Learn how to configure an nRF5x SoC as a scanner that scan all nearby advertising devices and display their names, addresses, RSSIs and the complete content of their advertising packet.
- Setup and utilize the nRF5 SDK Scanning Module (nrf_ble_scan) to scan and filter nearby advertising devices by name(full or short), UUID, address, appearance, or even packet content.
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.
Lesson 10 – nRF5x Secure Over-The-Air Device Firmware Update (OTA-DFU): In this lesson, we will dive into the details of Device Firmware Update (DFU) and thoroughly examine supporting secure Over-The-Air Device Firmware Update (OTA-DFU) on the nRF5x SoCs. Over-The-Air means that we will use BLE as the transport for the new firmware image. Secure DFU means that the device to be updated with the new firmware image will verify the authenticity and integrity of the new firmware image and will only accept images from authenticated sources. Supporting DFU requires including a bootloader into the firmware. The steps needed to configure, compile, and include the bootloader in the firmware are also carefully inspected. In the exercise section of this lesson, we will take the custom profile device “Mock Device EC-01” we built from scratch in Lesson 8 , and make it support DFU in two methods( Button DFU and Buttonless DFU).
Lesson 11 – nRF5x SoC as a BLE central – Scanning/Filtering neighboring devices: In this lesson, we will start learning how to configure an nRF5x SoC as a BLE central device, and first make it scan and report neighboring advertising BLE devices. We will revisit BLE scanning in more depth and shed the light on the SoftDevice API and events for scanning. Then, we will dive into the details of the nRF5 SDK Scanning Module (nrf_ble_scan), which simplifies the process of scanning and filtering. There are two hands-on exercises in this lesson, exercise one will scan all nearby advertising devices and display their names, addresses, RSSIs and the complete content of their advertising packets. The second exercise is focused on applying scanning filters.
See course FAQ page here.