SDK Examples
The Gecko OS SDK includes a growing list of examples demonstrating how to write applications that run on Gecko OS.
Example Apps are available through Gecko OS Studio (GSS) .
After you select a device in GSS, the available examples for the device platform are available through the Projects tab. Choose
Clone Example
.
You can also browse the following directory in the Gecko OS SDK on disk:
sdk-<platform>/<sdk_version>/applications/gecko_os
For example:
<user_dir>/gecko_os_sdk/sdk-wgm160p/4.0.17-1380/applications/gecko_os
.
The SDK is regularly updated, and new example Apps may appear with an update. Check for the latest SDK examples in GSS.
The following list outlines examples for the WGM160P platform.
Cloud
- cloud/coap_demo
- cloud/dps_demo - Demo example showing how to use DMS Device Provisioning Service (DPS) to to provision device with different brokers (currently AWS and Azure are supported)
- cloud/mqtt_demo - Demo example showing how to use Gecko OS MQTT library to connect to different MQTT brokers, and subscribe to different queue and publish data
Demo
- demo/3d_demo - Displays a 3D model in a web browser that is oriented based on the accelerometer readings from the development board
- demo/accelerometer_stream - Demonstrates streaming accelerometer data to a webpage served from the device's embedded HTTP server.
- demo/secure_element - Demonstrates streaming accelerometer data to a webpage served from the device's embedded HTTP server.
- demo/uart_blaster - Demonstrates registering a custom command to blast data to the UART
DMS
- dms/messages - Demonstrates how to send/receives messages from the DMS via secure websocket
- dms/ota_update - Demonstrates how to update the device via OTA DFU
- dms/telemetry - Demonstrates how to send device telemetry information to the DMS via secure websocket
File
- file/file_encrypt - Demonstrates how to read/write an encrypted file to the file system
- file/file_list - Demonstrates how to list files on the file system using paging
- file/log_file - Demonstrates how to read/write log files
- file/log_file_encrypted - Demonstrates how to read/write encrypted log files
Hurricane
- hurricane/arducam - Displays images from ArduCam module to locally served webpage
- hurricane/blinky - Simple app which blinks LEDs for the Hurricane board
- hurricane/gps - Hurricane GPS demo
- hurricane/marble - Marble maze game
- hurricane/security_camera - Streams images for ArduCam module to remote webpage via secure DMS websocket
- hurricane/weatherstation - Hurricane Weatherstation
Intro
- intro/blinky - Simple app which blinks LEDs
- intro/hello_world - The most basic app, simply prints 'Hello World' to the console
Manufacturing
- manufacturing/factory_image - The factory_image.mk file demonstrates specifying a limited set of required plugin components to include in the app.
Network
- network/ethernet_bridge - Demonstrates how to setup a bridge between the Ethernet and Wi-Fi interfaces
- network/https_server - Demonstrates how to run a secure HTTP server
- network/http_methods - Demonstrates how to use the HTTP client APIs
- network/http_server - Demonstrates how to use the HTTP server APIs
- network/http_server_stream - Demonstrates how to use the HTTP server data API. The 'data API' allows for transferring data between an HTTP server client and the application.
- network/softap_tcp_server - Demonstrates a echo TCP server on the SoftAP interface
- network/tcp_client - Demonstrates a TCP client connecting to a remote echo TCP server. Anything written to the client stream is echoed back
- network/tcp_echo_server - Demonstrates a TCP server that echoes back all data received from clients
- network/tcp_multiclient - Demonstrates how to forward data between the UART and multiple TCP server clients
- network/uart_tcp_client - Demonstrates efficiently streaming data between the UART and TCP server
- network/udp_client - Demonstrates a UDP client connecting to a remote echo UDP server. Anything written to the client stream is echoed back
- network/udp_hello_gpio - Demonstrates sampling a GPIO and forwarding the value to a remote server via UDP
- network/websocket_client - Demonstrates a websocket client connecting to a remote echo websocket server. Anything written to the client stream is echoed back
- network/websocket_client_with_header - Demonstrates a websocket client with optional header connecting to a remote echo websocket server. Anything written to the client stream is echoed back
- network/websocket_cmd_stream - Demonstrates how to use the HTTP server websocket command stream API. The 'command stream API' allows for issuing Gecko OS commands via websocket.
- network/websocket_server - Demonstrates running a websocket server with a webpage. A browser can open the webpage and send messages to the device's UART via websocket
Peripheral
- peripheral/adc - Demonstrates the use of an ADC
- peripheral/button - Demonstrates the gos_button_XXX APIs by printing to the console based on button presses
- peripheral/gpio_irq - Demonstrates registering a GPIO IRQ handler and lighting LEDs
Security
- security/aes_ctr - Demonstrates how to encrypt/decrypt a buffer using AES128-CTR
System
- system/application_nvm - Demonstrates how to use the application NVM and settings APIs
- system/application_settings - Demonstrates how to load application settings
- system/core_dump - Demonstrates Gecko OS's core dump debugging feature
- system/custom_commands - Demonstrates how to register custom serial commands with Gecko OS. Also demonstrates have to save/load settings from NVM
- system/factory_reset_gpio - Demonstrates how to change the factory reset GPIO programmatically
- system/indicator - Demonstrates how to control system indicators programmatically
- system/settings_file - Demonstrates how to save and load settings files.
- system/system_monitor - Demonstrates Gecko OS's system monitor feature
- system/uart - Demonstrates echoing data on the UART
Test
- test/certification - This application includes the functionality needed for certification. It also shows how to specify which plugins are included in a custom application
- test/ethernet - Demonstrates ethernet API
- test/hurricane - Simple app which blinks LEDs for the Hurricane board
- test/spi_loop_back - Testing of the SPI bus in master mode using loopback mechanism
- test/throughput - Tests network throughput
- test/uart_flow_control - Demonstrates echoing data on the UART with flow control
Utility
- utility/buffer_dump - Demonstrates how to print a HEX dump to the console using the gos_dump_buffer() API
- utility/json_parser - Demonstrates how to use the JSON parsing APIs
- utility/msgpack - Demonstrates how to use the msgpack utility
- utility/profiler - Demonstrates how to use the profiler utility
Wi-Fi
- wifi/device_setup - Demonstrates how to use the Web Setup webapp in both 'setup' and 'normal' modes
- wifi/web_setup - Demonstrates how to setup the device via web setup
- wifi/wifi_scan - Demonstrates scanning for available networks on the Wi-Fi interface