nRF52 Tutorial

nRF52 Tutorial :

This training course provides in-depth technical exposure on the Bluetooth Low Energy (BLE) chips by Nordic Semiconductor. Namely, the nRF5x family (Both nRF51 and nRF52) which has six chips options:  nRF52840, nRF52832, nRF52810, nRF51822, nRF51422 and nRF51824. Most of these chips support multiple short range wireless protocols; BLE, ANT,  802.15.4, and 2.4Ghz propitiatory protocols; However, the 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. Their chips are used in a wide spectrum of branded Bluetooth-enabled consumer electronic products worldwide.

Requirements :

Hardware: RF52840 DK (Different nRF5x boards can be used with some minor modifications).
Software: Segger Embedded Studio 3.34, nRF5 SDK version 15.0.0 or higher, Android Studio 3.2.1, nRF Connect for DesktopPuTTy.

Course Outline :

A- Entry Level

LabA-1) nRF5x SoC overview : Gives an overview on the nRF5x family ( nRF52 and nRF51) of System on Chip (SoC) highlighting its core features, typical applications, computational capabilities, available hardware peripherals/memory and available chip options . The lab also provides a summary comparison between the nRF51 series and the nRF52 series of the nRF5x family.

LabA-2) nRF51 architecture: The hardware architecture of the nRF51 series is examined . A list of recommended development boards for this series is provided.

LabA-3) nRF52 architecture: The hardware architecture of the nRF52, which is the enhanced successor the nRF51 series is studied thoroughly. A list of recommended development boards for this series is provided.

LabA-4) nRF5 Software Development Kit (SDK) tutorial: All available methods and IDEs 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.

LabA-5) Segger Embedded Studio for Nordic nRF5x tutorial: This lab will go over all the steps needed to download, install , configure, license and test the SEGGER Embedded studio for Nordic nRF5x devices and development boards.

LabA-6) Interacting with the nRF5x hardware peripherals: A set of hands-on examples to get familiarized with some of the frequently used drivers, hardware abstractions layers, libraries, and protocols APIs of the nRF5 SDK.

  • LabA-6.1) nRF5x GPIO tutorial: In this sub lab, we will 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 abstraction layers. The GPIO will be used in this lab to communicate with the  push buttons and LEDs on the nRF52840-DK . Even though there is an easier approach to interact with the LEDs and push buttons which is through the Board Support Package (BSP)  library seen in LabA-5 , however, understanding the GPIO port is critical and will enable us to interface with a broader range of external circuitry and not just the board’s LEDs and push buttons.
  • LabA-6.2) nRF5x GPIOTE tutorial: In this lab we will study the GPIO tasks and events (GPIOTE) hardware , its usage, and its software interface in depth, we will also shed the light on the Programmable Peripheral Interconnect (PPI) subsystem inside an nRF5x SoC chip. An example demonstrating the use of GPIOTE to automate interactions between system blocks and the GPIO without the involvement of the CPU will be provided at the end of this session.The GPIOTE is used with the PPI to automate tasks.  It provides functionality for accessing GPIO pins using tasks and events registers.
  • LabA-6.3) Communicating over UART. (For the complete materials contact us on )
  • LabA-6.4) Hardware timer tutorial. (For the complete materials contact us on )
  • LabA-6.5) The Programmable Peripheral Interconnect (PPI) in depth (For the complete materials contact us on )
  • LabA-6.6) Hardware RNG (Random Number Generator ) tutorial.(For the complete materials contact us on )

B- Intermediate Level (For the complete materials contact us on ) 

LabB-1) Introduction to Bluetooth Low Energy

  • LabB-1.1) The Generic Access Profile (GAP ) and The Generic Attributes (GATT).
  • LabB-1.2) BLE profiles, services, and characteristics.
  • LabB-1.3) BLE device roles and network topology.

LabB-2) Blinking LEDs and reading buttons through BLE (The BLE Hello World !).

LabB-3) UART/Serial Port Emulation over BLE.

LabB-4) BLE Heart Rate monitor example in depth.

LabB-5) Create custom BLE services and characteristics.

  • LabB-5.1) Client-side testing using nRF Connect running on a smart phone or a desktop.
  • LabB-5.2) Client-side testing using a custom made Android App(Android Studio is needed for this part).

LabB-6) BLE URL Beacon example.

LabB-7) Over-the-air Device Firmware Update(DFU).

LabB-8) Linux Bluez Bluetooth stack tutorial (For host machines acting as central).

C- Advanced Level (For the complete materials contact us on ) 

LabC-1) Introduction to Thread network protocol.

LabC-2) Build and configure a Thread network using nRF52480-DKs.

LabC-3) nRF Thread Topology Monitor.

LabC-4) Thread CoAP example.

LabC-5) Thread Cloud CoAP Client example.

LabC-6) Thread MQTT-SN example.