The board APIs controls features specific to the Silicon Labs kit boards, like GPIO controlled power to external sensors. The board control API consists of both runtime functions to control the state and compile time configuration done through config headers which are editable by the user. During device initialization the configuration header settings are then applied by the board component itself.
Board Configuration Headers
The hardware/board/config subdirectory contains copies of configuration headers for miscellaneous drivers from the entire SDK. These configuration headers are tailored for the specific board, ensuring correct settings for pinout and other board-specific properties. The board-specific configuration headers override the default configuration header for the driver whenever the board is selected as a component in the SLC project. All configuration headers are copied to the config/ directory of the project during SLC project generation. If a custom configuration is required, the configuration header in the project config/ directory can be further modified to fit application needs. If developing for production hardware, you can start the project using a development board, and later change the target board to "Custom Board". In Simplicity Studio, this will show a prompt of whether to keep or overwrite the existing configuration file. If "keep my file" is selected, the board configuration settings from the development board are kept.
Note : The configuration must be modified on the copied board configuration headers in the generated project, under path config/ and not in the original SDK.
Thunderboard Sense 2 (BRD4166A) Support
Thunderboard Sense 2 has several I2C buses connected to the various sensors that are all connected to the EFR32. The BRD4166A support component provides functions to route pin connections of an I2C peripheral to the various I2C buses. This allows time multiplexed access to several I2C buses using only one I2C peripheral.