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 exactlyb 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

  • Gecko software development kit (GSDK)

Note:

  • We recommend using the latest GSDK version.

  • Refer to the Release Notes for the GSDK version tested with this release.

Hardware#

  • SiWG917M111MGT - 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 e.g., type C to type A if the computer has a type A USB port and the board has a type C port.).

Setup Software#

You may setup the following software in this section while waiting to receive the hardware:

Connect SiWx91x™ 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 part number in the Connected Devices section.

    OPN detection

Note: The above snippet shows a SiWG917 radio board in the Connected Devices section. Instead, in the scenario where only the SiWx917 system-on-chip is used, it will display the part number name in the Connected Devices section as mentioned above.

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 Commander

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

    Select Kit

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

  5. Click Browse next to the Binary File field.

    Select the Flash Option

  6. Locate and select the firmware file to flash from within the connectivity_firmware sub-folder of the WiSeConnect 3 extension path.

    Note:

    • If you don't 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 shown on clicking Manage SDKs.

    Click the Manage SDKs buttton

    Selected Extension

  7. Click Flash.

    Click the Flash button

  8. The firmware will be flashed and the Log Window will display the message: "Flashing completed successfully!"

Note: See the troubleshoot a firmware update failure section in case of failure in 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 select the SiWx917 part number in the Connected Devices section on the Welcome to Simplicity Studio page and click Start.

    Start

    • Alternatively, you can also go to the Debug Adapters section and select the SiWx917 part number from the displayed list.

      OPN Selection

      Note: The above snippet shows a SiWG917 radio board in the Debug Adapters section. Instead, in the scenario where only the SiWx917 system-on-chip is used, it will display the part number name in the Debug Adapters section.

    • Alternatively, you can also go to the All Products tab and enter the SiWx917 part number in the Search product name text box.

      OPN 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 Details

  6. Select the EXAMPLE PROJECTS AND DEMOS tab.

    OPN Example Projects List

  7. Locate the example you want and click CREATE.

    OPN 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" Macro

    • Alternatively, you may navigate to the config folder in the Project Explorer pane and set the USER_CONFIGURATION_ENABLE macro to 1 in the RTE_Device_917.h file.

      OPN RTE_DEVICE_917.h 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 File

  3. To use the NVM3 library, install the Common Flash Component component from the WiSeConnect 3 extension. See here for the instructions for adding a component.

    Common Flash component

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

Build Application#

Note: If you upgraded from a 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 Project

Note: In some cases, user might require a few more configuration changes related to the specific peripheral in use. So, if additional warnings or errors are received, follow what warnings says, it redirects to the specific files. Modify the configurations there to resolve the remaining errors.

Note: See the troubleshoot an application build section in case of failure in 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.

Note: The flash memory map has been modified with WiSeConnect SDK v3.1.1. If you have an older radio board, you must migrate to the new memory map before flashing any firmware. Please follow the SiWG917 – TA Flash Memory Map Change Guide to perform a migration.

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 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. This file will be available under GNU ARM vXX.x.x - Default in the users 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 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 expects a .rps format application file to be loaded into it (Other file formats are not supported).

    Browse the file

Note: See the troubleshoot an application flash failure section in case the application fails to flash.

Configure the Debugger#

See here for the instructions to configure the debugger.

Debug an Application#

See here for the instructions for debugging an application.