At Silicon Labs we highly value your feedback and always strive for improvement. Please share your experiences with our IoT development tools by filling out our short survey.
Your feedback will help us focus our improvements to serve you better, and it should take less than five minutes of your time.
1. Clarify to yourself what the specific issue is.
2. Apply basic troubleshooting:
Verify STK switch position
Check hardware connections with multimeter
Swap USB cables and ports
Change the compiler optimizations in the [Project Properties] to a minimal optimization level, especially when debugging the program. For the GNU ARM toolchain the setting should be one of 'None (-O0)', 'Optimize for debugging (-Og)' or 'Optimize (-O1)'. For the Keil C8051 compiler setting it to '2: Data overlaying' is a good option.
3. For installation issues review these two Knowledge Base Articles (KBAs):
5. Search to see if someone has asked the same question already.
6. Include the relevant parts of your development setup in the problem description. Examples include:
Simplicity Studio version from [Help] -> [About]
Wirelesss Protocol and/or Product Family
SDK version
Part number
Radio board vs custom hardware
Host OS
Compiler and compiler version
7. Include steps to reproduce the problem or specific conditions when the issue is observed.
8. Does switching to a new workspace resolve the issue? ([File] -> [Switch Workspace] -> [Other...])
9. Consider providing Simplicity Studio logs
If you think the Simplicity Studio logs would be helpful in troubleshooting the issue
then consider opening a support case ( Create a Support Case ) instead of creating a forum post.
The logs can be generated with [Help] > [Report Bug...] make sure "Export Simplicity Studio log files" is selected, then hit [Next], pick a location to store the zip file and rename it if you want, then hit [Next] again and [Finish] and upload the resulting zip file to the support case.
The support case is suggested because the zip file can be large and also for privacy. The logs do not contain confidential information, but it is possible to see project names and filenames in some of the logs.
10. Be patient and avoid making duplicates of your question.
I've designed a custom PCB using the EFM32TG11 processor.
I'm able to flash the processor with the "Micrium OS Blink" example and it works correctly. However I would like to use the pin tool in order to define the peripherals that I'm using for each of the pins.
If I convert the project to a Configurable Project (slcp) then I can access the pin tool, but the project no longer builds (even if I dont change anything).
I've read through the user guides (Start a Project - v1.0 - Simplicity Studio API Documentation Silicon Labs (silabs.com)) and the pictures seem to suggest that creating a new project should produce a .slcp file (without needing to convert the project to a configurable project), but this isn't what happens for me when I follow the instructions.
What is the correct workflow to generate a new Micrium OS project for custom hardware?
I'm using energy profiler at simplicity studio 4 .but it work bad. It is easy to hang up and can't be resume. when it is hang up ,I can't close simplicty studio 4 too. I must use task-manager of win 10 to close simplicty studio 4 . only I close simplicty studio 4 and open it , and open energy profiler, energy profiler can be use again. what reason?
I'm using Simplicity studio 5 . and I use "installation manager/install by connecting devices" to get tool which I want。 My SDK is EFR32xG22 2.4 GHz 6 dBm RB, WSTK Mainboard , system is win10 64bit . when I started installation, it worked for a few minutes ,then it stopped at "Installing com.silabs.sdk.gecko_platform.v3.1.feature.feature.group" and can't continue. why?
Is there any way to pass chosen defined-symbols to C compiler on CLI when using BuildExistingProject_v2.py so that CI can automatically build 2 flavors with OPTION1=1 (w/ sequence A) and not (w/ sequence B) with the C code like below?
#if OPTION1
// Run sequence A
#else
// Run sequence B
#endif
I know symbols can be defined for C compiler on Simplicity Studio GUI , but I want to know how to pass defined symbols dynamically for every single headless build (probably with "-D" option).
When I open a C example code (blinking) for MCU C8051F38x from simplicity studio and compile this example code I have no error and it compile correctly.
I wanted to add U8 and U16 variable in this C example code and I got error C129
I think that the compiler don't know what is U8 and U16...
But in some other C code that I created long time ago, I know that all my C code compiled with U8 and U16 var.
I will try to describe my problem with a example, I will use the blinking example C code provided by simplicity studio for MCU C8051F38x :
When I create a new blinking example C code, and, I change nothing, it compile correctly.
After, I add variable "U8 tmp = 5;" for example, I try to compile and I got compilation error.
When I replace "U8 tmp = 5;" by "uint8_t tmp = 5;", I try to compile and it compile correctly.
When I want to add for example variable "U16 tmp = 10;" I have compilation error too.
I've tried to use Simplicity Studio on my laptop running debian sid, as well as inside the debian stretch (9) container I've made for Simplicity Studio v4 (which doesn't work in later releases). All packages listed in setup.sh exist in both releases (except "wine32" should be "wine32:i386", even on Ubuntu) and I've installed them in both environments. The debian stretch container also has all the packages that were needed to get Simplicity Studio v4 working. In both environments I run into essentially the same roadblock.
After the splash screen, the workspace window looks normal (albeit barren, but this is expected with no tools installed yet). On top of this I get a modal dialog box which is completely empty. This is accompanied by the following log message:
I've tried resizing the dialog box to see if that would convince it to render any content, but it does not. After dismissing the empty dialog box using the escape key the behaviour differs between debian sid and stretch. On sid I get the following log messages and Simplicity Studio exits:
DRR: onWebSocketClose CALLED statusCode=1001 reason=null
com.silabs.ss.platform.internal.device.ui.servlet.DevicesWebSocketCreator$1: onWebSocketClose CALLED statusCode=1001 reason=null
id: helpContents
id: com.silabs.ss.tool.launcher.ui.licensing.menu
id: additions
id: org.eclipse.equinox.p2.ui.sdk.update
id: org.eclipse.equinox.p2.ui.sdk.install
id: com.silabs.ss.tool.launcher.ui.setuptask.command
id: com.silabs.ss.tool.launcher.ui.regkit.command
id: com.silabs.ss.tool.launcher.ui.doc.properties.command
id: com.silabs.ss.tool.launcher.ui.bugreport.command
id: com.silabs.ss.tool.launcher.toolbar.updatesCommand
id: com.silabs.ss.tool.launcher.ui.offline.command
id: null
id: about
com.silabs.ss.platform.internal.device.ui.servlet.DevicesWebSocketCreator$1: onWebSocketClose CALLED statusCode=1001 reason=null
DRR: onWebSocketClose CALLED statusCode=1001 reason=null
DRR: onWebSocketClose CALLED statusCode=1001 reason=null
2021-01-18 18:49:16.280:INFO:oejs.session:Framework stop: node0 Stopped scavenging
On stretch I get the following log messages and Simplicity Studio continues to run:
Exception in thread "TeamDev API access" java.lang.NullPointerException
at com.silabs.ss.support.browser.api.html.jxbrowser.JxBrowserService.lambda$33(JxBrowserService.java:436)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
id: helpContents
id: com.silabs.ss.tool.launcher.ui.licensing.menu
id: additions
id: org.eclipse.equinox.p2.ui.sdk.update
id: org.eclipse.equinox.p2.ui.sdk.install
id: com.silabs.ss.tool.launcher.ui.setuptask.command
id: com.silabs.ss.tool.launcher.ui.regkit.command
id: com.silabs.ss.tool.launcher.ui.doc.properties.command
id: com.silabs.ss.tool.launcher.ui.bugreport.command
id: com.silabs.ss.tool.launcher.toolbar.updatesCommand
id: com.silabs.ss.tool.launcher.ui.offline.command
id: null
id: about
The resulting environment is mostly useless however since no tools are installed. Clicking the Install button results in a normal-looking progress dialog while it's checking for installation options, but then it again shows an empty dialog box. Dismissing this one using escape results in the following log messages:
Exception in thread "pool-8-thread-2" java.lang.NullPointerException
at com.silabs.ss.support.browser.api.html.jxbrowser.JxBrowserService.lambda$33(JxBrowserService.java:436)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Here's an inventory of some actions I've tried and their results:
File menu -> only has Exit and Switch Workspace
Help menu -> License Manager: empty dialog box
Help menu -> Show Active Keybindings: works normally
Help menu -> Update Software: empty dialog box
Help menu -> About Simplicity Studio: does nothing
Is there a way to just download the Gecko SDK directly? I think that's the only part of Simplicity Studio that I currently use anyway since I really don't like using Eclipse, so I build from the commandline and use openocd+gdb for debugging.
However, under "Use this reference source" I could only find "Version on disk" as the available option. Do you know what I need to do so "A Git Revision" can be selected instead?
For version control, I currently navigate to the project folder and Git Bash there to manage the changes.
When I installed Simplicity Studio, I successfully logged in for the first time, but the software prompted me to log in again, otherwise I would not have permission to access the SDK. But the login interface can't come out, just like the following, what's the matter? I installed it in a virtual machine.There is no problem with the network and you can go online.No anti-virus software installed. The firewall is also turned off.
I would like to enable some extra warning flags, but the files from the SDK are quite noisy when I do, and it makes it difficult to keep track of my own files' warnings. To achieve this goal, I thought of enabling the desired warnings at the project level (right click on project, properties Build Settings, GNU C compiler warnings, and enable wall, wextra and wconversion), and then, on those folders where I have sdk files, I do the same thing at the folder level, but add the inhibit all flags option (-w). I have a project on SDK 2.4.2 (don't know if that makes a difference) compiled with GCC 4.9 and that works beautifully (I think): I get warnings only on my files, and on the SDK files that are linked to the project instead of being copied.
I created a project on SDK 2.13.2, and tried the same route, but there's no way to make it work. No matter what combination of flags I enable or disable, I always get warnings for all the files in the project. Maybe I'm doing something stupid: maybe the project properties override the folder properties? But I don't get why it works in one project and not in others. I suspect that, if a SDK .c file is compiled by itself, then the warning supression works, but if I add a SDK file to the compilation unit (via an include, for example on "main.c") then the -w flag is not applied, as main.c has all the warnings set. Am I correct on my assumption?
My question is, is there a way to override the settings and suppress the SDK files warnings?
I'm working on a project using the BGM13s32 MCU. I started the project while in home office, on a windows 10 machine. Now that I'm back at the "regular office", and need to set my linux workstation up too.
The project has been working flawlessly on Simplicity Studio 5 on win.10, flashing the board with my usb-connected J-Link Plus.
On linux (Ubuntu 20.04 LTS - officially supported by SILabs) the j-link simply refuses to flash the firmware to the board. It can find the j-link, compiles, tries to erase the flash memory, but fails (never goes through the "erasing range" stage). Then it stops with the rather un-informative message : "multiple problems have occured" "unspecified error during flashing".
To make sure that I didn't botch anything while importing the project to the new machine, I also tried with an empty "soc ibeacon" example project. This also works flawlessly on my win10 machine at home, but shows the same symptoms on the ubuntu machine.
I have installed the segger software package (JlinkConfig etc are available in path). And following some advice here, I replaced all the libjlinkarm.so* libraries in "developer/adapterpacks/*" with the files found in "/opt/SEGGER/JLINK" (taking care to refresh the linked files to point to the updated libraries). This didn't change anything.
Does anyone have a clue how to get this to work? Or do I have to switch to windows?
Forum
Survey: Share your development experience with us
At Silicon Labs we highly value your feedback and always strive for improvement. Please share your experiences with our IoT development tools by filling out our short survey.
Your feedback will help us focus our improvements to serve you better, and it should take less than five minutes of your time.
Enter the survey here: https://www.surveymonkey.com/r/SLIOTDXC
Regards,
IoT Development Team
Tips for troubleshooting and asking questions
1. Clarify to yourself what the specific issue is.
2. Apply basic troubleshooting:
3. For installation issues review these two Knowledge Base Articles (KBAs):
Configuring Simplicity Studio to Work with Proxy Servers
Installing SSL Security Certificates for Simplicity Studio Updates
4. Consult the quick start guides and user guides. Sources include:
5. Search to see if someone has asked the same question already.
6. Include the relevant parts of your development setup in the problem description. Examples include:
7. Include steps to reproduce the problem or specific conditions when the issue is observed.
8. Does switching to a new workspace resolve the issue? ([File] -> [Switch Workspace] -> [Other...])
9. Consider providing Simplicity Studio logs
If you think the Simplicity Studio logs would be helpful in troubleshooting the issue
then consider opening a support case ( Create a Support Case ) instead of creating a forum post.
The logs can be generated with [Help] > [Report Bug...] make sure "Export Simplicity Studio log files" is selected, then hit [Next], pick a location to store the zip file and rename it if you want, then hit [Next] again and [Finish] and upload the resulting zip file to the support case.
The support case is suggested because the zip file can be large and also for privacy. The logs do not contain confidential information, but it is possible to see project names and filenames in some of the logs.
10. Be patient and avoid making duplicates of your question.
For general community usage please refer to the Silicon Labs Community Guidelines.
Generating a Configurable Project for custom EFM32TG11 hardware
I've designed a custom PCB using the EFM32TG11 processor.
I'm able to flash the processor with the "Micrium OS Blink" example and it works correctly. However I would like to use the pin tool in order to define the peripherals that I'm using for each of the pins.
If I convert the project to a Configurable Project (slcp) then I can access the pin tool, but the project no longer builds (even if I dont change anything).
I've read through the user guides (Start a Project - v1.0 - Simplicity Studio API Documentation Silicon Labs (silabs.com)) and the pictures seem to suggest that creating a new project should produce a .slcp file (without needing to convert the project to a configurable project), but this isn't what happens for me when I follow the instructions.
What is the correct workflow to generate a new Micrium OS project for custom hardware?
Regards,
Errol
energy profiler is easy to hang up and can't be resume
install by connecting devices
I'm using Simplicity studio 5 . and I use "installation manager/install by connecting devices" to get tool which I want。 My SDK is EFR32xG22 2.4 GHz 6 dBm RB, WSTK Mainboard , system is win10 64bit . when I started installation, it worked for a few minutes ,then it stopped at "Installing com.silabs.sdk.gecko_platform.v3.1.feature.feature.group" and can't continue. why?
How to pass defined symbols to C compiler for headless builds
Hi,
We're running CI builds based on "AN1121: Headless Builds with Simplicity Studio v4" like below.
Is there any way to pass chosen defined-symbols to C compiler on CLI when using BuildExistingProject_v2.py so that CI can automatically build 2 flavors with OPTION1=1 (w/ sequence A) and not (w/ sequence B) with the C code like below?
I know symbols can be defined for C compiler on Simplicity Studio GUI , but I want to know how to pass defined symbols dynamically for every single headless build (probably with "-D" option).
Relative paths or Workspace paths in "Other objects"
Using Simplicity Studio SV4.1.13.9
I'd like to use a Workspace relative path in "Other objects"
"./BL652/autorun.o" doesn't work.
${workspace_loc:/${ProjName}/BL652/autorun.o} fails at the link stage with:
U8 U16 variable make compilation error C129
Dear all,
When I open a C example code (blinking) for MCU C8051F38x from simplicity studio and compile this example code I have no error and it compile correctly.
I wanted to add U8 and U16 variable in this C example code and I got error C129
I think that the compiler don't know what is U8 and U16...
But in some other C code that I created long time ago, I know that all my C code compiled with U8 and U16 var.
I will try to describe my problem with a example, I will use the blinking example C code provided by simplicity studio for MCU C8051F38x :
When I create a new blinking example C code, and, I change nothing, it compile correctly.
After, I add variable "U8 tmp = 5;" for example, I try to compile and I got compilation error.
When I replace "U8 tmp = 5;" by "uint8_t tmp = 5;", I try to compile and it compile correctly.
When I want to add for example variable "U16 tmp = 10;" I have compilation error too.
What can be the problem ?
Why U8 and U16 is an error for this C compiler ?
Is U8 and uint8_t same/equivalent ?
Regards,
Nikola
Difference in 2 projects containing same code
Hi All,
I have a task in which I need to
1. create a project
2. replace few files so that the code matches the original code (but .cproject file of the projects is different)
3. build the project to generate .s37
But when a file comparison is done on the resultant .s37 binary with the original .s37 binary, both are not same.
Is this expected behavior, if so, will this affect the functionality of the resultant binary?
Thanks a lot,
Vaishnavi
unable to use Simplicity Studio v5 on debian
I've tried to use Simplicity Studio on my laptop running debian sid, as well as inside the debian stretch (9) container I've made for Simplicity Studio v4 (which doesn't work in later releases). All packages listed in setup.sh exist in both releases (except "wine32" should be "wine32:i386", even on Ubuntu) and I've installed them in both environments. The debian stretch container also has all the packages that were needed to get Simplicity Studio v4 working. In both environments I run into essentially the same roadblock.
After the splash screen, the workspace window looks normal (albeit barren, but this is expected with no tools installed yet). On top of this I get a modal dialog box which is completely empty. This is accompanied by the following log message:
I've tried resizing the dialog box to see if that would convince it to render any content, but it does not. After dismissing the empty dialog box using the escape key the behaviour differs between debian sid and stretch. On sid I get the following log messages and Simplicity Studio exits:
On stretch I get the following log messages and Simplicity Studio continues to run:
The resulting environment is mostly useless however since no tools are installed. Clicking the Install button results in a normal-looking progress dialog while it's checking for installation options, but then it again shows an empty dialog box. Dismissing this one using escape results in the following log messages:
Here's an inventory of some actions I've tried and their results:
Is there a way to just download the Gecko SDK directly? I think that's the only part of Simplicity Studio that I currently use anyway since I really don't like using Eclipse, so I build from the commandline and use openocd+gdb for debugging.
Quick Diff on Simplicity Studio 5 with Git Commit as Reference
Hello,
I would like the Simplicity Studio 5 IDE to show the current changes compared to the code committed in git (within the same branch). After doing some quick search I found this link:
https://www.systutorials.com/how-to-make-eclipse-to-highlight-changed-lines-compared-to-git-commit/
However, under "Use this reference source" I could only find "Version on disk" as the available option. Do you know what I need to do so "A Git Revision" can be selected instead?
For version control, I currently navigate to the project folder and Git Bash there to manage the changes.
Thank you all in advance for helping!
simplicity studio sign in has a problem
GNU Debugger (GDB) SSv5
Hi!
In SSv5 GNU Debugger (GDB) can work with external j-link and custom board. On devkits Debugger work well, but in custom board case I getting error:
Error in services launch sequence
Starting J-Link GDB Server timed out.
Supress warnings from the SDK files
Hi,
I would like to enable some extra warning flags, but the files from the SDK are quite noisy when I do, and it makes it difficult to keep track of my own files' warnings. To achieve this goal, I thought of enabling the desired warnings at the project level (right click on project, properties Build Settings, GNU C compiler warnings, and enable wall, wextra and wconversion), and then, on those folders where I have sdk files, I do the same thing at the folder level, but add the inhibit all flags option (-w). I have a project on SDK 2.4.2 (don't know if that makes a difference) compiled with GCC 4.9 and that works beautifully (I think): I get warnings only on my files, and on the SDK files that are linked to the project instead of being copied.
I created a project on SDK 2.13.2, and tried the same route, but there's no way to make it work. No matter what combination of flags I enable or disable, I always get warnings for all the files in the project. Maybe I'm doing something stupid: maybe the project properties override the folder properties? But I don't get why it works in one project and not in others. I suspect that, if a SDK .c file is compiled by itself, then the warning supression works, but if I add a SDK file to the compilation unit (via an include, for example on "main.c") then the -w flag is not applied, as main.c has all the warnings set. Am I correct on my assumption?
My question is, is there a way to override the settings and suppress the SDK files warnings?
Thanks!
Segger J-link on Ubuntu with Simplicity Studio 5
Hello,
I'm working on a project using the BGM13s32 MCU. I started the project while in home office, on a windows 10 machine. Now that I'm back at the "regular office", and need to set my linux workstation up too.
The project has been working flawlessly on Simplicity Studio 5 on win.10, flashing the board with my usb-connected J-Link Plus.
On linux (Ubuntu 20.04 LTS - officially supported by SILabs) the j-link simply refuses to flash the firmware to the board. It can find the j-link, compiles, tries to erase the flash memory, but fails (never goes through the "erasing range" stage). Then it stops with the rather un-informative message : "multiple problems have occured" "unspecified error during flashing".
To make sure that I didn't botch anything while importing the project to the new machine, I also tried with an empty "soc ibeacon" example project. This also works flawlessly on my win10 machine at home, but shows the same symptoms on the ubuntu machine.
I have installed the segger software package (JlinkConfig etc are available in path). And following some advice here, I replaced all the libjlinkarm.so* libraries in "developer/adapterpacks/*" with the files found in "/opt/SEGGER/JLINK" (taking care to refresh the linked files to point to the updated libraries). This didn't change anything.
Does anyone have a clue how to get this to work? Or do I have to switch to windows?
Greetings,
Indriði.