Wi-Fi Commissioning Micrium OS Example on WGM160P (BRD4321A)
This document describes how to run the Wi-Fi Commissioning example on a WGM160P. The example is based on the combo capacity of the WF200, meaning its ability to behave simultaneously as an Access Point and as a Station in order to demonstrate a typical use case of field deployment where an operator installs the device and configures it to connect to a specific Access Point using a Webpage.
This demonstration runs the Wi-Fi Full MAC driver meant to communicate with the WF(M)200 Silicon Labs Wi-Fi transceivers.
- SoftAP: WF(M)200 configured in Wi-Fi Software-enabled Access Point mode
- Station: WF(M)200 configured in Wi-Fi Station mode
- AP: Any 'home network' or 'office network' Wi-Fi Access Point
- Device: The PC or phone used to access the demo
The WGM160P Wi-Fi Module Radio Board is a standalone module that can run once powered up through the USB port, but a Silicon Labs Wireless STK baseboard (SLWSTK6121A) is necessary to download the module. It also offers all the possibilities provided by Simplicity Studio (download, debug, energy profiler, ...).
The required software includes Simplicity Studio 4 and the Gecko SDK Suite (32-bit MCU SDK v5.9, Gecko Platform SDK v2.7 and Micrium OS Kernel SDK v5.8)
The example project and the Wi-Fi Full MAC driver available in our https://github.com/SiliconLabs/wfx-fullMAC-tools GitHub repository.
The main software components used by this example are:
- Micrium OS Kernel, which a Real-Time Operating System (RTOS) designed to run on Silicon Labs devices only. It is provided free of charge.
- Lightweight IP (LwIP), which is an open-source TCP/IP stack licensed under the BSD license.
Set up your Kit
Connect the WGM160P Module Board to the Silicon Labs Wireless STK baseboard.
Ensure that the power selector switch on the Silicon Labs Wireless STK baseboard is in the [AEM] position.
Provide power by connecting the [DBG] USB connector on the Silicon Labs Wireless STK baseboard to the PC using the provided USB cable.
Install Simplicity Studio and the SDK
Simplicity Studio 4 is a free software suite needed to start developing your application.
Download the latest version of Simplicity Studio 4 from the following link: http://www.silabs.com/simplicity-studio.
Create a Silicon Labs account.
Register your WGM160P Wi-Fi Module Starter Kit by entering the Serial Number found in the packaging.
In the Installation Manager, select the option [Install by Device].
Connect the WGM160P Wi-Fi Module Starter Kit, select it from the panel [Connected Devices] and move it to the panel [Selected Devices].
Sign in with your Silicon Labs account credentials and install the Gecko SDK Suite (espcecially 32-bit MCU SDK v5.9, Gecko Platform SDK v2.7 and Micrium OS Kernel SDK v5.8).
Clone the GitHub Repository
The example is hosted in our GitHub repository: https://github.com/SiliconLabs/wfx-fullMAC-tools. The source files have to be retrieved by cloning the repository on you computer before starting using the example.
Please refer to the Get started section of the repository to use the GitHub example. Or if you wish to download the zip file from github rather than clone the repository using Git, make sure to download the wfx_fmac_driver and copy it to wfx-fullMAC-tools/wfx-fullMAC-driver.
Import the Project
This procedure is important and has to be followed carefully. The default import method must not be used, an alternate import method is used instead to ease the source code management, especially the GitHub repository updates and sharing sources between the examples. The main difference with this alternate method is that the source code is not copied into your workspace. The sources used are directly the ones you retrieved when cloning the repository. One advantage for you is to benefit of the "git" commands to see if you applied changes to the repository, revert them if necessary, or update easily the repository.
Open Simplicity Studio 4 and press [File -> Import…].
Click the link [More Import Options...].
Select the option [General -> Existing Projects into Workspace] and click the button [Next].
Select the root directory by browsing to the location where you cloned the repository.
Click the button [Finish].
At the end of this procedure, Simplicity Studio 4 has created the project in your workspace and will display the project in the [Project Explorer] as shown below:
Notice that almost all the files are linked to the SLSTK3701A folder (next to the WGM160P folder), this is why the WGM160P folder is quite empty. Make sure to keep the repository structure to avoid compilation errors.
Remove Gecko OS
The WGM160P Module Board comes with Gecko OS and the Gecko OS bootloader preinstalled, causing issues to start or even flash an example using the Open Architecture (official name of the solution provided by the wfx-fullMAC-tools GitHub repository). This solution is the recommended solution instead of Gecko OS.
The Gecko OS removal is done with the Simplicity Commander tool embedded in Simplicity Studio 4, this tool can started by selecting the [Launcher] perspective and click on the [Tools] icon, represented by a wrench next to the update icon, find the tool in the list and start it. Alternatively, the tool can also be found in the Simplicity Studio 4 installation folder, e.g. C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander).
Once Simplicity Commander tool is started, follow this procedure to remove Gecko OS and Gecko Bootloader from the WGM160P Module Board by erasing it and flashing the EFM32GG11 default bootloader:
- [Connect] Simplicity Commander with the Adapter Board.
- [Connect] Simplicity Commander with the WGM160P Module Board.
- Select the [Flash] section.
- Click on the [Unlock debug access] button.
- Click on the [Erase chip] button.
- [Browse] the wfx-fullMAC-tools folder, created during the GitHub Repository clone, to find the EFM32GG11 default bootloader named bl-usart-geckoG1-v2.07.hex at the following location Examples/SiliconLabs/shared/wgm160p/bootloader.
- Finally, [Flash] the WGM160P Module Board with the default bootloader.
The picture below represents each action mentioned above by its number:
gecko os removal
Start the Example
Right-Click over the project name to open the context menu and select [Debug As] and then the option [Silicon Labs ARM Program] to Build the Project and Launch a Debug Session.
While the toolchain builds the project and launches the debug session, open the Device Manager in Windows OS to see the COM Port Number assigned to the USB device [J-Link CDC UART Port].
Open a Serial Terminal application, such as PuTTY, configure it to the COM Port Number you found in the previous step, and set the UART settings to 115200 bps, 8 data bits, 1 stop bit and no parity.
After the Debug session is launched, the IDE will switch to the [Debug] perspective and will halt the CPU at the main entry point. Press the key [F8] to Resume execution.
Watch the application’s progress on the Serial Terminal. Wait 5 seconds if you want to use the default settings. The application will go through the following stages before it is ready:
WF200 Micrium OS LwIP Example FMAC Driver version 3.2.2 WF200 Firmware version 3.11.1 WF200 initialization successful Press <Enter> within 5 seconds to configure the demo... AP started Join the AP with SSID: silabs_softap
You are ready to move to the Wi-Fi commissioning demonstration page.