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#

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

  2. During the installation, make the following selections:

    • Select Install by technology type.

      Select Install by technology typeSelect Install by technology type

    • Select the WiSeConnect extension under 32-bits and Wireless MCUs.

      Select WiSeConnect 3 ExtensionSelect WiSeConnect 3 Extension

    • Click Next to install the Simplicity SDK with the WiSeConnect extension.

      Select Development PackagesSelect Development Packages

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

  1. In the Simplicity Studio home page, select Install > Manage installed packages.

    Manage Installed PackagesManage Installed Packages

  2. Select the Toolchains tab.

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

    Install GNU ARM Toolchain 12.2.1Install GNU ARM Toolchain 12.2.1

  4. The toolchain will be installed.

  5. Close the Installation Manager window.

  6. Click Preferences.

  7. Expand the Simplicity Studio section in the Preferences dialog and select the Toolchains section.

  8. Select GNU ARM v12.2.1 and unselect all other toolchains shown.

  9. Click Apply and Close.

    Select the GNU ARM v12.2.1 toolchainSelect the GNU ARM v12.2.1 toolchain

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:

  1. In the Simplicity Studio home page, select Install > Manage installed packages.

    Manage Installed PackagesManage Installed Packages

  2. Select the SDKs tab.

  3. 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 from SDKs tabInstall from SDKs tab

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.

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

  2. 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>
  3. Launch Simplicity Studio.

  4. Connect the EFR32 and SiWx917 boards to your computer.

  5. In the Debug Adapters pane, select your radio board.

  6. In the General Information section, click Manage SDKs.

    Click the Manage SDKs button for EFR32 boardClick the Manage SDKs button for EFR32 board

  7. The Preferences window will be opened in the SDKs section.

  8. Select Simplicity SDK (formerly Gecko SDK) Suite vx.x.x and click Add Extension....

    Add ExtensionAdd Extension

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

    Click the Browse buttonClick the Browse button

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

  11. Studio will detect the WiSeConnect 3 SDK extension.

  12. Select the detected extension and click OK.

    Add SDK Extensions WindowAdd SDK Extensions Window

  13. If a Verify SDK Extension popup is displayed, click Trust.

    Click the Trust buttonClick the Trust button

  14. The selected WiSeConnect 3 extension will be displayed.

  15. Click Apply and Close.

    Selected ExtensionSelected Extension
    Connect Custom Board to Computer

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

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

    OPN detectionOPN detection

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

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

  2. In the Tools dialog, select Simplicity Commander and click OK.

    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 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 the Manage SDKs butttonClick the Manage SDKs buttton

    Selected ExtensionSelected Extension

  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 of 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. Select the Launcher, then go to the All Products tab and enter the SiWx917 part number in the Search 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 Preferred 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 AND 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.

Configure an Application#

  1. Click Simplicity IDE to open the Project Explorer pane.

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

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

    • In the Project Explorer pane, 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 component from the WiSeConnect 3 extension. See here for the instructions for adding a component.

    Common Flash componentCommon Flash component

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

      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 3 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).

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.

  1. Make sure the configurations mentioned above are noted and the necessary modifications are done. Only then, proceed to build the application.

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

    OPN Build ProjectOPN Build Project

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#

  1. Build the application as described in the Build Application section.

  2. In the Project Explorer pane, right-click on your project name and select Run As > 1 Silicon Labs ARM Program.

    Flash ApplicationFlash Application

  3. The application binary will be flashed on the radio board and the application will start running.

  4. View the standard output or enter input data as needed.

Flash an Application Binary#

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

      M4 rpsM4 rps

  2. 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).

    Browse the fileBrowse the file

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.