Develop with Software Development Kit (SDK) Extensions#
Objective#
Add a custom SDK extension by using a Silicon Labs Component Extension (.slce) file.
An SDK extension packages custom software components separately from the base SDK. Each extension is defined by a .slce file, which serves as the entry point for the extension and identifies the SDK, component locations, and version information.
Step 1. Create the SDK Extension Directory#
Create the SDK extension in one of the following locations:
<sdk>/extension/<your_extension>/<project>/extension/<your_extension>/A sibling directory to the SDK whose name ends with
_extension
For example:
workspace/ ├── simplicity_sdk/ │ ├── simplicity_sdk.slcs │ └── extension/ │ └── my_extension/ │ ├── my_extension.slce │ └── components/ │ └── my_component.slcc
Note: The
.slcefile must reside at the root of the SDK extension.
Step 2. Create the .slce File#
Create a file named my_extension.slce with the following contents:
id: "my_extension" label: "My Custom SDK Extension" version: "1.0.0" sdk: id: "simplicity_sdk" version: "2025.6.1" component_path: - path: components
Field Descriptions#
Field | Description |
|---|---|
| Unique identifier for the SDK extension. |
| Human-readable name that tools display. |
| Extension version using semantic versioning. |
| ID of the target SDK, typically |
| Compatible SDK version. The version may differ from the installed SDK version. |
| One or more directories that contain |
Step 3. Add Components#
Create one or more .slcc component files in the directory specified by component_path.
Example:
my_extension/ ├── my_extension.slce └── components/ └── my_component.slcc
Example my_component.slcc:
id: my_component label: My Component package: ext-comp description: Example custom component category: Example quality: alpha
Step 4. Trust the Extension#
Before SLC can use the extension, trust it by running:
slc signature trust -extpath path/to/my_extension
The path must reference the directory that contains the .slce file, not the .slce file itself.
Step 5. Reference the Extension in a Project#
Add the SDK extension to the project's .slcp file:
sdk_extension: - id: my_extension version: 1.0.0
SLC discovers components from the extension during project generation.
Example Directory Structure#
simplicity_sdk/ └── extension/ └── my_extension/ ├── my_extension.slce └── components/ ├── my_component.slcc ├── my_component.c └── my_component.h
Summary#
An .slce file serves as the manifest for an SDK extension. It:
Identifies the SDK extension.
Specifies the target SDK.
Specifies where SLC searches for custom components.
Enables reusable software components that can be shared across multiple projects without modifying the base SDK.
Use Custom Components with an Existing SDK#
Install Packages#
slt install
Generate Using an SDK Extension#
slc generate app.slcp --extension my_extension.slce