Developing Gecko OS Applications

To get started with the Gecko OS Application SDK, see Getting Started.

For details of writing Gecko OS apps in the C programming language using the Gecko OS Native C API, see Developer's Guide.

Gecko OS is a highly-optimized yet feature-packed IoT operating system designed specifically to power secure wirelessly connected products. Using the Gecko OS SDK, developers can create native applications that run on Gecko OS, or alternately interface with Gecko OS using the extensive Command API over serial, HTTP REST, WebSockets or a remote terminal. Some of the powerful features provided by Gecko OS include flexible serial communications, sensor and peripheral interfaces, a read/write file system, and robust secure OTA wireless updates from the Zentri Device Management Service (DMS).

There are two options for development of applications with Gecko OS. Either your application runs on a standalone microcontroller, mobile device or desktop and accesses the Gecko OS Command API. Alternately, your app runs directly on board a Gecko OS powered connectivity device and has direct programmatic access to the Gecko OS Command API and an additional Native API.

Native C API & Software Development Kit

The Gecko OS Native C API enables applications to leverage all of the features available with the Command API, PLUS a vast array of additional Gecko OS services and libraries offered by the Native API. Applications that run on-board Gecko OS-powered hardware avoid the need for an additional microcontroller, and also enable design customization including the ability to extend the Gecko OS Command API and create customized callbacks for use with the Gecko OS HTTP webserver.

Want to write apps that talk to Gecko OS from an MCU, Mobile or Desktop? See Gecko OS Command API.

The Gecko OS SDK includes everything needed to develop and deploy connected product applications on hardware running Gecko OS. Integration with the Zentri Device Management Service (DMS) ensures developers are authenticated and applications are secured. Once development is complete, applications can be pushed to the cloud for beta-testing or marked ready for deployment to products in the field.

Gecko OS Native C API

In addition to the extensive features available with the Command API, the Native C API provides applications with programmatic access to an vast array of additional features, libraries and utilities.

Highlights

For a summary of Native C API features, see Gecko OS Native C API features.

System & Core Libraries

Utilities

API Details

The Gecko OS Native C API is split into functional groups. See Gecko OS Native C API. Application examples are available in the GSS Project menu and are documented in the Application Examples menu.

API Version

The API version MUST match the version of Gecko OS running on your hardware since Gecko OS Apps are compiled to work with a particular version of Gecko OS. The Gecko OS SDK automatically keeps track of the version of Gecko OS running on your hardware and updates the API to match.

Native C API Error Codes

Native C API error codes are specified in the gos_result_t enumeration, documented in the API core data types page.

Access to Command APIs

Gecko OS Apps have programmatic access to both the Command API and Native API. Gecko OS Native API functions are prefixed with gos_ and are of the form gos_function_name(). For native API functions to issue Gecko OS commands, see Commands API. Details of specific command APIs are provided in the Command API documentation.

Customizing the Command API

A Gecko OS App can extend the Gecko OS Command API to create custom commands and variables that can be accessed just like any other Command API function. See Custom Commands API.

An example app that demonstrates how to create and use custom commands is the UART Blaster.

A custom command cannot call a Gecko OS Command API function.

Dynamic HTTP URLs

The Gecko OS webserver can serve dynamic web pages and execute custom functions on requests to specified URLs.