Matter solutions allow the user to generate multiple projects at once, to generate a combined solution/binary and allow multiple post-build operations to provide flexibility and unison when developing a Matter example or application. For example, with the Matter Lighting over Thread with Bootloader Solution a user can generate a Matter Bootloader, a Matter Lighting example, and the combined Bootloader + Example production image. Solutions will also generate a .gbl binary for the users to make use of and create an .ota software image update binary (directions listed below).
To create a Matter Solution, proceed to the "Example Project Selection" section of Simplicty Studio's "New Project Wizard". On the left hand side, ensure "Example Projects" is turned off, "Solution Examples" is turned on, and "Matter" under the "Technology" section is checked. Then, select for which application example you wish to create a project from.
Building via solutions behaves just like a normal project. Just ensure the top-level solution is selected and build! Artifacts from the resulting projects can be found within the
artifact directory under each distinct project within the solution.
Due to certain limitations with the way our Matter examples are built within Simplicity Studio, OTA file generation must be conducted by the user via the command line.
To create an OTA file, first build a Matter example via solutions. Locate the resulting .gbl file within the
artifact directory. This will be used as an argument to the GBL creation script.
Then, locate the directory that holds the Matter Extension within the GSDK in Simplicity Studio. The location should be similar to:
/Users/User/SimplicityStudio/SDKs/gecko_sdk/extension/matter_extension. Once found, open a terminal at this location and run the command:
./src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8005 -vn <SoftwareVersion> -vs <SoftwareVersionString> -da sha256 <PathToArtifactDirectory>/<GblFile> <PathToArtifactDirectory>/<ResultingOtaFileName>
SoftwareVersion and the
SoftwareVersionString correspond to the CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION and CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING parameters the project has been compiled with. And where
ResultingOtaFileName is the name of the OTA file you wish to generate,
PathToArtifactDirectory is the location of your artifact directory within your project, and
GblFile is the name of the GBL file that was produced after building the solution. The OTA file should now have been populated within the
artifact directory in Simplicity Studio.