With the SV18.104.22.168 Simplicity Studio release there was an update to the silink adapter pack. The adapter pack is used with the Network Analyzer, Energy Profiler and "Launch Console" functionality. The silink update included an update to the Segger JLink ARM library and unfortunately one of the symbolic links to that library was not updated.
This will result in errors if trying to run one of those tools. The error can also be seen from [Settings] > [Simplicity Studio] > [Adapter Packs] and then expanding the 'Silink adapter pack' entry:
By opening a terminal window it is easy to delete the bad symlink and then to add the correct symlink. After opening the terminal window issue a 'cd' command to change to the adapter pack directory ~/SimplicityStudio_v4/developer/adapter_packs/silink on Linux. Then delete the bad symlink and add the correct one:
ln -s libjlinkarm.so.6.22.4 libjlinkarm.so.6
Then do ls -l to verify the link has been fixed:
lrwxrwxrwx 1 USERNAME USERNAME 16 Dec 16 23:20 libjlinkarm.so -> libjlinkarm.so.6
lrwxrwxrwx 1 USERNAME USERNAME 21 Dec 16 23:20 libjlinkarm.so.6 -> libjlinkarm.so.6.18.3
-rwxr-xr-x 1 USERNAME USERNAME 18605120 Dec 4 04:02 libjlinkarm.so.6.22.4
Then restart Simplicity Studio and go back to the adapter pack folder and verify the issue has been resolved.
With the December release of Simplicity Studio SV22.214.171.124 and Gecko SDK Suite v2.7.0, the Silicon Labs proprietary implementation of the Thread (SL-Thread) protocol was removed from the Gecko SDK Suite. The reason for this decision as described in more detail in this Knowledge Base Article (KBA): https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2019/08/01/deprecation_of_slthreadinfavorofopenthread-zNsJ is that Silicon Labs will focus on Supporting the OpenThread implementation of the Thread protocol.
For customers installing Simplicity Studio that need access to the SL-Thread SDK to support existing products, follow this procedure during installation. If Simplicity Studio has already been installed and access to the Wireless Mesh protocols (EmberZNet (Zigbee) and Thread) has been granted, then the SL-Thread SDK can be installed by using the Installation Wizard Package Manager ([Help] > [Update Software] > [Package Manager] and then select the SDKs tab and set the top [Category] filter to [Thread]) (See Step 9).
1. Download the latest Simplicity Studio installer for the chosen operating system.
2. Launch the installer and when the Installation Wizard appears select [Install by Product Group].
3. Select Wireless & RF Families
On the Install Wizard dialog box select the entire [Wireless & RF] product group and then press [Next]. In order to install the SL-Thread SDK, it is necessary to keep all of the wireless protocols selected at this step. SDK filtering can be done at a later step.
4. Sign In if not yet Signed In
The next screen is just an informational screen to show content access for the current user including Thread access. Sign In if necessary or else just press [Next].
5. Filter SDKs to be Installed
At this step SDK filtering can take place to limit the SDKs that will be installed. Note the latest SDKs shown will be part of Gecko SDK Suite version 2.7.0 (and will install Gecko Platform version 2.7.0). The last available Thread SDK (version 2.10.4) is for Gecko SDK Suite 2.6.4. This just means that if any of the latest versions of the other SDKs are left selected, both Gecko SDK Suite 2.7.0 and 2.6.4 will be installed. DO NOT press [Finish] yet.
6. Uncheck [Show Latest Versions] to see SL-Thread SDKs
To gain access to the various SL-Thread SDK versions, scroll down the dialog box and uncheck the [Show Latest Versions] box:
7. Select desired SL-Thread SDK version(s)
Now scroll down through the available packages and select the desired SL-Thread SDK version(s) to be installed. The latest available SL-Thread SDK - 126.96.36.199 is shown selected below. If other SDKs for the same Gecko SDK Suite are desired they can be selected at this step as well. After the selections are made click [Next].
7. Complete the Installation
Accept the license agreement and then click [Finish] to complete the Simplicity Studio installation.
8. Restart Simplicity Studio and Start Thread development
After the installation completes, a prompt will appear to restart Simplicity Studio. After Simplicity Studio restarts, if a product that supports the SL-Thread SDK is attached to the computer and selected in the [Debug Adapters] window or added to the [My Products] window, the Gecko SDK Suite that contains the installed SL-Thread SDK can be set as the [Preferred SDK] and then the available Thread Software Examples will be displayed in the main Launcher window.
9. Use Package Manager to Install SL-Thread SDK to existing Simplicity Studio Installations
As mentioned in the introduction, after Simplicity Studio is installed the [Package Manager] from the [Installation Wizard] can be used to install different SL-Thread SDK version. Setting the [Category] filter to [Thread] and the [Version] filter to [All] will display all of the available SL-Thread SDKs.
During a debug session it is often helpful to be able to see variables represented in hexadecimal format as opposed to the default decimal format. The obvious Eclipse setting to change the Debug number format does not work in the version of Eclipse CDT on which Simplicity Studio is based and this Default number format settings have been removed from the latest version of Eclipse:
However there is an obscure way to change the default format from a debug session, it applies to hover windows and the other debug windows and it will persist across projects, debug sessions and Simplicity Studio restarts. From an active debug session, with the [Variables] tab selected, click the small white down arrow chevron in the upper right corner of the Variables dialog and select [Number Format] and then choose the desired option from the drop down list:
Hopefully this is useful information.
Simplicity Studio has a project importer that can be used to add a source controlled project to a workspace. Unfortunately there are some quirks in the project import process and so this Knowledge Base Article (KBA) will serve to point out those quirks and how to work around them until an update can be released that cleans up the project import operation.
For source controlled projects it is recommended to keep them in a folder that is external to the workspace and that one reason why it is necessary to import the project into the workspace. Also it is important to put the "hidden" files and project folders (ones that start with "." such as the .project and .cproject files and .internal_hwconfig, .pdm, .settings folders) under source control as well as any SDK supplied precompiled library (.a) or object (.o) files. A lot of source control systems will ignore library and object files by default, which is appropriate for the source files compiled with the project, but not the ones that originate with the SDK. To see these files look under the project properties [C/C++ Build] > [Settings] > [* Linker] under either [Libraries] or [Miscellaneous].
For this KBA the projects are stored in the C:\tmp\projects folder.
To add the projects to Simplicity Studio use [File] > [Import...] and then browse to the project folder to import:
Then click through the dialog boxes until the [Project Configuration] dialog is shown, this is were the 'quirks' occur:
The [Use default location] checkbox is marked and the default location is the project folder name in the current workspace. This makes sense except the files will not be copied into the workspace by the import operation and so Simplicity Studio does not find the project information:
Since the project and the .project file in this case is under source control, the files should not be copied into the workspace, so that part of the import defaults to the correct behavior. To correctly import the project the [Use default location] should be unchecked and then [Browse..] or enter the path were the project is stored (C:\tmp\projects\Gecko in this case). If the path is entered directly there is no issue, but if the [Browse...] button is used the project name will be duplicated (Gecko\Gecko in this case) and so the path must be corrected by removing the duplication before hitting [Finish]:
Depending on how the path is entered either an information message about importing from an existing location or a warning that the project location exists and has content will be displayed. Both of these messages are normal and it is okay to cick [Finish] to complete the project import. After the import the project is ready to use.
When working with projects under source control, unless using a source control plugin, it is recommended to close the project before making any changes to the project from the source control software. If a source file is removed from the project, it can still show up in the project due to references to the file in the workspace .metadata files. In this case the file will have a yellow '!' warning icon and it can be corrected by deleting the file from the project properties [Linked Resources] tab:
The delete operation will simply remove the reference from the .metadata files and then the project will build without error.
I hope this KBA helps avoid some headaches when working with source controlled projects.
Simplicity Studio is based on Eclipse which uses a Java Virtual Machine (JVM) as the underlying platform. The JVM Java heap space by default is limited to 1/4 of the physical memory on the computer. With recent SDK releases the memory requirements during the AppBuilder "Generate" function and other memory intensive operations may exceed the default Java heap space maximum (see image below). This is especially true on computers that have 8 GB or less of memory, as the default maximum heap space would be 2 GB (1 GB for a 4 GB computer) on these computers.
The following are guidelines for reducing the amount of memory that Simplicity Studio uses in general as well as how to increase the maximum heap space Simplicity Studio will try to use based on memory availability in the system. Note the allocated memory will be released after the operation that allocated it finishes - so the memory is not permanently allocated to Simplicity Studio.
1. If there is less than 16 GB of RAM installed, then use a text editor to edit the studio.ini file from the Simplicity Studio installation directory and add the line
line. This will allow Simplicity Studio to try and allocate up to 3 GB of RAM for the Java heap space. If you still get an out of memory error (GC overhead limit exceeded) with the above setting then it can be changed to -Xmx4096m. For computers with 16 GB or more of memory, Simplicity Studio will use up to 4 GB of RAM by default (the default is to use up to 1/4 of the available memory), but this can be increased to a higher limit if issues are seen. Note that for 32-bit Windows installations the maximum Java heap size is 2 GB, so this setting will not work for 32-bit installations.
2. On some Windows systems there is a _java_options system environment variable that will limit Java applications to only using a small amount (256 or 512 MB) of Java heap space. Look for this variable under Look under [System] > [Advanced system settings] > [Environment Variables] in the [Systems variables] section for a _java_options variable and if it exists increase the value to 2g or 3g.
3. Only enable 1 or 2 SDKs per workspace (This is done at [Window] > [Preferences] > [Simplicity Studio] > [SDKs] and uncheck (disable) SDKs that are not being used). This change will make a big reduction in how much memory Simplicity Studio uses.
At the end of this KBA there are some tips for using multiple workspaces: https://www.silabs.com/community/software/simplicity-studio/knowledge-base.entry.html/2018/08/22/gecko_sdk_suite_tool-qlc4
4. Only have a few projects open in the Simplicity Studio project explorer. Other projects can be closed by right clicking the project folder and selecting [Close Project] or [Close Unrelated Projects].
5. Minimize the number of open files in the Simplicity IDE, especially .isc or .hwconf files.
6. Enable display of heap status ([Window] > [Preferences] > [General] and select [Show heap status]). Then periodically and especially before creating or generating a project with AppBuilder click the trashcan icon to run the garbage collector to free up memory.
7. Change the JVM Garbage Collector to a more aggressive garbage collector than the default one. Use a text editor to edit studio.ini and add this line
After the line
Note changing the garbage collector could slow down the Generate and other operations.
If the "About Simplicity Studio" dialog box ([Help] > [About Simplicity Studio] or on a Mac [Simplicity Studio] > [About Simplicity Studio]) shows "Invalid Installation" similar to this screenshot:
Then this can be manually repaired by following these steps:
MacOS: /Applications/Simplicity Studio/Contents/Eclipse/offline/autogen
MacOS: /Applications/Simplicity Studio/Contents/Eclipse/configuration/studio/assets/assets_autogen.assets3
The Simplicity Studio release that was made on Friday April 26th (SV188.8.131.52) had issues that prevented some Simplicity Studio installations from updating correctly. The installations that would fail were versions SV184.108.40.206 and SV220.127.116.11. If the last time Simplicity Studio was updated was before March 29th (so version SV18.104.22.168 or earlier) then the update worked correctly.
This issue has been resolved with the Simplicity Studio release that was made Tuesday afternoon, April 30th 2019 (UTC-06:00). The version of this release is SV22.214.171.124 (seen from [Help] > [About]). This release will update all versions of Simplicity Studio and it will fix any failed attempts to update to SV126.96.36.199. It will also properly update any installations that had worked around the update issue by manually applying an update to the Simplicity Studio Product package and then applying the other updates.
If Simplicity Studio is configured to automatically check for updates when it starts (the default setting) then the user will automatically be prompted to install the new update after they start or restart Simplicity Studio. If Simplicity Studio is configured to manually or periodically check for updates, then clicking the [Update Software] link will check for updates and then the available updates can be seen from the [Package Manager] [Product Updates] tab.
Depending on when Simplicity Studio was last updated several more updates could be available. To apply all of the available updates click the [Update] button and then after the update completes restart Simplicity Studio.
If any problems are seen with the update, please respond to this Knowledge Base Article or else create a new Simplicity Studio Community Forum thread or support case to report the issue.
Silicon Labs apologizes for the inconvenience this update issue has caused our customers.
Currently if the offline installer archives are used to install and update Simplicity Studio it is hard to tell when the archive files have been updated indicating that an update is available. Since the files tend to be very large (some are over 8 GB) it is inconvenient to download them just to check if they have been updated. So this article will list the latest version of Simplicity Studio and the various SDKs that have been released. The goal will be to update the article each time there is a new release, so that by following this article customers will be notified when Simplicity Studio and the various SDKs have been updated.
I also want to point out that the Simplicity Studio [Help] > [About] functionality has been enhanced to show a unified version number and the versions of the various components that comprise that version of Simplicity Studio. The information is presented in a matrix format that will show the component versions for the last 10 Simplicity Studio releases. The unified version number will make it easier to communicate the installed version of Simplicity Studio to Silicon Labs.
The current version of Simplicity Studio is 188.8.131.52. It was released on November 26th, 2019 and this is a portion of the [Help] > [About] information that also shows the Simplicity Studio Platform version (which was previously the easiest way to report the Simplicity Studio version):
On the About box there is also a "Toolchains and SDKs" tab that shows the versions of the installed toolchains and SDKs. This screenshot shows the information on the latest available SDKs as of November 26th, 2019:
I hope this information proves useful especially to customers using the offline archives files to install and update Simplicity Studio. This article should provide a temporary benefit until an update indication can be added to the offline installer page.
Many corporate networks employ proxy servers as a security measure to provide a more secure networking environment. If this is the case then Simplicity Studio will have to be configured to work with the proxy server and the IT department will have to configure the proxy server to allow Simplicity Studio to connect to the Simplicity Studio update servers.
If this is the case then an error would be seen when trying to install Simplicity Studio. The normal errors that are sign are either login errors where Simplicity Studio could not validate the sign in credentials or a “Connection Error” where Simplicity Studio could not connect to the update server.
All of the error messages described above generally indicate that Studio has failed to install the required components. After running Studio for the first time, users must select which components to install before creating a project or viewing documents and release materials. Studio requires an active internet connection with properly configured network or proxy settings to install these components. Only users on a network with a firewall that blocks access to the Studio servers or users that are required to use a proxy server to access external servers may be required to manually enter their network proxy settings into the Studio Network Connection Preferences dialog.
Studio Update Server Access
In order to install or update Studio components, your computer must be able to access the following domains:
https://updates.silabs.com (port 443)
(note the above is a recent change (February 2020) from https://developer.silabs.com)
https://siliconlabs.force.com (port 443)
If you are not sure if your network allows access to these servers or if you require the use of a proxy server to access external sites, please contact the IT administrator to find out if a proxy server is being used and to request that the URLs listed above are added to the proxy server configuration.
Testing Server Access
Simplicity Studio access to the update servers can be manually checked using a web browser. Firefox is recommended as it does not generally use the local system certificate store for SSL certificates.
Ensure that you have access to the following servers when using your web browser:
If you can successfully connect to https://updates.silabs.com via web browser, you should see an html page with the words "devtools".
If you can successfully connect to https://siliconlabs.force.com via web browser, verify that you can successfully login with your Silicon Labs user account.
Configuring a Proxy Server
For users on a network requiring the use of a proxy server to access Studio update servers, check with your IT administrator on the correct proxy server IP address and port for HTTP, HTTPS, and SOCKS protocols (Note: Use of the SOCKS protocol is less common and entering settings for the SOCKS protocol can block update access if entries are made when a SOCKS server is not being used).
When you first run Studio and the program can't detect an active internet connection, the Connection Error Dialog will appear.
To configure your proxy settings for Studio, select “Go to the Network Connection Preferences” and click “Next”.
You may also reach the proxy setting dialog by clicking the Settings button on the top-left side of the toolbar (next to the Sign In button). Then navigate to Network Connections.
The easiest setting to use is the “Native” Active Provider setting. With this setting Simplicity Studio will use the proxy server settings from the computer operating system. If Simplicity Studio was able to find the proxy settings they will be highlighted in yellow, enabled and displayed in the proxy entries box:
If the settings do not appear or they do not match the proxy settings given by the IT department, then the Active Provider drop down box should be set to “Manual” and the entries for the proxy server entered for the HTTPS and, if necessary, the SOCKS protocol. Simplicity Studio does not use the HTTP protocol for updates, so it is not necessary to enter the settings for it. The Proxy entries allow the user to specify a proxy server and port. Also enter User and Password information if your proxy server requires authentication. The Proxy bypass items allows users to enter hostnames that are reached directly without going through the proxy server. By default, localhost and 127.0.0.1 should be bypassed (don't use proxy server settings) since these resolve to the local machine (i.e. offline installer files, local archives, etc).
Note that the Proxy entries and Proxy bypass items will not have any effect unless they are checked via selecting the Manual setting.
Users who don't require a proxy server should select the Direct setting under the Active Provider dropdown menu to completely bypass the proxy entries.
See the Eclipse documentation for Network Connections on how to configure proxy settings within Studio at:
Often companies will also employ SSL security certificate monitoring and then Simplicity Studio will need to be configured to use the proper security certificates. If that is the case then please refer to this Knowledge Base Article (KBA) for how to check for and configure the SSL certificates: https://www.silabs.com/community/software/simplicity-studio/knowledge-base.entry.html/2018/10/12/installing_ssl_secur-UVxo
With the recent Simplicity Studio release (September 12, 2018) Mighty Gecko modules (MGM111, MGM12P, etc.) are now understood as having their own part numbers and so they do not need to be referred to by a SoC part number. This makes it easier to develop projects using modules and it offers the following benefits:
An example of the last point is shown in these two images:
The above is the package outline that had previously been displayed for an MGM13P module. The screenshot below is the outline that is now presented for the MGM13P module:
The main take away from this is when developing for a module to always specify a module in Simplicity Studio in either the “My Products” view or for the part connected to a debug adapter. When a custom board is being used the Target part has to be specified in the debug adapter hardware configuration as explained in this KBA: https://www.silabs.com/community/software/simplicity-studio/knowledge-base.entry.html/2016/10/07/simplicity_studiov4-FMQd
For modules as parts support to happen things had to change on all levels from the purchased part itself, the tools used by Simplicity Studio, Simplicity Studio itself and the supporting SDKs.
Simplicity Studio identifies connected boards by reading an EEPROM on Silicon Labs radio boards that are used with the Silicon Labs Wireless Starter Kit (WSTK) main board. The EEPROM will indicate if the part included on the radio board uses the module part number or a pseudo part number used for the modules that do not have the necessary module identification information. Simplicity Studio will use the detected information throughout the development process (project creation, generation, building and debug) unless the information is manually overwritten using the device configuration dialog boxes from the Debug Adapters view. The observed change in behavior will depend on the information stored in the Silicon Labs radio board and the SDK revision being used. Radio boards with updated EEPROMS are being phased into production and this started happening in the second quarter of 2018.
When a customer's board is connected to Simplicity Studio through the STK / WSTK debug port or with an external Segger J-Link device, the target part must be manually specified using the device configuration dialog boxes and then the module part number should be specified.
Simplicity Commander can be used to check if the module identification information is present or not. This check is just mentioned for reference information as the presence or absence of module information does not affect development flow in Simplicity Studio. Launch Simplicity Commander from the Launcher perspective by either clicking the tools icon (green wrench) or by clicking the Compatible Tools tab in the main window. In Simplicity Commander select the correct debug adapter from the J-Link Device drop down menu and then select the [Connect] button next to [Adapter] and then click the [Connect] button next to [Target]. If the Chip type in the MCU Information box in the lower right is a module part number then the device has the necessary identification information. If the Chip type is a SoC part number then the device does not have the necessary identification information. The first image below shows a module without the necessary identification and the second image shows one with the necessary identification information.
Figure 3: Commander connected to part without Module identification information
Figure 4: Commander connected to part with Module identification information
SDK support for modules as parts started with Gecko SDK Suite version 2.4.0 and all of the protocol SDKs contained within that suite (Bluetooth SDK 184.108.40.206, EmberZNet 220.127.116.11, Thread SDK 18.104.22.168). If a radio board that has the pseudo part number is used with Gecko SDK Suite 2.4.0 or later then a popup will appear notifying the user that the stack being used requires a module part number and it will show the part number change that was made:
Figure 5: SDK Upgrade Notice to Module Part Number
If Gecko SDK Suite versions before 2.4.0 are used with radio boards that use the module part number, the opposite situation is present and a popup will appear notifying you that the stack being used needs to treat the module as a SoC and that the part number has been changed accordingly:
Figure 6: SDK Upgrade Notice to SoC Part Number
Both of these dialog boxes are just informational to alert the user to changes that were made to make the project compatible with the selected part and SDK.
If the part was changed when creating the project then additional warning popups can be displayed when launching the debugger warning of the difference between the target part and the project configuration. Popups like these images are to be expected and it is fine to accept the warning and proceed with the debug session:
Figure 7: Select Compatible Device Warning Popup
Figure 8: Connected Device Compatibility Warning Popup
If the “Remember my decision” checkbox highlighted in green in the first image above is checked, then the two warning popup dialogs will only be seen the first time that project is launched, after that the selected debug adapter will automatically be used and neither popup will be seen with that project again.
So this is an interim situation and going forward, the newer module parts and Gecko SDK Suite 2.4.0 or later should be used to create project using modules. Then there will be no changes made to the parts during project creation and there will be no upgrade notice popups or debugger warnings for modules as parts.
If behavior is seen that is different than what has been described in this KBA is seen, please submit a support ticket at the bottom of this web page: https://www.silabs.com/community.