Simplicity Studio 5 Users Guide
Overview
Simplicity Studio is the core development environment designed to support the Silicon Labs IoT portfolio of system-on-chips (SoCs) and modules. It provides access to target device-specific web and SDK resources; software and hardware configuration tools; an integrated development environment (IDE) featuring industry-standard code editors, compilers and debuggers; and advanced, value-add tools for network analysis and code-correlated energy profiling.
Simplicity Studio 5 (SSv5) focuses on developer experience, leveraging feedback from customers, employees and competitive reviews. Developers of all experience levels will benefit from an optimized workflow that supports them through the development journey and produces quicker project progression and device configuration.
The Simplicity Studio 5 User's Guide pages are organized into the following groups:
- Getting Started: Describes how to install SSv5 and the relevant development resources, and provides general overviews of using the SSv5 interface and of developing projects in SSv5. If you are new to SSv5, start here.
- About the Launcher: A reference guide to the features and functions available when you first open SSv5. This is a general reference, although some items may not be applicable to all devices.
- About the Simplicity IDE: A reference guide to the features and functions in the Simplicity integrated development environment. This is a general reference, although some items may not be applicable to all devices.
- Developing for 32-Bit Devices: Provides instructions and reference material for 32-bit device development in the two development environments: Project Configurator and AppBuilder.
- Developing for 8-Bit Devices: Provides instructions and reference material for 8-bit device development using the Hardware Configurator.
- Building and Flashing: Describes how to compile and flash images to various device types.
- Companion IDEs: Visual Studio Code: Discusses how to generate project code in Simplicity Studio 5 to then be used in the VS Code IDE.
- Testing and Debugging: Outlines tools and strategies for testing your applications on Silicon Labs devices.
- Using the Tools: A reference guide to the various tools packaged with SSv5. Not all tools are applicable to every development path. Their specific use is described in the individual Developing for pages.
New Features
This section details new features introduced in various versions of Simplicity Studio 5, including support for new SDKs, IDE improvements, new project generators, and enhanced tool functionalities.
- Version 5.9.1.0 (June 18, 2024): Support for Simplicity SDK 2024.6.0, CMake for VS Code IDE, Radio Configurator improvements, BTMesh tools for 917 devices, new Connectivity firmware update UI for 917 devices, and SLC workspaces for IAR and CMake.
- Version 5.8.0.0 (December 13, 2023): Release of two new project generators (Visual Studio Code Project and CMake), Matter Provisioning Tool 1.0.0 (Beta), and improvements for MAC M1 hardware.
- Version 5.7.0.0 (June 7, 2023): Amazon Sidewalk integration (installable extension and Protocol Configurator), and Pin Tool support for Analog pin configuration.
- Version 5.6.3.0 (March 10, 2023): Enhanced support for TrustZone applications and improvements to the Post-Build Editor.
- Version 5.6.2.0 (February 14, 2023): Redesigned Pin Tool user interface and updates to Bluetooth NCP Commander for Bluetooth mesh functionality.
- Version 5.6.0.0 (December 14, 2022): Introduction of Project Configuration Report Generator, Post-Build Editor for ease of post-build image creation, support for Visual Studio Code as a Companion IDE, and extended Matter Enablement Package support.
- Version 5.5.0.0 (September 7, 2022): Introduction of Matter Support, integrated Wireshark launching, and usability improvements to the Package Manager.
- Version 5.4.2.0 (August 17, 2022): Support for the EFR32xG24 Explorer Kit.
- Version 5.4.0.0 (June 8, 2022): Eclipse upgrade to v4.23, addition of Logic Analyzer view to Energy Profiler, new Wi-SUN Configurator tool, enhanced filters for Example Projects & Demos, new "Quick Links" view, Bluetooth Direction Finding tool suite update, support for SDK Extensions, and improvements to Linux installation.
- Version 5.3.0.0 (December 15, 2021): NCP Commander enhancements, Bluetooth LE Direction Finding tools suite v1.0, GSDKs published on GitHub, Dynamic GATT Configuration, IDE Dark Theme improvements, and Multi-Project Solutions.
- Version 5.2.0.0 (June 16, 2021): Support for upgrading SLC projects, NCP Commander updates (advertiser improvements, device discovery improvements, RF Regulatory Tests), Bluetooth Mesh Configurator updates, warnings for non-compliant Device Composition Data, bug fixes, IAR Embedded Workbench v8.50.9 support, and Arm GCC v10.2 upgrade.
- Version 5.1.0.0 (December 9, 2020): Beta release of GNU Debugger (GDB) support, GitHub integration for software example repositories, Bluetooth Mesh support with the new Project Configurator workflow and Bluetooth Mesh Configurator tool, and the new Bluetooth NCP Commander tool.
- Version 5.0.0.0 (July 29, 2020): Initial release of SSv5 with features including a fresh Launcher UI, automatic detection of development boards, context-aware resources, SDK download manager, easy programming of demo apps, cloning of software examples, quick access to documentation, support for Gecko SDK Suite 3.0+, integrated Simplicity Studio IDE, IAR Embedded Workbench, command-line GNU toolchain, graphical configuration tools (Pin tool, Proprietary Radio Configurator, Bluetooth GATT Configurator), source/project management, and advanced analysis tools (Wireless network traffic capture, Energy Profiler).
Known Issues
This section lists known issues and their workarounds for Simplicity Studio 5 versions.
- Version 5.9.1: An error 'java.lang.NullPointerException: Cannot invoke "java.util.List.stream()"' when opening a project's .slcp file. Workaround: Close SSv5, delete the .projectlinkstore file from the project directory.
- Version 5.8.0:
- Navigation Buttons not displayed if SSv5 starts on Simplicity IDE perspective. Workaround: Change to another perspective and back.
- Changing Target Part in Project Configurator does not work correctly on custom hardware. Workaround: Create a new example project or manually edit .slcp and .slps files.
- GDB Debug Session Launch fails with "Error in final launch sequence". Workaround: Edit debug configuration to uncheck 'Continue' on the Startup tab.
- Custom Network Analyzer Decoders no longer work starting with version 5.7.0.0. Workaround: Convert JavaScript custom decoders to LUA decoders.
- IAR Toolchain linker command line length can exceed Windows line limit. Workaround: Edit project properties and use a specific command line.
- Blank Project Wizard or Log In windows seen with MacOS Ventura or later. Workaround: Grant Simplicity Studio App Management permissions in MacOS System Settings.
For Users of Previous Versions
If you are migrating from Simplicity Studio 4 to SSv5, or transitioning from AppBuilder projects to the component-based architecture, refer to the Project Migration section for additional information.
Getting Started
To get started with Simplicity Studio 5 (SSv5), you need to install SSv5 and development software, explore its main features, and start a project. Having your target hardware connected during installation ensures SSv5 is configured precisely for your environment. A Silicon Labs Customer Support Portal account is also required for access to some software packages.
Prerequisites
To streamline your Simplicity Studio 5 (SSv5) installation:
- Connect development hardware to your PC.
- Log in to your customer account.
SSv5 System Requirements
Operating Systems
- Windows: Windows 10 (64-bit), Windows 11
- macOS: 11.x Big Sur, 12.x Monterey, 13.x Ventura
- Linux: Ubuntu 22.04.1 LTS
Hardware
- CPU: 1 GHZ or better
- Memory: 1 GB RAM minimum, 8 GB recommended for Wireless Protocol development
- Disk Space: 600 MB disk space for minimum FFD installation; 7 GB for Wireless Dynamic Protocol support
Hardware
A Silicon Labs development kit is not required to start with Simplicity Studio, but it helps in selecting appropriate software and tools. If you have a Wireless Starter Kit (WSTK) or Pro Kit, mount a radio board and connect it to your PC. Ensure the power switch is in the Advanced Energy Monitoring (AEM) position for best performance.
Customer Account
Create an account on the Silicon Labs Customer Support portal. This account determines software download access and notification subscriptions. It is strongly recommended to subscribe to Software/Security Advisory Notices & Product Change Notices (PCNs).
Install SSv5 and Software
This section covers the installation of SSv5 and subsequent software package installations.
Install SSv5
On Windows and macOS
- Download the SSv5 installation package from the Silicon Labs website.
- Mount the '.iso' disk image and run 'setup.exe'.
- Accept the Simplicity Studio License Agreement and click Next.
- Choose a destination location and click Install.
- Accept any additional license agreements upon launch.
- Log in using your Silicon Labs account credentials.
- Agree to Experience Tracking (can be changed later in Preferences).
- Allow SSv5 to make system changes if prompted (e.g., for Device Inspector).
On Linux
Simplicity Studio for Linux is officially supported on Ubuntu LTS distributions.
- Expand the tar file into the desired installation directory (e.g.,
/home/USERNAME/SimplicityStudio_v5
). - Before the first launch, execute:
sudo apt-get update && sudo apt-get upgrade
- Navigate to the installation directory and run:
./setup.sh
- The
setup.sh
script installs dev rules for USB connectivity and missing packages. For non-Ubuntu distributions, review the script for required packages. - If using Wayland, launch from a terminal with
./studiowayland.sh
. - JxBrowser, used for rendering windows, defaults to the
/tmp
folder. This location can be changed in thestudio.ini
file (e.g.,-Djxbrowser.chromium.dir=/home/USERNAME/.jxbrowser
).
Install Software
After SSv5 installation, you can install software packages like the Gecko SDK (GSDK) using two methods:
Install Software by Connecting Devices
- Ensure a device is connected and click 'Install by Connecting Devices'.
- Select the device(s) and click NEXT.
- Choose 'Auto' to automatically download compatible packages or 'Advanced' to select specific packages and optionally change the GSDK installation location.
- Accept software license agreements and click NEXT to begin installation.
- Click CLOSE upon completion and RESTART to start working.
Install Software by Technology Type
- Click 'Install by Technology Type'.
- Select the technology(s) (e.g., 32-Bit and Wireless MCUs for Gecko SDK Suite) and click NEXT.
- Choose 'Auto' for automatic download or 'Advanced' for manual selection.
- Accept license agreements and click NEXT to begin installation.
- Click CLOSE upon completion and RESTART.
Explore SSv5
Simplicity Studio 5 (SSv5) opens to the Launcher perspective, featuring a Welcome page with key sections:
- Editor: Starts in Welcome mode, allowing selection of a part and access to resources and project creation. Includes access to technical support, the Silicon Labs Community, and educational resources.
- Debug Adapters view: Displays physically connected devices or those detected on a local network.
- My Product view: Allows adding and selecting target devices for exploring resources and creating projects.
- Menu and Toolbar: Provides access to main functions and tools.
Additional launcher functions include Recent projects, Tools, Install/Uninstall packages, and Preferences.
When a target device is selected (either physical or virtual), device-specific tabs become available:
- Overview: Shows general device information, hardware components, recommended quick start guides, and options to update debug adapter firmware and change debug mode.
- Example Projects & Demos: Lists compatible example projects and demos, with filters for wireless technology, device type, difficulty, and quality.
- Documentation: Displays all compatible documentation, filterable by keywords and technology.
- Compatible Tools: Lists tools compatible with the selected product.
Start a Project
Simplicity Studio 5 (SSv5) supports several project types, accessible via File > New. The primary methods include:
- Silicon Labs Project Wizard: Creates Project Configurator (*.slcp) projects.
- Solution...: Creates a combination of two or more projects.
- Project...: Opens the New Project Wizards dialog for various project types.
- Other: Includes less common options.
This guide focuses on Project Configurator projects and Solutions.
Project Creation Workflow
New projects are created through a sequence of three dialogs:
- Target, SDK, and Toolchain Selection: Define the target device, SDK version, and IDE/toolchain (e.g., Simplicity IDE/GNU ARM, IAR ARM, Makefile IDE, Visual Studio Code, CMake, IAR Embedded Workbench).
- Examples Configuration: Select an example project using checkboxes or keywords.
- Configuration: Rename the project and choose the source import mode (Link to sources, Link SDK and copy project sources, or Copy contents).
Projects can be initiated from the Launcher perspective's OVERVIEW tab, EXAMPLE PROJECTS tab, or the file menu.
Project Configurator Projects
Project Configurator projects are defined in .slcp
files. They utilize a component-based architecture with tools like the Pin Tool, Bluetooth GATT Configurator, Bluetooth Mesh Configurator, Proprietary Radio Configurator, Wi-SUN Configurator, and ZCL Advanced Platform.
The Project Configurator's OVERVIEW tab includes:
- Target and Tool Settings: Change development target, SDK, and project generators.
- Project Details: Rename project, change import mode, generate project reports, and force project generation.
- Quick Links: Shortcuts to commonly used tools.
The SOFTWARE COMPONENTS tab allows installing, uninstalling, and configuring software components. The Component Editor allows detailed configuration of specific components.
The CONFIGURATION TOOLS tab provides access to project-specific tools like the Pin Tool, Bluetooth GATT Configurator, and others.
Install SDK Extensions
SDK Extensions are collections of components and files for 32-bit device development using Project Configurator. They have dependencies on the parent SDK and are installed via the standard installation dialog or by adding them manually through Preferences > Simplicity Studio > SDKs.
Upgrade a Project to a New Software Version
Projects can be upgraded to newer GSDK or extension versions. The process typically involves verifying the SDK or extension, running upgrade scripts, and then rebuilding the project. Release notes for the SDK and Gecko Platform should be reviewed for new features and potential changes.
Project Migration
Migrating projects from Simplicity Studio 4 (SSv4) to SSv5 depends on the project type. Specific tools and documentation are provided for Bootloader, EFM32, EFM8, Z-Wave, Zigbee, Flex, and Bluetooth/Bluetooth Mesh projects.
About the Launcher
The Launcher perspective is the initial view in Simplicity Studio 5 (SSv5). It provides access to:
- Welcome and Device-Specific Tabs: For target device selection, quick start guides, examples, documentation, and compatible tools.
- Debug Adapters: Lists connected hardware adapters and devices.
- My Products: A customizable list of kits, boards, and devices for quick access.
- Menu and Toolbar: Access to functions, configuration options, and help.
- Bottom Pane Functions: Includes login, SDK registration, garbage collection status, and perspective management.
Welcome and Device Tabs
The Welcome page in Simplicity Studio 5 (SSv5) allows you to select a target device, start a new project, and access educational resources. Once a device is selected, device-specific tabs provide access to:
- Overview: General device information, hardware details, debug adapter firmware updates, and debug mode settings.
- Example Projects & Demos: A filterable list of example projects and demos.
- Documentation: All compatible documentation for the selected device.
- Compatible Tools: A list of tools compatible with the selected product.
Debug Adapters
The Debug Adapters view in Simplicity Studio 5 (SSv5) displays connected hardware adapters and devices. It offers functions for refreshing the list, creating groups for organization, device configuration, and accessing discovery and stack information.
My Products
The My Products view in Simplicity Studio 5 (SSv5) allows users to save and organize a list of kits, boards, and devices for quick access. Products selected here set the target device context for exploring resources and starting projects.
Menu
The perspective menu in Simplicity Studio 5 (SSv5) provides context-specific options across all perspectives.
Toolbar
The Simplicity Studio toolbar offers generally useful functions throughout SSv5:
- Welcome: Returns to the Launcher Welcome page.
- Recent: Shows a list of recent projects.
- Tools: Provides a list of available tools.
- Install: Opens the Installation Manager for installing/uninstalling packages and reviewing updates.
- Preferences: A shortcut to the Window > Preferences dialog.
The Installation Manager allows managing installed packages, SDKs, extensions, and tools. Update frequency can be managed in Preferences.
About the Simplicity IDE
The Simplicity Studio 5 (SSv5) Simplicity Integrated Development Environment (IDE) perspective supports code editing, downloading, and debugging for various Silicon Labs devices. It includes features for code editing, importing/exporting projects, and a user interface review.
User Interface Review
The Simplicity IDE perspective consists of an editor area, Project Explorer view, Debug Adapters view, and other supporting views. The Project Explorer lists project files within a workspace, which can be managed via File > Switch Workspace. The Debug Adapters view is similar to the Launcher perspective's view.
Import and Export
Simplicity Studio 5 (SSv5) allows importing projects from other IDEs (Keil, IAR) or from .slcp
and .sls
files. Projects and solutions can be exported in various formats, with .sls
being the default for easy re-import into SSv5.
Code Editing
The Simplicity IDE offers advanced code editing features including context highlighting, reference searching, symbol lookup, content assist (code completion), linking with the editor, symbol expansion, task view (TODO/FIXME), a quick-access console (Ctrl+3), and call hierarchy analysis.
Developing For 32 Bit Devices - Overview
This section covers customizing projects for 32-bit target devices using Simplicity Studio 5 (SSv5). It assumes SSv5 is installed and the user is familiar with the Launcher and Simplicity IDE. Development often starts by modifying example projects, using tools like Project Configurator (for GSDK 4.0+) or AppBuilder (for older GSDKs).
Developing with Project Configurator
Simplicity Studio 5 (SSv5) provides enhanced tools for project configuration, including Project Configurator, Component Editor, and Pin Tool. Protocol-specific tools like Bluetooth GATT Configurator, Bluetooth Mesh Configurator, Radio Configurator, Wi-SUN Configurator, and ZCL Advanced Platform are also available. Projects can be combined into solutions.
Project Configurator
The Project Configurator automatically opens an OVERVIEW tab upon project creation. Key sections include:
- Target and Tool Settings: Modify development target, SDK, and project generators.
- Project Details: Rename project, change import mode, generate reports, force generation.
- Quick Links: Access to relevant tools.
The SOFTWARE COMPONENTS tab allows managing software components, while the CONFIGURATION TOOLS tab provides access to project-specific tools.
Component Editor
The Component Editor allows detailed configuration of specific software components within Simplicity Studio 5 (SSv5). Changes are autosaved in native source format.
Pin Tool
The Pin Tool in Simplicity Studio 5 (SSv5) enables easy configuration of device pins and peripherals. It allows assigning functions to pins, generating reports, and modifying pin configurations. Changes are applied via the 'APPLY' or 'APPLY AND CLOSE' buttons.
Bluetooth GATT Configurator
The Bluetooth GATT Configurator in Simplicity Studio 5 (SSv5) helps build customized Bluetooth GATT databases. It allows adding/removing services, characteristics, and descriptors, and importing GATT databases. Changes are not automatically saved.
Bluetooth Mesh Configurator
The Bluetooth Mesh Configurator provides access to a Bluetooth Mesh node's Device Composition Data (DCD), including elements and supported models. It allows configuration of SIG-adopted and vendor models.
Proprietary Radio Configurator
The Proprietary Radio Configurator, part of the Proprietary SDK, allows creating standard or custom radio configurations for RAIL-based applications. It manages protocols and channel groups, with parameters organized into cards.
Wi-SUN Configurator
The Wi-SUN Configurator, included with the Wi-SUN SDK, allows configuration of application settings, security, and radio parameters through three panels: Application, Security, and Radio.
ZCL Advanced Platform
The ZCL Advanced Platform (ZAP) is a tool for configuring endpoints for Zigbee and Matter projects, managing endpoints, clusters, and commands. Configuration changes are saved to .zap
files and automatically generate required application files.
Solutions
A solution in Simplicity Studio 5 (SSv5) combines multiple projects for simultaneous compilation, debugging, and flashing. Solutions are managed via the Project Explorer view and can be local or shared.
Memory Editor
The Memory Editor is a graphical tool in Simplicity Studio 5 (SSv5) for editing the flash and RAM memory layout of applications within a solution. It allows fine-tuning memory usage and updates linker files upon saving changes.
Developing with AppBuilder
AppBuilder in Simplicity Studio 5 (SSv5) is a graphical tool for creating configurations and building Application Framework files. It works with Silicon Labs application frameworks to include or exclude code from compiled binary images.
Configuring a Project
Simplicity Studio 5 (SSv5)'s AppBuilder provides a tabbed interface for project customization, including General settings, ZCL Clusters, Zigbee Stack, Printing and CLI, HAL, Plugins, Callbacks, Includes, Other Options, and Bluetooth GATT configuration.
Configuring Peripherals
Simplicity Studio 5 (SSv5)'s AppBuilder HAL tab provides access to a Hardware Configurator for configuring pins and peripherals. The Hardware Configurator has two views: Port I/O for pin assignments and Peripherals for module configuration.
Developing for 8 Bit Devices
The Hardware Configurator for 8-bit devices in Simplicity Studio 5 (SSv5) simplifies peripheral initialization through a graphical interface. It works with the 8051 SDK's extensive examples for EFM8 and C8051 MCUs.
About Projects
Creating an 8-bit target project in Simplicity Studio 5 (SSv5) involves selecting a target device and an example. The Simplicity IDE allows code modification, and the Hardware Configurator manages peripheral configuration.
Using Hardware Configurator
Simplicity Studio 5 (SSv5)'s Hardware Configurator for 8-bit devices uses the Configurator perspective. It allows configuration of peripherals, Port I/O, and mode transitions. Peripherals require their checkboxes to be enabled for code generation.
Building and Flashing
This section covers compiling (building) software into a binary image, configuring build steps with the Post-Build Editor, and loading (flashing) the image onto a device using Simplicity Studio 5 (SSv5).
Building
Simplicity Studio 5 (SSv5) offers simple build and debug build/flash options. Projects are built using the toolchain defined at project creation. Binary files are located in a 'binaries' group in the project explorer. Different toolchains generate different binary file types (e.g., .hex, .bin, .gbl, .s37).
Post-Build Editor
The Post-Build Editor (PBE) in Simplicity Studio 5 (SSv5) allows users to specify actions on project output binaries to create various image files, such as adding signatures, checksums, or packaging files for upgrades (GBL, Zigbee OTA).
Flashing
Simplicity Studio 5 (SSv5) provides multiple methods for flashing firmware images to a device: via the Debug button, the debug adapter's context menu (Upload Application...), or the Flash Programmer tool. The Flash Programmer offers options for memory protection and debug access control.
Testing and Debugging
Simplicity Studio 5 (SSv5) offers tools for testing and debugging application firmware, power consumption, and network behavior. These include a built-in debugger (GDB or Simplicity Studio Debugger), Wireshark connectivity, Network Analyzer, and Energy Profiler. Example applications from SDKs are also provided for testing.
Overview and Resources
Simplicity Studio 5 (SSv5) provides various tools for testing and debugging, including a debugger, Wireshark, Network Analyzer, and Energy Profiler. SDKs also offer example applications for testing purposes.
Using the Debugger
Simplicity Studio 5 (SSv5) supports two debuggers: GNU Debugger (GDB) and the classic Simplicity Studio Debugger. The debugger operates within the Debug perspective, offering features like breakpoints, memory examination, and stepping through code.