Gecko OS Edition 4
|Gecko OS 4 Quickstart||Gecko OS 4 Hardware Support|
What is Gecko OS?
Gecko OS is an IoT operating system that runs on Silicon Labs wireless and wired IoT connectivity modules. Gecko OS helps you build your wireless IoT app by shielding you from the complexity of hardware, protocols and standards, leaving you to focus on building a great IoT application.
Gecko OS provides networking and internet communications, security and encryption, OTA (over-the-air) software updates, an encrypted flash file system, peripheral management and many other features. To use Gecko OS's tested and proven code, developers use the Gecko OS Command API, or write applications using the programmatic Native 'C' API.
Gecko OS runs on a Silicon Labs 32-bit Gecko Microprocessor on the IoT device. The Gecko OS Command API and Native C API provide an abstraction layer between your application code and the underlying Gecko OS kernel, radio and other hardware used by your IoT application.
Developers can use Gecko OS to create a broad variety of IoT applications:
- Hosted App - An MCU, external to the Gecko OS device, can use the Command API to communicate over a serial interface
- Native App - An IoT application written in C source code using the Gecko OS Native C API is compiled to run on Gecko OS right onboard the Gecko OS device.
- Network App - A network connected device, or cloud application, remotely communicates with Gecko OS via a TCP/HTTP/Websocket connection using the Gecko OS Command API.
Gecko OS consists of a kernel with a multitude of features essential to every IoT app. Gecko OS can be extended with a variety of kernel plugins. Plugins are available for many Internet protocols, including TCP, HTTP/S, UDP, SMTP, NTP support.
Gecko OS features integrated (optional) support for remote device management via the Zentri Device Management Service (DMS). You can monitor your fleet of devices, update the software running on them, and even control them remotely. The DMS supports the full development, production and maintenance cycle for all devices running your Gecko OS app.
If you are creating a Hosted app, a Web app, or a Network/Cloud app, the Gecko OS Command API is used to communicate with your device.
The Gecko OS Command API is available for applications connecting with a wired serial interface, or a wireless or wired network interface using HTTP REST, WebSockets or Remote Terminal. The API provides direct access to peripherals connected to Gecko OS hardware via interfaces including SPI, I2C, GPIO, PWM, DAC/ADCs. For a quick start guide to using a Gecko OS evaluation board, see Getting Started.
The Gecko OS Command API consists of commands, or by getting and setting variables that are used to configure your device.
Native C API
If you are creating a Native app using the Gecko OS Native C API, see the Gecko OS Native C API Reference and the Gecko OS SDK User Guide.
Features and Interfaces
The Gecko OS Command API offers a powerful set of commands for control of connected devices, together with a large number of variables for configuration.
A host MCU communicates with a Gecko OS device via a UART or SPI serial interface. A mobile or desktop app communicates with a Gecko OS device via a wireless or wired network interface using the Gecko OS Command API. The local or remote host sends commands to control the operation of Gecko OS and to exchange data with other devices on the network.
A summary of Gecko OS features and interfaces is outlined in the following sections.
Wi-Fi, Networking & Web
- Multiple interfaces including serial, softAP and WLAN client
- Concurrent operation of softAP and WLAN client
- Servers: TCP/TLS, UDP, HTTP/S, DHCP, DNS
- Clients: TCP/TLS, UDP, NTP, Secure-SMTP, DHCP, DNS
- Network Discovery with support for ZeroConf/mDNS, LLMNR & Netbios
- Secure HTTP Server with RESTful API and Websockets
- HTTP file upload/download
- Remote terminal access
- Multiple Wi-Fi setup options including Web setup with softAP, WPS
Peripherals & Sensors
- GPIOs/ADCs/DACs/PWM for control, indication and monitoring
- I2C-master API for interfacing to external peripherals
- SPI-master API for interfacing to external peripherals
- Automated broadcast and streaming of sensor data
- Local caching of sensor data
- Configurable memory and network buffer sizes enabling optimization for receive or transmit intensive applications
- Wireless OTA (Over-the-Air) Update to remotely manage firmware using the Zentri DMS.
- Failsafe bootloader and kernel with safemode operation
- Configurable power states and sleep/wake timers
- Scripts and configuration files
- Read/Write file system with appendable log files
- Storage of large files with an additional bulk serial flash
All Gecko OS commands can be issued manually using Command API human format or under host control using Command API machine format. Human format should only be used for evaluation and manual testing. Machine format is strongly recommended for production.
For human format, the interfaces are a Gecko OS Terminal, the Gecko OS Web App, or a remote terminal.
To start using your Gecko OS hardware in human format, see Getting Started.
Gecko OS Web App
The Gecko OS Web App provides complete monitoring and control of your Gecko OS device using a web browser.
See Gecko OS Web App.
Gecko OS provides one of the easiest to use and most flexible serial Wi-Fi networking interfaces in the industry. The Gecko OS serial interface provides support for multiple serial buses including multi-UART and serial-SPI, different serial communications modes including command mode and stream mode, and is easily configured for use by humans and machines alike.
See Serial Interface.
Wi-Fi & Ethernet
Gecko OS provides an easy-to-use Command API allowing you to focus your efforts on application development, rather than the time-consuming complexity and interoperability issues associated with the development of a full-featured secure wireless or wired network stack.
Two Wi-Fi interfaces are supported, including a Wi-Fi client (wlan) and Wi-Fi soft access point (softAP) interface. Each interface may be run independently or concurrently to suit various application needs.. All IP networking functions available with the Wi-Fi interface are also available for hardware that includes an ethernet interface.
See Wi-Fi Interface.
Networking and Security
Gecko OS includes a full IPv4 networking stack and SSL/TLS security suite that supports a range of popular networking protocols including TCP, UDP, DNS, DHCP. Additional network application libraries are provided for native HTTP/S and secure cloud access.
See Networking and Security.
Various peripheral APIs are available to provide access to general purpose IOs (GPIOs), analog functions such as analog-digital and digital-analog converters, and timers including a real time clock. Special system and network functions can be assigned to GPIOs to enable handy features including:
- automatic LED status indicators to show the state of Wi-Fi and network connections;
- an indication of when one or more network clients are connected to a local Gecko OS server; and
- the ability to control the connection state of a client or server.
Most connected applications require the ability to store configuration information or cache local data. Gecko OS provides a reliable read/write filesystem and on-board flash storage to satisfy application storage requirements. With just a few simple commands, Gecko OS provides your application with complete access to local and network connected storage.
See File System.
For management of Gecko OS device memory, see Memory.
Configuration and Setup
Several options are available to setup a module running Gecko OS. The most common option, and also the most convenient when prototyping is to use a command line and serial interface such as a UART. A PC terminal can be quickly connected to a Gecko OS evaluation board, and within 60 seconds it is possible to be connected to a Wi-Fi network and downloading HTTP webpages or connecting to a remote TCP server.
Other methods for configuration, setup and Wi-Fi provisioning include:
- a softAP and webserver interface, or use of WPS push-button PBC or PIN for Wi-Fi provisioning;
- an (optionally) password-secured remote terminal that provides command line convenience over one of the Gecko OS wireless network interfaces; and
- automatic execution of a custom configuration script on boot-up
See Configuration and Setup.
System functions include:
- Configuring Gecko OS Command Mode and Response
- Power management
- Monitoring System State
- Controlling the Boot Application
- System Identification and Version
See System Functions.
Update and Recovery
Gecko OS is part of a larger sophisticated application framework installed on all Gecko OS devices. The framework provides a hardened bootloader, read/write file system, safemode recovery mechanism, and over-the-air (OTA) update capability.
The Zentri Device Management Service offers a secure on-line firmware update service that provides each Gecko OS device with the ability to securely update individual files, applications or an entire firmware bundle. In the rare event that Gecko OS fails to regularly execute correctly, the bootloader switches the boot application to safe mode. The safe mode application provides the host with the ability to update the firmware, switch back to Gecko OS or factory reset devices.
See Update and Recovery.