General Overview
What is ZentriOS?
ZentriOS is a highly-optimized yet feature-packed IoT operating system designed specifically to power hardware platforms with secure Wi-Fi networking capability.
Hardware running ZentriOS provides a product with a powerful and secure wireless connection to a mobile device or the cloud.
You can build external MCU apps that communicate with ZentriOS using the extensive Command API, via serial interface, HTTP REST, WebSockets or a remote terminal.
Alternatively you can use the ZentriOS Native API and ZentriOS SDK, to develop ZentriOS native apps (ZAPs) that run on ZentriOS powered hardware.
To update from WiConnect to ZentriOS, see Updating to ZentriOS.
For the Bluetooth Low Energy version of ZentriOS, see ZentriOS BLE.
Command API
The ZentriOS Command API is available for applications connecting with a wired serial interface, or a wireless interface using HTTP REST, WebSockets or Remote Terminal. The API provides direct access to peripherals connected to ZentriOS hardware via interfaces including SPI, I2C, GPIO, PWM, DAC/ADCs. For a quick start guide to using a ZentriOS evaluation board, see Getting Started.
You can build external MCU apps that communicate with ZentriOS using the extensive Command API, via serial interface, HTTP REST, WebSockets or a remote terminal.
Alternatively you can use the ZentriOS Native API and ZentriOS SDK, to develop ZentriOS native apps (ZAPs) that run on ZentriOS powered hardware.
Features and Interfaces
A host MCU communicates with ZentriOS via a UART or SPI serial interface.
A mobile or desktop app communicates with ZentriOS via the HTTP Server RESTful API / Websockets or by the local or remote terminal interface.
The local or remote host sends commands to control the operation of ZentriOS and to exchange data with other devices on the network.
The ZentriOS Command API offers a powerful set of commands for control of connected devices, together with a large number of variables for configuration. A summary of ZentriOS 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
- Fully-customizable mobile responsive web application with Javascript & Python libraries
- Remote terminal access
- Multiple Wi-Fi setup options including Web setup with softAP, WPS, Apple Homekit
Peripherals & Sensors
- GPIOs/ADCs/DACs/PWM for control, indication and monitoring
- I2C-master and SPI-master APIs for interfacing to external peripherals
- Automated broadcast and streaming of sensor data
- Local caching of sensor data
System
- 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 ZentriOS commands can be issued manually using human mode or under host control using machine mode. Human mode should only be used for evaluation and manual testing. Machine mode is strongly recommended for production.
For human mode, the interfaces are a ZentriOS Terminal, the ZentriOS Web App, or a remote terminal.
Getting Started
To start using your ZentriOS hardware in human mode, see Getting Started.
ZentriOS Web App
The ZentriOS Web App provides complete monitoring and control of your ZentriOS hardware using a web browser.
See ZentriOS Web App.
Serial Interface
ZentriOS provides one of the easiest to use and most flexible serial Wi-Fi networking interfaces in the industry. The ZentriOS serial interface provides support for multiple serial buses including multi-UART and serial-SPI, three 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
ZentriOS provides an easy-to-use serial 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 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.
See Wi-Fi Interface.
Networking and Security
ZentriOS 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.
Peripherals
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 ZentriOS server; and
- the ability to control the connection state of a client or server.
See Peripherals.
File System
Most connected applications require the ability to store configuration information or cache local data. ZentriOS provides a reliable read/write filesystem and on-board flash storage to satisfy application storage requirements. With just a few simple commands, ZentriOS provides your application with complete access to local and network connected storage.
See File System.
Memory
For management of ZentriOS device memory, see Memory.
Configuration and Setup
Several options are available to setup a module running ZentriOS. 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 ZentriOS 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 ZentriOS wireless network interfaces; and
- automatic execution of a custom configuration script on boot-up
System Functions
System functions include:
- Configuring ZentriOS Command Mode and Response
- Power management
- Monitoring System State
- Controlling the Boot Application
- System Identification and Version
See System Functions.
Update and Recovery
ZentriOS is part of a larger sophisticated application framework installed on all ZentriOS devices. The framework provides a hardened bootloader, read/write file system, safemode recovery mechanism, and over-the-air (OTA) update capability.
Zentri manages a secure on-line OTA server that offers each ZentriOS device with the ability to securely update individual files, applications or an entire firmware bundle. In the rare event that ZentriOS 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 ZentriOS or even factory reset the module.
See Update and Recovery.