Gecko OS Command API Tutorial
This tutorial provides hands on experience using the Gecko OS Command API with the WGM160P Wi-Fi starter kit available from Silicon Labs.
Key Points
- How to use the WGM160P WSTK out of the box
- Where to go to get started and find documentation
- How to use the Gecko OS Command API
- How to connect to the WGM160P module as a Wi-Fi Access Point
Hardware Requirements
-
WGM160P kit, including:
- WGM160P board
- USB cable
- Getting Started card
Hardware Setup
Connect the WGM160P board to your PC using the provided USB cable.
Software Requirements
-
For Windows, use a terminal program such as Tera Term, RealTerm, or Terminal. See the UART parameters to
115200, 8N1
. -
For a Mac, the terminal can be accessed using
tty.usbserial
. There may be a modifier at the end of this for your computer. To set the connection to the right settings, type:tty.usbserial_modifier 115200,8n1
Note : You will need an internet connection to install the drivers for the USB-to-UART device on the WGM160P board.
Checking the Version
After connecting the board to the PC and opening the terminal program, press the RESET button on the board.
Gecko OS restarts and displays the version information for the device. Ensure this version is
4.0.0
or later.
To set up the latest version of Gecko OS on your device, use the Gecko OS Studio (GSS) .
The Help Command
The help command lists the commands and variables available for this platform and firmware version.
Variables are system-level variables that determine the configuration of the WGM160P module.
Commands are actions that the can be taken.
At the terminal prompt, type
help
to see the options for the help command.
Type
help commands
to see a list of commands supported by this module.
Commands used:
Connecting to the WGM160P over Wi-Fi
Gecko OS can run a softAP (soft Access Point) and an HTTP Server with a web application. Your mobile device connects to the softAP through Wi-Fi, and the Gecko OS web app provides a web-based interface to interact with your device.
To see the Gecko OS softAP details, at the terminal type
get setup.web
. This lists all the setup web variables and their values:
> get setup.web
setup.web.captive_portal_enabled: 1
setup.web.client_list: ! Connected: 0
setup.web.idle_timeout: 300
setup.web.passkey: password
setup.web.root_filename: webapp/index.html
setup.web.ssid: Gecko_OS-#
setup.web.url: setup.com,www.setup.com,connectivitycheck.gstatic.com
To get a specific variable, rather than a group, use the full name of the variable. For example, to get the softAP MAC address:
> get softap.mac
4C:55:CC:F4:86:AC
The variable
setup.web.ssid
defaults to the value
Gecko_OS-#
. The
#
is a placeholder for the last 3 digits of the softAP MAC address. In the example above, the
setup.web.ssid
is
Gecko_OS-6AC
.
As can be seen in the
setup.web
variable list, the default
setup.web.passkey
is
password
.
You can set the
setup.web.ssid
variable to a value of your choosing. For now, accept the default address.
To start the softAP and the HTTP server, use the
setup_web
command. On the terminal issue the command:
setup_web
The terminal output is similar to the following:
> setup_web
Finding best SoftAP channel ...
IPv4 address: 10.10.10.1
HTTP and REST API server listening on port: 80
Wi-Fi softAP: Gecko_OS-805 on channel 6
Web browser : http://setup.com
In progress
Then, using your phone or other Wi-Fi device, connect to the Gecko OS access point using the setup.web SSID and passkey.
Depending on your mobile device's operating system, the mobile device may automatically open a web browser and display the device web app. Alternatively, open a web browser and navigate to the device IPv4 address or URL
In the example shown, the IP address is
10.10.10.1
. You can use the IP address, or you can use one of the values shown in the
setup.web.url
variable. The defaults are
setup.com
or
www.setup.com
.
The web app display is similar to the following:
You can use the Connect screen to connect to your local WLAN. For now, let's explore other features of the web app.
Click the
GPIOs
tab in the web app menu. On a small screen, tap the three bar menu icon to open the menu first.
The
GPIOs
screen shows the active GPIOs available on your device.
Click the
Files
tab. The
Files
screen lists the files in your device flash file system.
This screen provides a convenient way to copy files to and from the device file system.
Commands used:
Type
reboot
to restart Gecko OS with no SoftAP or HTTP server running.
Scan and Connect
Now, let's connect to a Wi-Fi network. Use the
scan
command to find all the networks in range:
scan
Commands used:
The wlan.ssid and wlan.passkey variables set the Wi-Fi network name and password, respectively.
Set the values of
wlan.ssid
and
wlan.passkey
to match the credentials of your Wi-Fi network, then save the values so they persist after a reboot:
set wlan.ssid <NETWORK_NAME>
set wlan.passkey <NETWORK_PASSWORD>
save
To connect to the specified network, use the
network_up
command, or simply issue a command that requires network access:
network_up
You should now be connected to the network.
Note : To join your specified network automatically each time the module is powered on or rebooted, issue the command:
set wlan.auto_join.enabled 1
Commands used:
Listing Files
Gecko OS offers a file system and includes a Unix style list command
ls
.
Type
ls
to display a basic file list.
Type
ls -v
to display a more verbose list with file type, flags, and other information.
Commands used:
Reading from a File
Data sources like files are called streams in Gecko OS. To read from one of these files:
-
Issue the
ls
command to display a list of the files. -
Issue the
file_open
command to open the file. For example:file_open webapp/unauthorized.html
The stream handle is displayed in the response. If only one stream is open, the handle is
0
.
To view all open streams, including file and network streams, type:
stream_list
To read
100
bytes from stream
0
, issue the command:
stream_read 0 100
Commands used:
Downloading from a Website
To get a file from a website, use the http_get command.
For example, to open a stream with the Google homepage:
http_get www.google.com
In this example we assume the HTTP stream has the stream handle
1
.
To read the first 1000 bytes from stream
1
:
stream_read 1 1000
Commands used:
Closing a Stream
To close a stream, use the stream_close command.
In the examples below, we assume file stream
0
and HTTP stream
1
are still open.
To close the file stream
0
:
stream_close 0
Use
stream_list
to view the open streams. Only stream
1
is still open.
stream_close 1
Now no streams are open.
Commands used: