This proposal has been approved and the Eclipse Oniro Blueprints project has been created.
Visit the project page for the latest information and development.

Eclipse Oniro Blueprints

Friday, April 15, 2022 - 04:52 by Amit Kucheria
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

The Eclipse Oniro Core project hosts an open-source operating system that can run on a variety of IoT devices - from microcontrollers powered by an RTOS (such as Zephyr) to powerful multi-core CPUs running a general purpose kernel such as Linux.

Conventional documentation tends to document all the flags, settings and hooks to extend to OS to fit the needs of the device maker but still leaves a lot of integration work and testing for the device maker. This leads to a suboptimal product creation experience. In order to attract the community to this operating system, we’d like to go beyond the regular documentation to demonstrate how to use the OS to build IoT products.

Scope

Eclipse Oniro Blueprints will integrate Oniro reference hardware with additional software and custom applications in order to provide a thoroughly tested "book of recipes" and documentation to build various IoT devices.

These blueprints can be used by any device maker as the basis to start customizing their own device software on top of Oniro. This approach can significantly shorten the path to market as the vendor can skip the initial stages of implementing the custom OS architecture.

A blueprint will implement a minimum viable IoT product and will be managed independently of the Oniro core releases.

Each blueprint will have a life cycle independent of other blueprints and Oniro Core to allow the roadmap to reflect the needs of the industry, the partners and the community. Depending on community interest (or lack thereof), old blueprints may get retired and blueprints for new devices may be added to the roadmap. Popular blueprints may receive additional features over the course of multiple releases.

Description

Creating blueprints has many advantages for the Oniro Project. Some of them are outlined below.

  1. Provides a way to demonstrate Oniro features and technology using functional IoT device examples.
  2. Simplifies discussion with potential partners when one is able to show a real-world IoT device (albeit not fully-featured) built on top of Oniro by reducing the barrier to entry.
  3. Allows more thorough integration testing of Oniro components based on real user stories.
  4. Multiple blueprints will gain features to communicate with each other and work as a single ecosystem of devices thereby demonstrating the real value of the Oniro Project.
  5. Blueprints will reduce the barrier to entry for the community to engage with the Oniro Project due to the use of low-cost commodity hardware.

For Oniro, we want to provide blueprints of some IoT devices that can be built using Oniro. A Blueprint may be thought of as a set of instructions to put together some hardware, integrate it with Oniro running an application that mimics a real-world IoT device.

Why Here?

Oniro Blueprints are a vehicle to market the uses of the Eclipse Oniro Core Platform. And while blueprints will have their own life cycles, having it hosted in the same place as the Oniro Core Platform makes sense.

Future Work

Eclipse Oniro Blueprints will work on the following key features across various blueprints over the next year to address market gaps and partner requirements:

  1. Support for OTA update solution for Linux and Zephyr in the blueprints.
  2. Periodic update releases to address existing security issues.
  3. Eclipse Oniro Blueprints will share a common set of data exchange formats and protocols allowing them to talk to each other and become part of a large ecosystem of “smart” devices.
Project Scheduling

The initial contribution for the Eclipse Oniro Blueprints project is now ready to be transferred to the Eclipse Foundation. We'd like to provision the project on Eclipse Foundation infrastructure as soon as possible to create the first Eclipse Foundation Oniro Blueprints release and continue future maintenance releases from the Eclipse infrastructure.

Committers
Amit Kucheria (This committer does not have an Eclipse Account)
Bartosz Golaszewski (This committer does not have an Eclipse Account)
Andrei Gherzan (This committer does not have an Eclipse Account)
Stefan Schmidt (This committer does not have an Eclipse Account)
Interested Parties

The following individuals, organisations, companies and projects have expressed interest in this project:

  • SECO
  • Linaro
  • Array
  • NOI Techpark
  • Synesthesia
  • Huawei
Initial Contribution

Eclipse Oniro Blueprints are designed to work with Oniro Core that uses the Yocto Project  as its base and intends to keep compatibility with OpenHarmony. Following that choice, Eclipse Oniro Blueprints includes various layers and recipes from the Yocto Project upstream to include various third-party software components into the project. Where needed, Eclipse Oniro Blueprints may override the configuration of how a software component is built by overriding the default recipe inherited from the Yocto Project. In some cases, additional patches are applied to the component on a case-by-case basis. However, Oniro Blueprints only uses a small fraction of the software components packaged inside the Yocto Project for the core image and blueprints.

The goal is to be able to share these layers and recipes with OpenHarmony in the future.

As described above, all the recipes and their overrides are licensed under the Apache License, Version 2.0. Patches to software components are licensed under the original license of the software component.

Source Repository Type