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.
- the ZentriOS IoT operating system handles networking stack, other protocols, security and transactions for your device.
- Application Programming Interfaces (APIs) provide simplified access to ZentriOS features and the hardware of your device, simplify mobile app development, and give you control over device and product management and cloud communications.
- The Zentri DMS (Device Management Service) manages ZentriOS products throughout the development, production, post-production and end-of-life phases.
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:
- Platforms
- Devices
- Product Bundles
- Product
To use devices and products with the DMS, special procedures are supported:
- Claiming a Device
- Activating a Device to a Product
- OTA - Over-the-Air update of a product via the DMS
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:
- AMS00x: AMS001 and AMS002
- AMWx06: AMW006 and AMW106
- AMW0x6: AMW006 and AMW036
- AMW1x6: AMW106 and AMW136
- AMWxx6: AMW006, AMW036, AMW106, and AMW136
- AMW0x7: AMW007 and AMW037
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:
<platform>
is the platform ( e.g.AMW007
)<maj>
is the major version ( e.g.1
)<min>
is the minor version ( e.g.0
)<patch>
is the patch version (e.g.2
)
Custom Product OPN
Custom products OPN have the form
<platform>-<productBundleCode>
where:
<platform>
is the required platform<productBundleCode>
is a 7 alphanumeric character code that uniquely identifies the product bundle. The code is generated by Zentri admin.
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:
- DMS control API - communication between DMS and third-party cloud services
- DMS Cloud File Service (CloudFS) - the CloudFS provides ZentriOS devices with facilities to upload and download files and data. Each device can have its own file store. Each product has an Asset store, containing files accessible by any device activated to the product.
- Zentri Cloud
- Cloud Connectors
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
- Command API
- Develop a product using ZentriOS-W
- Native API
- Develop a ZAP, using ZentriOS-WZ with the Native API and SDK
- Native API Application Development
BLE
- Command API
- Develop a product using ZentriOS-S
Wi-Fi and BLE
ZentriOS-XZ runs on hardware that supports both Wi-Fi and BLE.
- Develop a ZAP, using ZentriOS-XZ with the Native API
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.
- See DMS, Product Assets - download product files
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:
- Claim a device
- Activate a device to your product
- Use alpha, beta and release tagged products
- OTA new versions of the product
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 |
---|---|---|---|
AMS001 | BLE | ZentriOS-S | |
AMS002 | BLE | ZentriOS-S | |
AMW004 | Wi-Fi | ZentriOS-W | ZentriOS-WZ |
AMW006 | Wi-Fi | ZentriOS-W | |
AMW036 | Wi-Fi | ZentriOS-W | |
AMW106 | Wi-Fi | ZentriOS-W | ZentriOS-WZ |
AMW136 | Wi-Fi | ZentriOS-W | ZentriOS-WZ |
AMW007 | Wi-Fi | ZentriOS-WL | |
AMW037 | Wi-Fi | ZentriOS-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:
- Order an Unspecified ZentriOS Version
- Order a Specific ZentriOS Version
- Order a Custom Firmware Bundle
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 OPN for the required ZentriOS Command API edition and version
- the OPN for the custom firmware product
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 Type | Delivery Format | Example OPN |
---|---|---|
Unspecified firmware | Cut tape | AMW006 AMW106 |
Specified ZentriOS Version | Full reel box | AMW006-3.3.0R AMW106-3.2.2R |
Custom firmware | Full reel box | AMW006-H35GHJR AMW106-FG7L21R |
Ordering an Unspecified ZentriOS Version
OPN: <platform>
where:
<platform>
is the required platform.
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
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:
- Review the version and status of software and files on any device
- Review the ownership and software history of any Device
- Geolocate Devices
- View logs of products, devices and end-user activities with those products and devices
- Activate the device to a product
- Claim the device for a specified user
- Remove the owner from the device, activate the device to the origin product, and clear associated data. The device cannot OTA until it is claimed by another user.
- Add device specific files, that can be downloaded to the device
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:
- claim the device for the customer
- activate the device to the desired custom firmware product
- OTA the firmware product onto the 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:
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:
- Connecting the AMW004 for Use with the ZentriOS SDK
- Connecting the AMW106 for Use with the ZentriOS SDK
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.