BLE5-Stack 2.01.02 (SDK 4.10) to BLE5-Stack 2.02.01 (SDK 5.10)

This section will describe a way to migrate a project from BLE5-Stack 2.01.02 to a BLE5-Stack 2.02.01 project.

The best way to migrate is to open a new project from the new SDK and transfer your changes and application code over to the new example.

Porting Simple Peripheral

For this migration guide, Simple Peripheral from BLE5-Stack 2.01.02 will be ported over to BLE5-Stack 2.02.01. The recommended approach is to start with a BLE5-Stack 2.02.01 project that contains the same base functionality as the porting target project and merge in any custom functionality.

  1. Choose a BLE5-Stack 2.02.01 example project that contains your target project’s base functionality.

  2. Transfer all modified application files from BLE5-Stack 2.01.02 into the BLE5-Stack 2.02.01 example project.

    In this example, the following files from BLE5-Stack 2.01.02 were moved into Simple Peripheral BLE5-Stack 2.02.01 example:

    • simple_peripheral.c

    • simple_peripheral.h

  3. Move any profiles and services that the application is using to the BLE5-Stack 2.02.01 project.

  4. Transfer the SysConfig settings either visually through the GUI or open both the old and the new project .syscfg files and copy-paste the desired settings.

  5. If necessary, update the project to use the newer TI-RTOS drivers that are supplied with the SimpleLink CC13xx/CC26xx SDK.

  6. Refer to the Core SDK release notes for additional information and the TI-RTOS examples included with SimpleLink CC13xx/CC26xx SDK.

    For additional information on how BLE5-Stack 2.02.01 uses TI-RTOS see TI-RTOS (RTOS Kernel) Overview.

    For any utilized TI Drivers, review TI-RTOS Kernel (SYS/BIOS) User’s Guide and TI Drivers API Reference.

Porting Simple Central

This section of the migration guide will focus on porting Simple Central from BLE5-Stack 2.01.02 to the BLE5-Stack 2.02.01. The recommended approach is to start with a BLE5-Stack 2.02.01 project that contains the same base functionality as theporting target project and merge in any custom functionality.

  1. Choose a BLE5-Stack 2.02.01 example project that contains your target project’s base functionality.

  2. Transfer all modified application files from BLE5-Stack 2.01.02 into the BLE5-Stack 2.02.01 example project.

    In this example, the following files from BLE5-Stack 2.01.02 were moved into Simple Central BLE5-Stack 2.02.01 example:

    • simple_central.c

    • simple_central.h

  3. Modify connRec_t definition in simple_central.c such that the addr and charHandle are of type uint16_t as shown below:

    Listing 213. Changed data type of addr and charHandle
    1  // Connected device information
    2  typedef struct
    3  {
    4    uint16_t connHandle;        // Connection Handle
    5    uint16_t  addr[B_ADDR_LEN];  // Peer Device Address
    6    uint16_t  charHandle;        // Characteristic Handle
    7    Clock_Struct *pRssiClock;   // pointer to clock struct
    8  } connRec_t;
    
  4. Modify main.c in the BLE5-Stack 2.02.01 example if additional tasks were added in the BLE5-Stack 2.01.02 project.

  5. Move any profiles and services that the application is using to the BLE5-Stack 2.02.01 project.

  6. Transfer the Sysconfig settings either visually through the GUI or open both the old and the new project .syscfg files and copy-paste the desired settings.

  7. If necessary, update the project to use the newer TI-RTOS drivers that are supplied with the SimpleLink CC13xx/CC26xx SDK.

  8. Refer to the Core SDK release notes for additional information and the TI-RTOS examples included with SimpleLink CC13xx/CC26xx SDK.

    For additional information on how BLE5-Stack 2.01.02 uses TI-RTOS see TI-RTOS (RTOS Kernel) Overview.

    For any utilized TI Drivers, review TI-RTOS Kernel (SYS/BIOS) User’s Guide and TI Drivers API Reference.

A Few Noteworthy Changes from BLE5-Stack 2.02.00 to BLE5-Stack 2.02.01

You can follow the guide above without addressing these updates, they are listed for your information only. All fine grained details might not be mentioned, please refer to the specific example you need to port and to a compare between the old and new project files. Please refer to the BLE5-Stack Release Notes for all the details.

  • GAP Scanner has now the ability to select only to scan on specified channels rather all 3 channels.

  • Non Volatile On-Chip Multi Page (NVOCMP) Driver now allow the user to check when the next compaction will takes place and receive low voltage detection notifications.

  • GAPBondMgr can be configured to delete a bond even while the device is in an active connection.

  • The BLE stack library files (OneLib.a and StackWrapper.a) required by the linker are not directly provided by the .projectspec (CCS) or the .ipcf (IAR). From now on, the file ti_utils_build_linker.cmd.genlibs, generated by SysConfig, includes the libraries required to link the application based on the configurations chosen.

  • Connectionless-AoA is now supported. For more information, refer to Angle of Arrival.

  • Periodic Advertisements are now supported. For more information, refer to Periodic Advertising.

  • TI clang compiler support was added to BLE projects. See Developing a New BLE5-Stack Based Application for a list of projects supported. This change required some modifications to code (i.e. passing in “” to functions that do not receive any input). When porting, no change is required if the legacy compiler is used.

  • Improvements were made to the BLE5 Stack’s scheduling of events. For details, see Connection Fairness.

  • A new define was added to gapbondmgr.h. GAPBOND_AUTHEN_PAIRING_ONLY is used to enforce authenticated pairing. Additional checks were added to the GAPBondMgr to ensure proper IO capabilities are set when when authenticated pairing is used. Refer to Authentication Pairing Only.

  • The Project Zero data_service.c profile ‘s String Characterisitc Value has been modified to support encrpyted reads/writes. Additionally, in simple_gatt_profile.c, Simple Profile Characteristic 4 Properties were modified to support writes in addition to the original notify support (i.e. ` simpleProfileChar4Props = GATT_PROP_WRITE | GATT_PROP_NOTIFY;)`)

  • Agama 704 device support has been added to SDK.

  • Examples for Agama 704 devices have been added to SDK.

  • Agama 704 devices included in SysConfig.