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 Application Development.
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 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.
- Support for extending the Gecko OS Command API with custom commands and variables
- Customized callbacks and headers for the Gecko OS HTTP webserver and REST API / Websockets
- Register custom event handlers for most network events
- Event handler with periodic, timed or single shot events
- Create custom one-time, asynchronous or periodic events to drive any peripheral or manipulate network connections
- Create and/or customize UART log & debug messages
- UART with receive character interrupts
For a full list see Gecko OS Native C API features.
System & Core Libraries
- RTOS functions including delay, semaphores, mutexes, queues, events and timers
- Event handlers including client connect/disconnect and received packet
- Hardware Interrupt Handlers
- Battery backed register API
- System monitor API
- Crypto functions including AES, CRC, MD5, SHA1, SHA2, SHA4, random number generator
- Base64 encode/decode
- JSON parser
- CSV file reader
- Fixed Point Integer
- Bubble & List sort
- String utilities
- Table lookup functions
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.
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.
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.