First-Time Installation and Setup#

This section describes how to install and configure the Silicon Labs command line development environment, from initial setup through everyday usage. The instructions apply to Windows, macOS, and Linux, with operating system-specific notes where required.

Overview of Packages for Command Line Development#

Command line development requires a combination of Software Development Kits (SDKs) and tools that are installed and managed through the Silicon Labs Tool (SLT).

Required and Optional SDKs#

The simplicity-sdk is required. The following SDK extensions are optional, depending on your development needs:

  • aiml

  • sidewalk

  • matter_extension

  • wiseconnect

Required and Optional Tools#

  • slc-cli

  • cmake

  • ninja

  • commander

  • exx32

  • gcc-arm-none-eabi

  • sdm

  • zap (optional; required for Matter and Zigbee projects)

Note: There is a package named slc_cli available, but it is out of date. Do not install it. Always use slc-cli.

Recipes#

SLT supports installing multiple packages using recipe files. You can place all of the packages described above in a recipe file with the default name pkg.slt. Other filenames with the .slt extension can be used but they must be specified on the slt command line. See Create a Recipe.

Installation and Setup#

Step 1: Download SLT-CLI#

SLT can be downloaded from the Silicon Labs website or it can be downloaded from a Linux or MacOS terminal or a Windows PowerShell terminal using wget.

  • To download SLT using a web browser, go to the Silicon Lab Tools (SLT) page.

    Note: SLT-CLI is included when you install the Simplicity Installer (GUI). By default, it is located at:

    Windows: C:\Users\USERNAME\AppData\Local\Programs\SimplicityInstaller\resources\slt.exe

    MacOS: /Applications/SimplicityInstaller.app/Contents/Resources/slt

    Linux: /opt/SimplicityInstaller/resources/slt

    However, the steps in this section describe how to manually install and configure SLT-CLI, which may be necessary for headless environments or standalone usage outside the Simplicity Installer GUI.

  • To download SLT from a terminal, select the appropriate URL from the following list (replace x.x.x with the latest available version) and use a wget command:

    • https://www.silabs.com/documents/public/software/slt-cli-x.x.x-windows-x64.zip

    • https://www.silabs.com/documents/public/software/slt-cli-x.x.x-mac-x64.zip

    • https://www.silabs.com/documents/public/software/slt-cli-x.x.x-mac-arm64.zip

    • https://www.silabs.com/documents/public/software/slt-cli-x.x.x-linux-x64.zip

For example, from a Windows PowerShell terminal, run the following command from the directory where you want to download SLT:

wget https://www.silabs.com/documents/public/software/slt-cli-1.1.0-windows-x64.zip -O slt-cli.zip`

This commands downlands the archive as slt-cli.zip, which contains the slt.exe executable.

Note: Ensure that the latest version of slt is installed by running ./slt update --self from the expanded slt-cli directory.

Step 2: Create a Recipe for Command Line Development#

Recipe files use the .slt extension and define the SDKs and tools to install.

Create the recipe file, pkg.slt, in your root folder. Open a text editor, paste the following code block into the file, and then save the file with the desired name:

# This is the recipe file driving the command line tool install flow in SLT

# Version defaults to 0 if not defined
version = "0"

# All packages to install are under this header
[dependency]
# SDKs
aiml="~"
sidewalk="~"
matter_extension="~"
wiseconnect="~"
simplicity-sdk="~" # required

# Tools
cmake = "~"
commander = "~"
exx32 = "~"
gcc-arm-none-eabi = "~"
ninja = "~"
sdm = "~"
slc-cli = "~"
zap = "~"

Step 3: Set the SLT Location in the PATH#

  1. In Windows, type Edit System Variables in the search field to find the System Properties dialog.

  2. Click Environment Variables.

  3. Select Path, then click Edit.

  4. Add the directory that contains the slt executable.

For macOS and Ubuntu installations, the slt directory is added to the PATH based on the shell in use. On both macOS and Ubuntu, you can determine the active shell by opening a terminal window and running echo $0.

If the directory is not added automatically, follow the appropriate instructions to add it to your PATH.

The default shell on macOS is zsh, and on Ubuntu it is typically bash. In most cases, the PATH is updated by editing or creating the following files:

  • macOS: ~/.zshrc

  • Ubuntu: ~/.bashrc

Step 4: Install the SDK and Tools#

  1. Open a terminal or command prompt.

  2. Change the directory by typing cd to the users\USERNAME folder.

  3. Enter the command, slt install.

    Note: If you name the recipe file anything other than pkg.slt, you specify the file name explicitly using the command:

    slt -f <filename>.slt.

The tools and SDK are installed in the user's .silabs/slt/installs folders. The SDK and SDK extensions will always be in the conan/p subfolder. The various tools will be in either the archive or conan/p folder depending on the package type.

slt generates some additional files that are useful in a CI/CD flow. By default the files will be located in the folder that contains the pkg.slt file. This is a description of each file:

  • pkg.lock
    This is a version of the pkg.slt file with the exact installed package versions called out. It can be shared and otherwise used as a recipe file to duplicate the installation of the installed packages including the exact version. To use it pass it like this slt install -f pkg.lock

  • user.slconf
    This is an .slconf file that is meant to be edited by the user and it will not be modified by slt. It can be used in a CI/CD environment and then edited to call out the project (.slcp) or workspace (.slcw) file to use with an slc generate command. Other slc arguments can be specified in the file, such as --with arguments.

  • autogen/pkg.slconf
    This file is automatically generated by slt and it will be overwritten with each slt command so it should not be modified by the user. The user.slconf includes its contents with this line include autogen/pkg.slconf. It contains the paths to the tools, toolchain and SDKs / SDK extensions installed by slt. So it removes the requirement of manually adding the toolchain-path, sdk-package-path, and toolchain entries into any .slconf file that includes it. It is provided to make it easy to use the installed packages with slc generate commands.

Step 5: Verify the SLT-CLI Installation#

slt --version

Step 6: Set Java Path#

When slc-cli is installed using SLT, the correct Java version is installed automatically as a dependency. However, the Java executable path must be added to the system PATH variable.

Add the paths to Java and slc-cli from your .silabs directory. Directory names may vary depending on the installed versions.

Note: Ensure there is not another version of Java earlier in your system PATH, as it may conflict with SLT's required Java version.

  • .silabs\slt\installs\archive\java21-v21.0.5\java21_windows_x86_64\jre\bin

  • .silabs\slt\installs\archive\slc-cli-v6.0.15

Step 7: Generate and build SDK sample app#

See SLC Project Generation Example for details on using SLC-CLI.