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 .slce file 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

id

Unique identifier for the SDK extension.

label

Human-readable name that tools display.

version

Extension version using semantic versioning.

sdk.id

ID of the target SDK, typically simplicity_sdk.

sdk.version

Compatible SDK version. The version may differ from the installed SDK version.

component_path

One or more directories that contain .slcc component files.

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