Developing with WiSeConnect™ SDK 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 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 6

  • Simplicity software development kit (SiSDK (formerly GSDK))

  • VS Code with Simplicity Studio for VS Code extension (Version 1.6.1 or higher)

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 following installation methods for Simplicity Studio 6:

Install from Scratch#

  1. Download the latest version of Simplicity Installer and follow the installation instructions.

  2. During the installation, make the following selections:

    • Select the INSTALLATION WIZARD option.

      Select Installation wizardSelect Installation wizard

    • Select TECHNOLOGY INSTALL.

      Select Install by technology typeSelect Install by technology type

    • Select the Wi-Fi option.

      Select Wi-Fi OptionSelect Wi-Fi Option

    • Click Next, and verify that Wiseconnect is selected under the SDK to be installed.

      Select Development PackagesSelect Development Packages

Upgrade from the Demo-only Studio Edition#

  • If you have installed the demo version using the option shown below:

    Select Development PackagesSelect Development Packages

  • Continue from step 2 in the Install from Scratch section.

Install the GNU ARM v12.2.1 Toolchain#

Note: From v4.4.0 on, Simplicity SDK (SiSDK, formerly Gecko SDK/GSDK) requires v12.2.1 of the GNU ARM toolchain to compile a project successfully.

  1. Launch the Simplicity Installer.

  2. Click on the Advanced option.

    Toolchain install 1Toolchain install 1

  3. Select Gcc-Arm-None-Eabi 12.2.Rel1.

  4. Check the box and click install.

    Toolchain install 2Toolchain install 2

Note: The studio installs this component by default during a FULL INSTALL.

Select Development PackagesSelect Development Packages

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 Extension#

If you already selected the WiSeConnect extension in the Install Simplicity Studio section, you may skip this section.

Before installing the WiSeConnect extension, upgrade to a compatible SiSDK (formerly GSDK) version if you have not already done so. See the Prerequisites section for the supported SiSDK (formerly GSDK) versions.

You can install WiSeConnect using one of the following methods:

Install WiSeConnect from Settings#

Note: Make sure that you use SiSDK and WiSeConnect SDK versions from the same release. To determine which SiSDK and WiSeConnect SDK versions are in a particular release, see the Compatible Software section of Release Notes.

  1. Download the WiSeConnect source code from the following URL after substituting x.x.x with the desired release version:

    https://github.com/SiliconLabs/wiseconnect/archive/refs/tags/vx.x.x.zip
    • If you don't know your release version, go to the GitHub Releases Page and select the version to download.

  2. Unzip the downloaded wiseconnect-x.x.x.zip file. It will be extracted into a folder structure similar to the following:

    wiseconnect-x.x.x
    |--- wiseconnect-x.x.x
    |------ <source code>
  3. Launch Simplicity Studio.

  4. In the Simplicity Studio home page, go to SETTINGS and select the SDKs tab.

  5. Select Simplicity SDK (formerly Gecko SDK) Suite vx.x.x and click ADD EXTENSION.

    Manage Installed PackagesManage Installed Packages

  6. In the Add SDK Extensions window, click Browse.

    Click the Browse buttonClick the Browse button

  7. Locate and select the wiseconnect-x.x.x sub-folder extracted in step 2 above which contains the source code.

  8. Studio will detect the WiSeConnect SDK extension.

  9. Select the detected extension and click FINISH.

    Add SDK Extensions WindowAdd SDK Extensions Window

  10. If a Verify SDK Extension pop-up is displayed, click Trust.

    Click the Trust buttonClick the Trust button

  11. The selected WiSeConnect extension will be displayed.

  12. Click REFRESH and navigate to HOME or PROJECTS.

    Selected ExtensionSelected Extension

Install the VS Code Extension#

  1. Navigate to the Extensions tab in VS Code and search for Simplicity Studio for VS Code extension.

    Search VS Code ExtensionSearch VS Code Extension

  2. Install the extension.

    Install VS Code ExtensionInstall VS Code Extension

  3. Once the extension is installed and restarted, it will automatically detect the studio.

Note: You can confirm this when the circle in the lower-right corner turns white. Verify VS Code ExtensionVerify VS Code Extension

Connect Custom Board to Computer#

  1. 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.

  2. Simplicity Studio will detect and display the custom board in the DEVICES section. You must provide the SiWx917 OPN as shown in the following image.

    OPN detectionOPN detection

Update SiWx91x Connectivity Firmware#

Note: The SiWx917 connectivity firmware version is tightly coupled with the WiSeConnect 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 extension

  1. In the Simplicity Studio home page, click TOOLS.

  2. Select Commander and click Open Tool.

    Select CommanderSelect Commander

  3. In the Simplicity Commander window, click Select Kit and choose your custom board.

    Select KitSelect Kit

  4. In the Simplicity Commander window, go to the Device tab and select Cortex-M4 as shown in the reference below.

    Select KitSelect Kit

  5. In the Simplicity Commander window, go to the Device tab and enter Si917, then click on Reload Tab.

    Select KitSelect Kit

  6. In the navigation pane, go to the Flash section.

  7. Click Browse next to the Binary File field.

    Select the Flash OptionSelect the Flash Option

  8. Locate and select the firmware file to flash from within the appropriate sub-folder of the WiSeConnect 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 extension path is the location where the extension was installed during set up. For more information, refer to the installation instructions. If you're not sure what the path is, refer to the location in the Settings > SDKs page by clicking the Simplicity SDK suite.

      Click the Manage SDKs butttonClick the Manage SDKs buttton

  9. Click Flash.

    Click the Flash buttonClick the Flash button

  10. The firmware flashes and the Log Window displays the message: "Flashing completed successfully!"

Note: See the troubleshoot a firmware update failure section in case failure occurs while updating the firmware.

Create a Project#

Note: We recommend using the SI91x - Blinky example with this guide.

  1. Log in to Simplicity Studio and connect the SiWx91x™ to your computer.

  2. Check for all the options. Click the search tab and enter the SiWx917 part number in the Search by product name text box. OPN SelectionOPN Selection

  3. The Launcher page will display the selected SoC details.

  4. Select the OVERVIEW tab.

  5. Verify the following in the General Information section:

    • The Target Part is the SiWx917 part number.

    • The SDK is the version you selected earlier. (Refer to the Setup Software section to note the SDK versions).

    OPN DetailsOPN Details

  6. Select the EXAMPLE PROJECTS & DEMOS tab.

    OPN Example Projects ListOPN Example Projects List

  7. Locate the example you want and click CREATE.

    OPN Create ExampleOPN Create Example

  8. In the New Project Wizard window, click FINISH.

    OPN Create Example 2OPN Create Example 2

  9. Open the project in the editor with the Open in VS Code option.

    OPN Create Example 2OPN Create Example 2

Configure an Application#

  1. Navigate to the PROJECTS tab in Simplicity Studio and double-click on the project.

    Configure an applicationConfigure an application

  2. To enable the user-configurable macros (e.g., GPIO macros):

    • Install the ENABLE USER CONFIGURATION component from the WiSeConnect extension in the SOFTWARE COMPONENTS tab. See here for the instructions for adding a component.

      OPN Install "Enable USER CONFIGURATION" MacroOPN Install "Enable USER CONFIGURATION" Macro

    • In the Simplicity VS Code IDE, navigate to the config folder and open the RTE_Device_917.h file. Edit the peripheral GPIO macros in this file as per your board connections.

      OPN RTE_DEVICE_917.h FileOPN RTE_DEVICE_917.h File

  3. Install the Common Flash Component from the WiSeConnect extension. Refer to here for instructions on adding a component.

  4. In addition to the mandatory ENABLE USER CONFIGURATION and Common Flash Component, a few IC/Module OPNs require additional external components to be installed.

    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 extension.

      External Flash componentExternal Flash component

    • 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.

      PSRAM VariantPSRAM Variant

    • Install the No External PSRAM component.

      External PSRAM componentExternal PSRAM component

    • See here for the instructions for adding a component.

  5. 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 extension.

      External Flash componentExternal Flash component

    • 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.

      External PSRAM componentExternal PSRAM component

  6. 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 in pin_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).

  • Install the 'RAM Execution' component for OPN based firmware update and powersave examples.

Build an 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.

Refer to here for the instructions to build the application.

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.

Refer to 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.

Refer to here for the instructions to flash the application.

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.

Debug an Application#

Refer to here for the instructions for debugging an application.

Add a Component#

  1. In the PROJECTS pane, double-click the project_name.slcp file.

  2. Select the SOFTWARE COMPONENTS tab.

    Install Component 1Install Component 1

  3. Select the SDK Extensions filter.

  4. Browse or search for and select the component that you want to install.

  5. Click Install.

    Install Component 2Install Component 2

    Note: The image is for illustration only. Component details shown may be outdated.

  6. Studio adds the component and displays a success message.

    Component Added SuccessfullyComponent Added Successfully

    Note: The image is for illustration only. Component details shown may be outdated.

    You may use the Component Editor to configure a component after adding it or to configure other components in your example.