Developing with WiSeConnect™ SDK v3.x with the SiWx91x™ system-on-chip on a Custom Board#
This guide describes how to develop applications on a custom board built on top of an SiWx91x™ system-on-chip using the WiSeConnect™ SDK v3.x in System-on-chip (SoC) mode, where both the application and the connectivity stack run on the SiWx91x™ chipset.
Note: The output images in this guide are for illustration purposes only. Details such as board names and version numbers may not exactly match the product.
Check Prerequisites#
Note: The hardware and software requirements mentioned in this section are specific to the example(s) recommended with this guide in the Create Project section. If you are working with a different example, refer to its README page for the hardware and software requirements. To see the README page of a specific example, click on the Go to README link next to it in the Examples page.
Software#
Simplicity Studio
Simplicity software development kit (SiSDK (formerly GSDK))
Note:
We recommend using the latest SiSDK (formerly GSDK) version.
Refer to the Release Notes for the SiSDK (formerly GSDK) version tested with this release.
Hardware#
SiWx91x - Wi-Fi 6 and Bluetooth Low Energy system-on-chip for SoC mode
Windows/Linux/MacOS computer with a USB port
A USB cable that is compatible with the computer's USB port and the board. (For example, type C to type A if the computer has a type A USB port and the board has a type C port).
Setup Software#
Setup the following software in this section while waiting to receive the hardware:
Install Simplicity Studio#
This section describes the installation methods for Simplicity Studio:
Install from Scratch when you are installing Simplicity Studio for the first time.
Upgrade from the Demo-only Studio Edition when you have previously run a Studio demo as described in Run the Demo with Simplicity Studio.
Install from Scratch#
Download the latest version of Simplicity Studio and follow the installation instructions.
During the installation, make the following selections:
Select Install by technology type.
Select the WiSeConnect extension under 32-bits and Wireless MCUs.
Click Next to install the Simplicity SDK with the WiSeConnect extension.
Continue to the Install the GNU ARM v12.2.1 Toolchain section to continue setting up software.
Install the GNU ARM v12.2.1 Toolchain#
Note: From v4.4.0 on, Simplicity SDK (formerly Gecko SDK) (SiSDK (formerly GSDK)) requires v12.2.1 of the GNU ARM toolchain to compile a project successfully. Following are the instructions to install the toolchain version and configure it with your new projects.
In the Simplicity Studio home page, select Install > Manage installed packages.
Select the Toolchains tab.
Click Install next to GNU ARM Toolchain (v12.2.rel1.xxxx.x) - 12.2.yyyy, where xxxx.x and yyyy may vary depending on the toolchain minor or patch version.
The toolchain will be installed.
Close the Installation Manager window.
Click Preferences.
Expand the Simplicity Studio section in the Preferences dialog and select the Toolchains section.
Select GNU ARM v12.2.1 and unselect all other toolchains shown.
Click Apply and Close.
Note: If you have an existing project, see Silicon Labs community page for instructions to configure the toolchain version in your project.
Install the WiSeConnect 3 Extension#
If you already selected the WiSeConnect extension in the Install Simplicity Studio section, you may skip this section.
Before installing the WiSeConnect 3 extension, upgrade to a compatible SiSDK (formerly GSDK) version if not already done. See the Prerequisites section for the supported SiSDK (formerly GSDK) versions.
You may install WiSeConnect 3 through one of the following alternative paths:
Installation Manager (recommended)
Manage SDKs Window (hardware required) Install WiSeConnect 3 through the Installation Manager
In the Simplicity Studio home page, select Install > Manage installed packages.
Select the SDKs tab.
Next to the WiSeConnect - 3.x.x extension, click Install.
Note: If you do not see WiSeConnect - 3.x.x extension under Simplicity SDK - 32-bit and Wireless MCUs, click on Check for Updates.
Install WiSeConnect 3 through the Manage SDKs Window#
Note:
You must have the hardware available before using these steps to install the WiSeConnect 3 extension.
Ensure that you are using the SiSDK and WiSeConnect 3 SDK versions from the same release. To verify the SiSDK and WiSeConnect 3 SDK versions from a release, refer to the Release Details section of WiSeConnect 3 SDK Release Notes for NCP.
Download the WiSeConnect v3.x source code from the following URL after substituting 3.x.x with the desired release version:
https://github.com/SiliconLabs/wiseconnect/archive/refs/tags/v3.x.x.zip
If you don't know your release version, go to the github releases page and select the version to download.
Unzip the downloaded
wiseconnect-3.x.x.zip
file. It will be extracted into a folder structure similar to the following:wiseconnect-3.x.x |--- wiseconnect-3.x.x |------ <source code>
Launch Simplicity Studio.
Connect the EFR32 and SiWx917 boards to your computer.
In the Debug Adapters pane, select your radio board.
In the General Information section, click Manage SDKs.
The Preferences window will be opened in the SDKs section.
Select Simplicity SDK (formerly Gecko SDK) Suite vx.x.x and click Add Extension....
In the Add SDK Extensions window, click Browse.
Locate and select the
wiseconnect-3.x.x
sub-folder extracted in step 2 above which contains the source code.Studio will detect the WiSeConnect 3 SDK extension.
Select the detected extension and click OK.
If a Verify SDK Extension popup is displayed, click Trust.
The selected WiSeConnect 3 extension will be displayed.
Click Apply and Close.
Connect Custom Board to Computer
To establish a connection, first link your custom board to a debugger using SWD/JTAG. Then connect the debugger to your computer using a compatible USB cable.
Simplicity Studio will detect and display the custom board in the Connected Devices section. You need to give the SiWx917 OPN as shown in the following image.
Update SiWx91x Connectivity Firmware#
Note: The SiWx917 connectivity firmware version is tightly coupled with the WiSeConnect 3 extension version. You must update the SiWx917 connectivity firmware when:
You first integrate an SiWx917 system-on-chip into your own custom board, or
You upgrade or downgrade your WiSeConnect 3 extension
In the Simplicity Studio home page, click Tools.
In the Tools dialog, select Simplicity Commander and click OK.
In the Simplicity Commander window, click Select Kit and choose your custom board.
In the Simplicity Commander window, go to the Device tab and select Cortex-M4 as shown in the reference below.
In the Simplicity Commander window, go to the Device tab and enter Si917, then click on Reload Tab.
In the navigation pane, go to the Flash section.
Click Browse next to the Binary File field.
Locate and select the firmware file to flash from within the appropriate sub-folder of the WiSeConnect 3 extension path:
For OPN SiWG917M110LGTBA, SIWG917Y110LGABA and SIWG917Y110LGNBA select the firmware file from the
connectivity_firmware/lite
sub-folder.For all other OPNs, select the firmware file from the
connectivity_firmware/standard
sub-folder.
Note:
If you do not see any files in the sub-folder, select All files in the file filter field in the Browse dialog.
The WiSeConnect 3 extension path is the one where the extension was downloaded during installation. If you're not sure what the path is, you may refer to the location in the Preferences > SDKs page uploads by clicking Manage SDKs.
Click Flash.
The firmware flashes and the Log Window displays the message: "Flashing completed successfully!"
Note: See the troubleshoot a firmware update failure section in case of failure occurs while updating the firmware.
Create a Project#
Note: We recommend using the SI91x - Blinky example with this guide.
Log in to Simplicity Studio and connect the SiWx91x™ to your computer.
Select the Launcher, then go to the All Products tab and enter the SiWx917 part number in the Search product name text box.
The Launcher page will display the selected SoC details.
Select the OVERVIEW tab.
Verify the following in the General Information section:
The Target Part is the SiWx917 part number.
The Preferred SDK is the version you selected earlier. (Refer to the Setup Software section to note the SDK versions)
Select the EXAMPLE PROJECTS AND DEMOS tab.
Locate the example you want and click CREATE.
In the New Project Wizard window, click FINISH.
Configure an Application#
Click Simplicity IDE to open the Project Explorer pane.
To enable the GPIO macros,
Install the ENABLE USER CONFIGURATION component from the WiSeConnect 3 extension. See here for the instructions for adding a component.
In the Project Explorer pane, navigate to the
config
folder and open theRTE_Device_917.h
file. Edit the peripheral GPIO macros in this file as per your board connections.
Install the Common Flash Component component from the WiSeConnect 3 extension. See here for the instructions for adding a component.
To configure stacked PSRAM SoCs like SiWG917M121XGTBA and SiWG917M141XGTBA that lack internal flash memory, additional configurations are necessary.
Three external flash size options are available: 2MB, 4MB, and 8MB. Install the required External Flash Component component from the WiSeConnect 3 extension.
Uninstall the already installed PSRAM Core and PSRAM Device components. Then proceed to re-install the PSRAM Core component. You will be prompted to specify the PSRAM device. In case of the SiWG917M121XGTBA SoC, select the APS1604M-SQR variant and for the SiWG917M141XGTBA SoC, select the APS6404L_SQRH variant.
Install the No External PSRAM component.
See here for the instructions for adding a component.
To configure the SiWG917M111XGTBA SoC that lacks internal memory, additional confiigurations are necessary.
Three external flash size options are available: 2MB, 4MB, and 8MB. Install the required External Flash Component component from the WiSeConnect 3 extension.
The SoC supports the use of external PSRAM. When using an external PSRAM, install the necessary External PSRAM component. The available size options are 2, 4, and 8 MB.
Configure the settings for your example. For SI91x - Blinky (the recommended example for this guide) or for other examples, see the Application Build Environment section in the README page for configuration instructions.
Note:
You may use the Component Editor to configure the components in your example.
You may use the Pintool to configure the pin mappings in your project for your SiWx917 system-on-chip.
Use the port macros from
sl_gpio_board.h
rather than those auto-generated inpin_config.h
.Edit the configuration in
RTE_Device_917.h
in order to switch the GPIOs 64 to 75 between High Power (HP) and Ultra-Low Power (ULP).
Build Application#
Note: If you upgraded from a SiSDK (formerly GSDK) version earlier than v4.4.0, please upgrade your GNU ARM Toolchain. See the GNU ARM v12.2.1 Toolchain section.
Make sure the configurations mentioned above are noted and the necessary modifications are done. Only then, proceed to build the application.
In the Project Explorer pane, right-click the project name and select Build Project. You may also click the Build button with a hammer icon on the Simplicity IDE perspective toolbar.
Note: In some cases, you might require a few more configuration changes related to the specific peripheral in use. So, if additional warnings or errors occurs, follow the details mentioned in the warning detail box, it redirects to the specific files. Modify the configurations to resolve the remaining errors.
Note: See the troubleshoot an application build section in case of failure occurs while building the application.
Flash an Application#
Note: The SiWx91x SoC comes pre-flashed with a bootloader. A bootloader image does not need to be flashed separately.
There are two alternative methods to flash an application to the application processor of the SiWx91x device:
Once you flash the SI91x - Blinky example (the recommended example for this guide), you may refer to the Test the Application section of its README page to explore its output. The other sections of the README like the Purpose/Scope section and Overview section (not present in some README's) provide more information about the example.
Flash an Application Built Using Simplicity Studio#
Build the application as described in the Build Application section.
In the Project Explorer pane, right-click on your project name and select Run As > 1 Silicon Labs ARM Program.
The application binary will be flashed on the radio board and the application will start running.
View the standard output or enter input data as needed.
Flash an Application Binary#
If the binary was built as described in the Build an Application section, a file with a
.rps
extension is generated. The file would be available under GNU ARM vXX.x.x - Default in your workspace. To see its location in your computer's file system, right-click on the.rps
file and select Show In > System Explorer.Alternatively, you may have obtained a
.rps
file through another means such as someone else building and providing the binary to you.
The instructions to flash the application binary are almost the same as those for flashing an SiWx91x firmware file, except for the point noted below:
Instead of choosing the SiWx91x firmware file, select the
.rps
you obtained in step 1 above.
Note:
If you don't see
.rps
files in the sub-folder, select All files in the file filter field in the Browse dialog.The SiWx91x SoC device supports *.hex, *.isp.bin, *.rps, and *.s37 format application files (other file formats are not supported).
Note: See the troubleshoot an application flash failure section in case the application fails to flash.
Update SiWx91x Connectivity Firmware#
Note: The SiWx917 connectivity firmware version is tightly coupled with the WiSeConnect 3 extended version. You must update the SiWx917 connectivity firmware when:
You first receive an SiWx917 Pro kit
You first receive an SiWx917 board, or
You upgrade or downgrade your WiSeConnect 3 extension
You can update the SiWx91x connectivity firmware by using one of the following paths:
Configure the Debugger#
See here for the instructions to configure the debugger.
Debug an Application#
See here for the instructions for debugging an application.