TI Over-the-Air Download (OAD)¶
The following sections aim to describe the lower layers of OAD software that are common across all protocol stack implementations. This includes the OAD image header, the flash layout, Boot Image Manager, and the oad_image_tool.
Warning
The BLE-Stack OAD Profile does not implement or perform any security or authentication mechanisms as part of the firmware update process. System developers should take measures to adequately authenticate peer devices and only accept and/or apply firmware images transferred from trusted sources via the OAD Profile. TI recommends applications use Bluetooth LE Secure Connections (LESC) with Man-in-the-Middle (MITM) protection with peer devices when performing wireless firmware updates, although the use of the LESC feature does not itself guarantee image authenticity.
When using the Secure OAD feature along with recommended parameters, firmware images are authenticated on the device using ECDSA signature validation algorithms to ensure image authenticity prior to updating the running firmware image. Just as with the OAD Profile, TI recommends applications use Bluetooth LE Secure Connections with Man-in-the-Middle (MITM) protection with peer devices when performing wireless firmware updates.
- Introduction
- OAD Storage & Security
- Boot Image Manager (BIM)
- BIM for Off-Chip OAD
- BIM for On-Chip OAD (Stack Library)
- OAD Image Header
- OAD External Flash Image Header
- Flash Layout for Off-Chip OAD
- Flash Layout for On-Chip OAD
- OAD Image Tool
The following sections aim to describe the BLE5-Stack specific application and profile layer of the OAD solution. The OAD application section will describe the BLE OAD process from a high level in terms of events and states, and the profile section will cover the actual structures that are sent over the air.
See Over the Air Download (OAD) Reference for more information about the various OAD APIs and structures.
- OAD Application
- BLE-Stack OAD Profile
- Over the Air Message Sequence
- OAD Service (0xFFC0)
- OAD Image Identify (0xFFC1)
- OAD Image Block Characteristic (0xFFC2)
- OAD Control Point Characteristic (0xFFC5)
- Get OAD Block Size CMD/RSP
- Set Image Count CMD/RSP
- Start OAD CMD/RSP
- Enable OAD Image CMD/RSP
- Cancel OAD CMD/RSP
- Disable OAD Image Block Write CMD/RSP
- Get Software Version CMD/RSP
- Get OAD Image Status CMD/RSP
- Get Profile Version CMD/RSP
- Get Device Type CMD/RSP
- Image Block Write Char RSP
- Erase All Bonds REQ/RSP
- OAD Reset Service (0xFFD0)
- OAD Return Values
- OAD Block Size Rules
The SimpleLink Academy OAD Fundamentals Module covers the out of the box demo for OAD using the BLE5-Stack. It can be found here. This lab contains the following step by step instructions:
Anatomy of an OAD
Image Header
Boot Image Manager (BIM)
OAD Memory Layout
OAD Protocol/BLE Profile
Setting up the OAD Environment
OAD Distributor Setup
OAD Target Setup
Creating a Factory Image
Running the OAD Demo
Modifying the Image Version
OAD using BTool
Btool Image Header Dialog
Reverting to a Factory Image
The SimpleLink Academy OAD Advanced Module covers these advanced topics and instructions:
Adding OAD to an Existing Project
Project Changes
Code Changes
Advanced OAD Debugging
Creating a Production Image
Change to Release BIM
Secure OAD: Change default keys
Loading a Production Image
Combined Production Image
Mobile developers wishing to make applications that integrate the TI OAD should refer to the following sample implementations. These are intended as reference libraries that implement the TI OAD Downloader for Android and iOS.
Note
The above libraries do not implement full fledged applications, but instead are intended to be integrated as part of an end application.