Simple Peripheral OAD Off-chip

Table of Contents

Introduction

The simple_peripheral_oad_offchip project demonstrates off-chip OAD functionality with the simple_peripheral application. The application behavior is the same as the stock simple_peripheral project, with the exception that OAD is added. For guidance on this out of the box demo for OAD refer to the Off-chip OAD section of the BLE5-Stack User’s Guide.

Note: The device’s BIM project included in the workspace must also be flashed to the device when using off-chip OAD or the device will not function correctly

This project has the following app configurations available:

App Build Configuration Description
FlashROM_Release (default) All TI-RTOS debug features disabled but application-logging to UART remains enabled.
The application uses the config file ble_release.cfg and the defines are in <app name>_FlashROM_Release.opt.
FlashROM_Debug All TI-RTOS debug features enabled.
The application uses the config file ble_debug.cfg and the defines are in <app name>_FlashROM_Debug.opt.

The debug configuration of the application additionally enables the OAD debug mode. The OAD debug mode can be entered via the two button menu and offers the following functionality:

All application configurations use the stack library configuration, FlashROM_Library. This build configuration will yield additional flash footprint optimizations by the linker since the application and stack can share contiguous flash pages. This configuration is further discussed in the Stack Library Configuration section of the BLE5-Stack User’s Guide provided in the SDK.

This document seeks to extend the simple_peripheral project readme documentation that is already in place, and explain how simple_peripheral can be used to demonstrate off-chip OAD. For an advanced discussion of OAD, and an in-depth explanation of this project, please see the Off-chip OAD User’s Guide section in the BLE5-Stack User’s Guide.

Hardware Prerequisites

The default Simple Peripheral OAD-offchip board configuration uses the device’s LaunchPad development kit. This hardware configuration is shown in the below image:

For custom hardware, see the Running the SDK on Custom Boards section of the BLE5-Stack User’s Guide.

Software Prerequisites

For information on what versions of Code Composer Studio and IAR Embedded Workbench to use, see the Release Notes file provided in the SDK. For information on how to import this project into your IDE workspace and build/run, please refer to the device’s Platform section in the BLE5-Stack User’s Guide.

Service/Profile Table

This project contains the simple service, which has 5 characteristics.

Note that BLE Scanner may report 128 bit UUIDs, but the project is generating 16 bit UUIDs.

Characterisitic UUID Format Properties Profile Source
1 FFF1 1 Byte Integer Read/Write simple_gatt_profile.c
2 FFF2 1 Byte Integer Read simple_gatt_profile.c
3 FFF3 1 Byte Integer Write simple_gatt_profile.c
4 FFF4 1 Byte Integer Notify simple_gatt_profile.c
5 FFF5 5 Byte Integer Read simple_gatt_profile.c

Additionally, this project contains the OAD profile, which has 5 characteristics.

See OAD Service Description in the BLE5-Stack User’s Guide for more information on the OAD service

Usage

This application uses the UART peripheral to provide an interface for the application. The UART is only used for display messages.

This document will use a terminal program (Tera Term, PuTTY, etc.) to serve as the display for the output of the LaunchPad, and it will use a BLE phone app, such as BLE Scanner (Android) or LightBlue Explorer (iOS), that will act as the central device that will connect to the Simple Peripheral device. This document will be using Tera Term and BLE Scanner. Note that any other serial terminal and smart-phone BLE application can be used. The following default parameters are used for the UART peripheral for display:

UART Param Default Values
Baud Rate 115200
Data length 8 bits
Parity None
Stop bits 1 bit
Flow Control None