The Zentri Methodology

The Zentri Methodology allows our customers to develop applications that bring together ZentriOS products on connected devices that use technology such as Wi-Fi or BLE, mobile apps and cloud services.

At every stage of development, Zentri offerings can reduce development time from years to months. Our systems handle the complex and diverse platforms, protocols, transactions, and security issues of the IoT world, limiting the scope of your application development to your specific business needs.

When your application is ready for manufacture, Zentri provides manufacturing solutions to manage delivery of IoT devices with custom firmware applications, from small runs to tens or hundreds of thousands.

When a product is in production, Zentri customers can manage fleets of devices and products via the DMS. The DMS provides full control and monitoring of device configuration, telemetry and sensor data, and communicates with third-party cloud services to exchange device data.

Zentri devices allow Over-the-air (OTA) firmware updates, solving many of the problems with security, reliability and currency of widely deployed fleets of IoT devices.

ZentriOS Products

A ZentriOS product consists of a device containing a platform running firmware belonging to the ZentriOS family, and a bundle of files that implements the product application.

The DMS supports the management of ZentriOS products by storing details of:

To use devices and products with the DMS, special procedures are supported:

These terms are essential to the Zentri methodology. They are defined briefly below. More details are available in the DMS Documentation.

Platform

A platform is the smallest separately available part of the hardware capable of running ZentriOS.

For example, an Zentri AMW106 module is a platform.

For available ZentriOS platforms, see Hardware.

In the documentation below, special wildcard platform terms refer to multiple Zentri platforms:

Device

A device is the IoT hardware part of the ZentriOS product. The device contains the ZentriOS platform.

For example, a Zentri AMW106-E03 evaluation board is a device, containing the AMW106 module platform.

The DMS tracks devices and their associated users. To register in the DMS as the owner and user of a device, you need to claim the device.

For available ZentriOS devices, see Hardware.

Product Bundle

A product bundle is a particular set of files that implements the product application, corresponding to a version of the product.

Product bundle files capture configuration, set up details, and other application data. In the case of a ZentriOS app (ZAP), the application includes compiled C code that uses the ZentriOS Native API.

A product is specific to a platform and may be dependent on device hardware outside the platform.

The DMS tracks product bundles as part of the product.

Product

A product in the DMS is a collection of product bundles and other data.

The DMS tracks products, bundles, and the associated devices and users.

Orderable Product Number (OPN)

An OPN is associated with Product Bundles that can be ordered by customers.

Public Claimable ZentriOS OPN

A public, claimable ZentriOS product OPN has the form: <platform>-<maj>.<min>.<patch>

The OPN is constructed from the platform and version, where:

Custom Product OPN

Custom products OPN have the form

<platform>-<productBundleCode>

where:

Claiming a Device

A user claims a device in order to use it with the DMS. The DMS associates the device with the user.

You can do this using the dms claim command, via the ZentriOS device's command API.

Activating a Device to a Product

When you activate a device to a product, you can OTA a version of the product to the device.

You can activate a device to a product using the dms activate command, via the ZentriOS device's command API.

OTA

OTA (Over-the_Air update) uses a secure wireless connection to load a product version onto a device.

For Wi-Fi products, the device connects directly to the DMS via the Internet. See ZentriOS Wi-Fi Secure OTA Update.

For BLE products, a mobile app connects to the DMS via the Internet, on behalf of the device, and loads the product version via BLE onto the device. See ZentriOS-S Update and Recovery.

Development

Becoming a Zentri User

A Zentri user can use the DMS to claim a ZentriOS device, activate the device to a product, and then OTA a version of the product to the device.

A Zentri user can develop custom command API applications. A Zentri user with devices running a ZentriOS SDK can develop applications on Zentri devices.

An IoT application may consist of a custom application running on an IoT device, cloud services that manage device data, and mobile applications that interact with the IoT device and the cloud. Zentri provides solutions in all these areas, along with a framework and protocols for intercommunication between Zentri solutions or services from other providers.

Setting up a DMS User Account

To become a Zentri user, open a free DMS User Account. Sign up at https://dms.zentri.com/signup

Developer Workflow

Creating a Product

Whatever kind of product you are developing, Zentri recommends that you create a Product at the start of development, and create an associated Product Bundle.

If you are creating a ZAP product, working within the SDK IDE enforces creating a product and product bundle.

If you are creating a command API product, you can create a product and product bundle in the DMS. See Developer Workflow, Create a Product, and Developer Workflow, Create DMS Product Bundle.

A product bundle contains a specific edition and version of ZentriOS for your product platform. Even if the product contains no custom files or settings, working with a custom product bundle helps to specify the ZentriOS version, and allows you to track versions of your product.

The DMS supports a methodology for development that allows you to track each version of your product under development, and the devices activated to it. See DMS, Developer Workflow.

Mobile Apps

Zentri provides APIs for developing Mobile Apps to control and monitor ZentriOS Devices.

Mobile apps can stream data, run commands, connect to a Web App on the device, upload files to the device and download files from the device

Mobile SDK

APIs include JavaScript frameworks for cross-platform Mobile App development.

Interacting with the DMS

You can use the Device Management Service (DMS) using its GUI (Graphical User Interface) via a Web browser, or via the DMS REST User API, for automated applications.

Cloud Services

ZentriOS Wi-Fi devices can access Internet cloud services directly, via custom apps developed with the Command API or the Native API. The DMS also provides its own cloud servces, and ways to interface external cloud services via the DMS.

DMS cloud services include:

Custom Device Firmware

ZentriOS-S, for BLE, provides a command API for building custom device firmware.

ZentriOS Wi-Fi editions also provide a command API for building custom device firmware. In addition, ZentriOS-WZ and ZentriOS-XZ offer an SDK and Native API for building ZAPs, ZentriOS applications that run on same MCU that runs ZentriOS.

Wi-Fi

BLE

Wi-Fi and BLE

ZentriOS-XZ runs on hardware that supports both Wi-Fi and BLE.

Developing a Custom Product Bundle

Using the DMS GUI or REST API, you can create a product with a specified set of files that are downloaded to a device loaded with the product.

See DMS, Developing a Custom Product Bundle

Adding Resources Specific to a Product

A product asset is a file, associated with the product, that can be downloaded by any device loaded with that product. You can set up product assets with the DMS, using the CloudFS.

Adding Resources Specific to a Device

A device file is specific to a particular device. It can be downloaded or uploaded by the device during the running of the product application.

You can set up device files with the DMS, using the CloudFS.

See DMS, Device Files - upload and download product files

Building a Custom Web App Served from the Device

A Wi-Fi product can run an HTTP Server from the ZentriOS device, hosting a custom web application for use by mobile devices interacting with the ZentriOS device.

Zentri provides a generic Web App with all ZentriOS Wi-Fi editions. You can customize the web app using our tools or your own to solve your mobile app interaction requirements.

See ZentriOS_W, ZentriOS Web App.

Testing

The DMS provides facilities for tagging product bundles as alpha, beta or release. See DMS, Tagging Bundle Release Type

To test your products under development, testers need a DMS user account. See Becoming a Zentri User above.

As a product developer, you can create additional developer and tester users via the DMS. See DMS, Adding a User.

You can assign restricted permissions that prevent a tester user from editing of product and bundle details, but allow access to the product for testing purposes.

Testers can:

Production

Becoming a Zentri Customer

A Zentri customer is a customer with a product that is ready for production. To become a Zentri customer you need a customer account and a DMS customer entry. With these set up, a customer can arrange work orders and use the DMS GUI and REST API interfaces to manage and track user devices, arrange work orders, and perform other management tasks.

Request a customer account from Zentri. Only Zentri administrators can create a customer account.

A customer with a Zentri custom account can then order products in a variety of ways. See Manufacturing.

Manufacturing

Ordering Zentri Products

This ordering information applies to Zentri hardware only. For ordering ZentriOS on hardware from other manufacturers, refer to the manufacturer ordering information. Zentri platforms support a command API ZentriOS edition. Some platforms also support a ZAP development ZentriOS edition.

Zentri
Platform
Wireless
Technology
Command API
Support
Command API + Native API
SDK ZAP Support
AMS001BLEZentriOS-S
AMS002BLEZentriOS-S
AMW004Wi-FiZentriOS-W ZentriOS-WZ
AMW006Wi-FiZentriOS-W
AMW036Wi-FiZentriOS-W
AMW106Wi-FiZentriOS-W ZentriOS-WZ
AMW136Wi-FiZentriOS-W ZentriOS-WZ
AMW007Wi-FiZentriOS-WL
AMW037Wi-FiZentriOS-WL

All Zentri platforms also support custom firmware products. Custom firmware is recorded in the DMS as a product bundle. A product bundle is a version of a product. It contains a specific version of a ZentriOS edition, and additional files specifying configuration and other details. A platform that supports ZAP development includes a ZAP in the product bundle. A product bundle has an Orderable Product Number (OPN) that uniquely identifies the product bundle.

There are several ways to order Zentri products:

Command API ZentriOS editions can be ordered pre-loaded on modules. with ZentriOS-W for AMW004 and AMWxx6, or ZentriOS-WL for AMW0x7.

For small volumes, you can purchase or order a command API ZentriOS edition with the version unspecified. This is appropriate for evaluation, sample and test runs. The order is delivered as cut tape.

For larger production volumes, you can specify:

The order is delivered on reels.

Native API editions of ZentriOS that support ZAP development (ZentriOS-WZ for AMW004 or AMW1x6) are available only via the ZentriOS SDK. You cannot order a module pre-loaded with ZentriOS-WZ. Purchase a device with any firmware version, download the ZentriOS SDK, then use the SDK Setup Device procedure to select the required ZentriOS-WZ version. The SDK uses OTA (Over-The-Air update) to load the ZentriOS-WZ version onto the device.

Examples

Order TypeDelivery FormatExample OPN
Unspecified firmwareCut tapeAMW006
AMW106
Specified ZentriOS VersionFull reel boxAMW006-3.3.0R
AMW106-3.2.2R
Custom firmwareFull reel boxAMW006-H35GHJR
AMW106-FG7L21R

Ordering an Unspecified ZentriOS Version

OPN: <platform>

where:

For example, order AMW006 for unspecified versions of ZentriOS-W on the AMW006 platform.

In a response to an unspecified firmware order, Zentri ships modules on cut tape with the ZentriOS command API edition and versions available. The firmware versions are not guaranteed to be the same for all items shipped. Modules may have differing versions. Cut tape orders are suitable for sampling, evaluation, and pilot builds.

After shipping, modules can be updated individually, via OTA, with a specific firmware edition version. Generic firmware should not be ordered in high volume, as individually updating modules may be inconvenient. Devices are typically unlocked, and can be activated to other products.

To facilitate claiming and activation of devices ordered with unspecified firmware, you can create an activation token that is specific to a product and set number of devices. See Activation Tokens.

Ordering a Specific Firmware Version

See Public, Claimable ZentriOS OPN above. You can determine the OPN for your ZentriOS product by going to DMS, Products, selecting the ZentriOS product, selecting the required bundle in the product page bundles list, and noting the OPN (part number) in the bundle details.

For example, order OPN AMW007-1.0.2 for the first official release of ZentriOS-WL for the AMW007. Zentri ships reels with the product and version specified. The Minimum Order Quantity (MOQ) is the size of the reel for that platform.

Devices ordered with product edition and version are typically locked, and can be updated only to other versions of the same product. See Locked Devices.

Ordering Specific Custom Firmware

See Custom Product OPN above. You can determine the OPN for your custom product bundle by going to DMS, Products, selecting the required product, selecting the required bundle in the product page bundles list, and noting the OPN (part number) in the bundle details.

Specify the custom firmware product bundle OPN. Zentri ships reels with the product bundle specified. A Minimum Order Quantity (MOQ) may apply.

Devices ordered with custom firmware are typically locked, and can be updated only to other versions of the same product. See Locked Devices.

Activation Tokens

See DMS, Activation Tokens.

Work Orders

For large production runs, you can arrange a work order. You specify the product and the quantity. Zentri delivers your devices with your specified firmware loaded and tested.

See DMS, Purchase Orders.

Custom Manufacturing Jigs

For orders meeting a Minimum Order Quantity (MOQ), typically more than 10,000, Zentri provides a manufacturing 'jig' to manufacturers. This automates claiming, activating and programming the devices with the custom firmware. Contact Zentri for more details.

Locked Devices

Devices used by developers are not locked to a product. A developer can activate the device to different products.

Once a product is in production, a device with that product is locked to the product. It can update to another version of the product, but it can never activate to a new product.

Once a device is locked to a product, it cannot be unlocked.

This is necessary to prevent hacking and repurposing of devices.

A customer cannot allow their end-users to change the firmware that was loaded onto the device at manufacturing time. This is a firm Zentri policy.

See DMS, Locking a Device to a Product.

Device Management

Using the DMS GUI or REST API, a customer with products in production can perform a number of actions and procedures for devices activated to those products.

For devices activated to products associated with your customer account, you can:

See DMS, Post-Production Workflow, Managing Devices

Tracking Device Ownership

For any device activated to one of your products, you can view the user associated with that device.

Claiming Devices

Via the DMS, you can claim a device for a specified user. The next time the device interacts with the DMS via an OTA, its status is changed and it receives new firmware and certificates.

Tracking Device Firmware

You can review the version and status of software and files on any device associated with your products.

Activating a Device to a Product

Provisioning Devices

When a customer has developed a custom ZentriOS product, and is ready to manufacture devices, the customer needs to claim and activate the devices with the DMS.

See also the DMS Production Workflow documentation for details from the DMS perspective.

To provision a device, in this context, means to set up a device with custom ZentriOS firmware. This requires the following steps for each device:

Zentri offers several methods for provisioning devices. You can use the ZentriOS command line, JTAG and scripting, or Zentri manufacturing options.

Provisioning from the ZentriOS Command Line

For small batches, say less than one hundred devices, Zentri recommends using the ZentriOS command line.

Purchase stock Wi-Fi modules from a Zentri distributor.

Claim Device and Activate to the Product

Use the following command sequence to claim, activate and OTA a device to the custom firmware.

The username and password must belong to a user belonging to the customer that owns the device.

For a device running a version of WiConnect:

ota -a <product>:<username> <password>

For a device running a version of ZentriOS:

dms claim <username> <password>
dms activate <product id>

Alternatively, for a ZentriOS device, use a DMS activation token to claim and activate the device:

dms claim <product id> <token>

Activation tokens can be created using the DMS GUI. See Using an Activation Token in the DMS documentation.

Update the device firmware to the 'release' product bundle

ota

Provisioning Using JTAG and a ZAP Programmer Script

Using the following script:

zap_programmer.zip

The device is automatically claimed, activated, and programmed with the custom firmware.

Note that a JTAG connection is required. In the case of Zentri evaluation boards, this requires an additional Piranha board. See:

Provisioning Using Zentri Manufacturing

For orders meeting a Minimum Order Quantity (MOQ), typically more than 1000, Zentri claims, activates and programs the devices with the custom firmware. Contact Zentri for more details.

Provisioning Using Zentri Custom Manufacturing

For orders meeting a Minimum Order Quantity (MOQ), typically more than 10,000, Zentri provides a manufacturing 'jig' to claim, activate and program the devices with the custom firmware. Contact Zentri for more details.