# Configuring OpenThread libraries on TI CC13x4_CC26x4 Platforms ## Overview TI Matter example applications provide configuration options for how Thread code is included in the build. Thread code can be included in as: 1. Thread certified library optimized for Matter (recommended for development and production) 2. Full Source (can be used for development) 3. Custom option where customers can update the Thread config file to change the included OpenThread feature set The library builds have been optimized for Matter to disable features such as Thread Joiner capability in order to save on Flash/RAM usage. Refer to the `ti_matter_production_certification.md` to get the cert ID for your Matter certification application when using the certified Thread libraries from TI. Build arguments have been added to enable Matter applications to link against certified OpenThread FTD/MTD libraries or custom user libraries. ## Platform Code Changes To configure a TI example to utilize either an OpenThread source or library build, open up the `args.gni` file of the example: To configure the device as an FTD or MTD, set following parameter to either true or false respectively. ``` chip_openthread_ftd = true ``` - **TI Certified OpenThread Library**: - Typically this is used for development. 1. `ot_ti_lib_dir` Is set to an empty string ``` ot_ti_lib_dir="" ``` 2. `chip_openthread_target` Points to the TI certified library dependency ``` chip_openthread_target = "${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert" ``` 3. `openthread_external_platform` Points to the OpenThread build dependency ``` `openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti"` ``` - **OpenThread Library From Source**: 1. `ot_ti_lib_dir` Is set to an empty string ``` ot_ti_lib_dir="" ``` 2. `chip_openthread_target` Is set to an empty string ``` chip_openthread_target = "" ``` 3. `openthread_external_platform` Points to the OpenThread build dependency ``` openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti" ``` - **Custom OpenThread Library**: - The custom OpenThread library is used to implement extra features, or when modifying the stack in anyway. 1. `ot_ti_lib_dir` Points to a library directory containing a custom `libopenthread-ftd/mtd` variant ``` ot_ti_lib_dir="${chip_root}/CUSTOM_LIB_DIR_PATH/" ``` 2. `chip_openthread_target` Is set to an empty string ``` chip_openthread_target = "" ``` 3. `openthread_external_platform` Points to the OpenThread build dependency ``` openthread_external_platform="${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti" ``` The TI OpenThread certified library for the MTD/FTD configurations is based on the following header file: - `third_party/openthread/ot-ti/src/openthread-core-cc13xx_cc26xx-config-matter.h` In order to update the OpenThread configuration when building from source or a custom library, users may adjust features via the following configuration header file: - `${chip_root}/examples/platform/cc13x4_26x4/project_include/OpenThreadConfig.h` Please refer to TI's standalone OpenThread Application build process for instructions on acquiring FTD/MTD libraries as they are automatically built when generating the standalone applications. - `third_party/openthread/ot-ti/README.md`