diff --git a/docs/blueprints/assets/smart-home-blueprint-arch.png b/docs/blueprints/assets/smart-home-blueprint-arch.png deleted file mode 100755 index 940bbfd6dc9bca016eec712d660f28be8e0e36cf..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smart-home-blueprint-arch.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64f88ec913e5a1ce8e5368ad28f5db965b18de9599c88a31f23e7d6384135986 -size 20216 diff --git a/docs/blueprints/assets/smart-home-blueprint-arch.png.license b/docs/blueprints/assets/smart-home-blueprint-arch.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smart-home-blueprint-arch.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smart-home-blueprint-arch.puml b/docs/blueprints/assets/smart-home-blueprint-arch.puml deleted file mode 100644 index 3e2dde82e79d33caa0cd113b44693d18391c4bc6..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smart-home-blueprint-arch.puml +++ /dev/null @@ -1,22 +0,0 @@ -' SPDX-FileCopyrightText: Huawei Inc. -' -' SPDX-License-Identifier: CC-BY-4.0 - -@startuml smarthome-blueprint-arch -!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml - -HIDE_STEREOTYPE() - -title SmartHome Blueprint Architecture - -Person(user, "User") -System(dashboard, "Dashboard", "Home Assistant software running on Avenger96 board, interfacing with the user via a touchscreen") - -System_Ext(sensors_board, "Sensors board", "96Boards Nitrogen with the Sensors Mezzanine adapter and selected sensors connected") -System_Ext(smart_bulb, "Smart bulb/LED", "96Boards Nitrogen with the Sensors Mezzanine adapter and LED connected") - -Rel(user, dashboard, "Uses") -Rel_Back(dashboard, sensors_board, "Sends sensors readings", "BLE") -Rel_Neighbor(dashboard, sensors_board, "Reads out sensors", "BLE") -Rel(dashboard, smart_bulb, "Controls", "BLE") -@enduml diff --git a/docs/blueprints/assets/smarthome-blueprint-assembled.jpg b/docs/blueprints/assets/smarthome-blueprint-assembled.jpg deleted file mode 100644 index 1bc88d8f4e0f49a124e03506e8d46a1bb269f614..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-assembled.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f51ede369d7fd255231142a9d261363f6b0c10bda2acad6051be4a79bf12d0d7 -size 1972313 diff --git a/docs/blueprints/assets/smarthome-blueprint-assembled.jpg.license b/docs/blueprints/assets/smarthome-blueprint-assembled.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-assembled.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png b/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png deleted file mode 100644 index f7ea492578b22f1d4d84053afa0606cf53bb1657..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4ad98a9a9ade4f86e39e3bc663716b812a6e936292bb6db4659bca446d91be30 -size 37488 diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png.license b/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-action.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png b/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png deleted file mode 100644 index 4120e485aa7fe23b69069a17b64acdf16955b9e3..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5b03bd8e943c63778f6e205d9212f0827b1d0e2b1234fcfbb19314870468c33 -size 61539 diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png.license b/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-automations-trigger.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png b/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png deleted file mode 100644 index 2a90c897485b3c8d281c10809b52a86e0cfe9bb2..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5e6253c2b079a0c43b4b0ccef03b1efacb093646510fab8aadbd8086dd25ac3 -size 47287 diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png.license b/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-config-done.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png b/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png deleted file mode 100644 index a8610658ba162a2196fa47ab8959a34d951206b3..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f85633a742a83e5c2f9516da19822762403dc46379500fe6ebf4c0d6ce9411a6 -size 77557 diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png.license b/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard-config.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard.png b/docs/blueprints/assets/smarthome-blueprint-dashboard.png deleted file mode 100644 index 5c1f39d18b61b37a7b4b8e050c0b12288f9db489..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:853c7be9ff10a2eb51144e9869a55056f87d01f71a561af5bd274dd3056ce070 -size 46045 diff --git a/docs/blueprints/assets/smarthome-blueprint-dashboard.png.license b/docs/blueprints/assets/smarthome-blueprint-dashboard.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/smarthome-blueprint-dashboard.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-b68-bom.jpg b/docs/blueprints/assets/vending-machine-b68-bom.jpg deleted file mode 100644 index dc774f48060a89cc20df0dd3f4be919e610e1518..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-bom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2612745b24a28210a1752eb22a2365fd5d7f2144f3003ad1d2ca6cb648056bca -size 3603983 diff --git a/docs/blueprints/assets/vending-machine-b68-bom.jpg.license b/docs/blueprints/assets/vending-machine-b68-bom.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-bom.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-b68-boot.jpg b/docs/blueprints/assets/vending-machine-b68-boot.jpg deleted file mode 100644 index fedf88d6d3da81c87f7a2421637c30a680b981f5..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-boot.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d7518002e0a624e1976425980bb89e15b19d918c5ab71970facd75638d0c4fea -size 4043357 diff --git a/docs/blueprints/assets/vending-machine-b68-boot.jpg.license b/docs/blueprints/assets/vending-machine-b68-boot.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-boot.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg b/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg deleted file mode 100644 index 5fca38d8cd10b65344cbdb9e83f0c5f27c311d5e..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:076d01f7539f8cbfdddb48eeeff0c05c043149e1d100ba2fb338c6377b6ad055 -size 3360827 diff --git a/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg.license b/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-hw-setup.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg b/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg deleted file mode 100644 index 4e248aff73465e8bdf957fe5a4e4e8569a0334d6..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f1234d9773d033f46bd727ba4386dbf129906a798db60ffdea349a51bfb3c1d -size 3008937 diff --git a/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg.license b/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-i2c-board.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-b68-i2c.png b/docs/blueprints/assets/vending-machine-b68-i2c.png deleted file mode 100644 index 2f3995cc5affedadbde840f8d1c903ab383c4cda..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-i2c.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01f0b4d788129536c9574dcd2b14e4b6bae240cbad8ef2bf4811118111c5da11 -size 41013 diff --git a/docs/blueprints/assets/vending-machine-b68-i2c.png.license b/docs/blueprints/assets/vending-machine-b68-i2c.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-b68-i2c.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-logo.jpg b/docs/blueprints/assets/vending-machine-logo.jpg deleted file mode 100644 index 8625f587d5a17a1fdf1dcb415cec99f0a5c7f36b..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-logo.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:065401b0dadc14370dbbc986152565ab508ba772919d0460aa741ebe827d91a1 -size 20995 diff --git a/docs/blueprints/assets/vending-machine-logo.jpg.license b/docs/blueprints/assets/vending-machine-logo.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-logo.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-matrix.jpg b/docs/blueprints/assets/vending-machine-matrix.jpg deleted file mode 100644 index bcfef68434a710dfe7a2af6f3bca997f42ebbc1b..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-matrix.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9d2a57224c688e9374b26704855bc780bc9fe1a9ffa01dcb01c511287d3bd196 -size 2854093 diff --git a/docs/blueprints/assets/vending-machine-matrix.jpg.license b/docs/blueprints/assets/vending-machine-matrix.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-matrix.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-rpi-bom.jpg b/docs/blueprints/assets/vending-machine-rpi-bom.jpg deleted file mode 100644 index 138747ff79f31d3cf8361202a1b3bf4d39c4e25a..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-bom.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:576d9122d5500d5fca3534eed26f780edaa47f0507db35bf99eefff2dfee3a28 -size 3570055 diff --git a/docs/blueprints/assets/vending-machine-rpi-bom.jpg.license b/docs/blueprints/assets/vending-machine-rpi-bom.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-bom.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg b/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg deleted file mode 100644 index 58a6dfcb2bb8015cbf42298cfbcb983e4a94561f..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56da35778b91bdec18255d830ef2ea2d2676ff2022c5bffab75ceff8ef741c4d -size 3523345 diff --git a/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg.license b/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-hw-setup.jpg.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/assets/vending-machine-rpi-i2c.png b/docs/blueprints/assets/vending-machine-rpi-i2c.png deleted file mode 100644 index a7b39642e03204a62c2aefb4638d43b8bc7d670e..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-i2c.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:786a4c85c03deb7d36b5fb55a54730aa4ff5e3556f4b8b153744edde0f3bd7ce -size 33842 diff --git a/docs/blueprints/assets/vending-machine-rpi-i2c.png.license b/docs/blueprints/assets/vending-machine-rpi-i2c.png.license deleted file mode 100644 index b23a85e2641e098a6c0cc2a16c805cd56252d547..0000000000000000000000000000000000000000 --- a/docs/blueprints/assets/vending-machine-rpi-i2c.png.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: Huawei Inc. - -SPDX-License-Identifier: CC-BY-4.0 \ No newline at end of file diff --git a/docs/blueprints/doorlock.rst b/docs/blueprints/doorlock.rst deleted file mode 100644 index 0b0092f998251d2d1324b1b6a2ddacaa4cd23280..0000000000000000000000000000000000000000 --- a/docs/blueprints/doorlock.rst +++ /dev/null @@ -1,184 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -################## -DoorLock Blueprint -################## - -.. contents:: - :depth: 4 - -.. attention:: - The `Door Lock` blueprint is still a work in progress (WIP). For more - information, see the :ref:`resources <ResourcesDL>` section. - -******** -Overview -******** - -The DoorLock Blueprint provides support for building a PoC smart door lock to demonstrate: - -* Operating several types of locks -* Keypad input to operate the lock locally -* Secure wireless communication to operate the lock locally (TBD) -* Secure communication with the lock remotely (TBD) -* Secure OTA (TBD) - -************ -The Hardware -************ - -Needed components -================= - -Common to all variants ----------------------- -* A breadboard (e.g. http://adafru.it/239) -* Some breadboarding wires (e.g. http://adafru.it/153) -* Arduino Nano 33 BLE Sense board with headers (e.g. https://store.arduino.cc/arduino-nano-33-ble-sense-with-headers) - -Lock Variant 1: Using a lock-style solenoid -------------------------------------------- -* A lock-style solenoid (e.g. http://adafru.it/1512) -* DC barrel jack (e.g. http://adafru.it/373) -* Power supply matching the DC barrel jack (e.g. http://adafru.it/1448) -* Possibly plug adapter for the power supply (e.g. http://adafru.it/990) -* DRV8871 motor driver breakout (e.g. http://adafru.it/3190) -* Solder iron, some solder - -Lock Variant 2: Using a rotating motor --------------------------------------- -* L9110 H-Bridge (e.g. http://adafru.it/4489) -* Rotating door lock motor (e.g. http://adafru.it/3881) -* Solder iron, some solder - -Control Variant 1: Number keypad --------------------------------- -* Number keypad (e.g. http://adafru.it/419) - -Control Variant 2: Touch sensors (TBD) --------------------------------------- -* Touch sensors (e.g. http://adafru.it/4830) -* STEMMA QT/QWIIC connector (e.g. http://adafru.it/4209) - -Control Variant 3: Fingerprint sensor (TBD) -------------------------------------------- -* Fingerprint sensor (e.g. http://adafru.it/751) - -Wiring up the breadboard -======================== -There are multiple ways to wire the breadboard. Locations of various components don't matter as long as the connections between the components are correct. We'll give an example that will get you going even if you don't know anything about electronics. -When talking about holes on the breadboard, we're assuming the breadboard is labeled like http://adafru.it/239 - A to J is left to right, 1 to 63 is top to bottom. Some breadboards are labeled differently. - -Common to all variants ----------------------- -#. - Insert the Arduino Nano 33 BLE Sense to the breadboard, USB port up, pin 1 (top left) in hole C1. -#. - Connect the Arduino's power output to the breadboard: +3.3V (pin 2, hole B2) to the left hand + strip (hole +1 on the left), GND (pin 14, hole B14) to the left hand - strip (hole -1 on the left). It is customary (but not required) to use a red wire for + and a black wire for -. -#. - Connect the left hand + strip to the right hand + strip (hole +61 on the left to +61 on the right, -61 on the left to -61 on the right). Again it is customary to use a red wire for + and a black wire for -. - -Lock Variant 1: Using a lock-style solenoid -------------------------------------------- -#. - Add the DC power barrel to the breadboard. Pin 1 (the one on the opposite side of the plug) goes to hole H60, pin 2 (under the plug) to H63, pin 3 (on the side) to J61. Make sure the power supply is set up for center positive. -#. - Prepare the DRV8871 breakout board. This requires some soldering. - Cut the header strip to 4 pins (usually the board comes with a 6 pin strip). - - Solder the 4 pins (short side up, inserted from the bottom side) to the 4 holes in the breakout board labeled "IN2", "IN1", "UM" and "GND". - - Insert the 2 terminal blocks from the top and solder them to the board from the bottom. - - More detailed instructions, including some pictures, can be found at https://cdn-learn.adafruit.com/downloads/pdf/adafruit-drv8871-brushed-dc-motor-driver-breakout.pdf -#. - Connect the DRV8871 breakout board. The terminal blocks go to the right, the pins you soldered on go to holes E25, E26, E27 and E28. -#. - Connect the DC barrel jack to the DRV8871 board. Pin 1 (hole F60) to the VM pin on the DRV8871 board (hole C27), and pin 2 (hole F63) to the GND pin on the DRV8871 board (hole C28). -#. - Connect the DRV8871's IN1 port to the Arduino's digital pin D6: Hole B26 to I7. -#. - Connect the DRV8871's IN2 port to the Arduino's digital pin D7: Hole B25 to I6. -#. - Connect the lock-style solenoid to the DRV8871's MOTOR terminal block (the one facing the Arduino). The wire facing the Arduino board goes to the blue wire on the solenoid, the wire closer to the power barrel goes to the red wire on the solenoid. -#. - Note that the Arduino board is not connected to the barrel power plug. You need to power the lock with the barrel power plug and the Arduino board with its USB port, at the same time. - -Lock Variant 2: Using a rotating motor --------------------------------------- -#. - Connect the L9110H driver to the breadboard. The side with the notch faces the Arduino board, pins go into holes E22 to E25 and F22 to F25. -#. - Connect the power supply to the L9110H: The VCC pins (pins 2 and 3 on the L9110H, holes D23 and D24) must be connected to the + terminal (e.g. hole D23 to +23 and D24 to +24). The GND pins (pins 5 and 8 on the L9110H, holes G22 and G25) must be connected to the - terminal (e.g. hole G22 to -22 and G25 to -25). -#. - Connect the L9110H's control ports (IA and IB, pins 6 and 7) to the Arduino's digital outputs D6 and D7 (hole H23 to J6, H24 to J7). -#. - Connect the L9110H's output pins (OA and OB, pins 1 and 4) to the lock motor. The easiest way is to solder a breadboard wire to the motor's wires. Connect the black wire to hole A22, and the red wire to hole A25. - -Control Variant 1: Number keypad --------------------------------- -#. - Connect the 7 pins of the keypad to the Arduino's digital pins 2, 3, 4, 5, 8, 9 and 10. From left to right: - - * Pin 1 to D9 (hole H4) - * Pin 2 to D2 (hole H11) - * Pin 3 to D8 (hole H5) - * Pin 4 to D5 (hole H8) - * Pin 5 to D10 (hole H3) - * Pin 6 to D4 (hole H9) - * Pin 7 to D3 (hole H10) - -************ -The Software -************ - -Get sources -=========== -#. - Get |main_project_name| sources as described in the :ref:`documentation <OniroQuickBuild>`. -#. - If you already have sources cloned, update them to the most recent revision - -.. code-block:: bash - - user@pc:~/oniro$ repo sync -d - -Resources -========= - -.. _ResourcesDL: - -- See `Door lock's requirement <https://git.ostc-eu.org/OSTC/requirements/-/issues/12>`_ - -******************* -Using the door lock -******************* - -Initial setup -============= -After initial flashing, you get to select the pin that will unlock the lock. -The red LED on the Arduino board flashes quickly while waiting for your new pin. - -Setting a pin -============= -You can use any combination of keys, including pressing multiple keys simultaneously. -Enter the pin you would like to use, and finish by holding the "*" key and pressing "#". -For example, if you want to use pin 1 23 4 (where 3 has to be pressed while 2 is still being held down), press and release 1, press and hold 2, press 3, release 2 and 3, press and release 4, press and hold * , press #, release * and #. - -Driving the lock -================ -Simply enter your pin using the matrix keypad to unlock the lock. - -Changing the pin -================ -Within 10 seconds of entering your pin to unlock the lock, hold the "*" key and press "#". -At this point, the red LED on the board will flash quickly, and you can enter a new pin -as described in "Setting a pin". - -Forgotten pin -============= -There is no "master key". If you've forgotten your pin, flash the separate `factory reset app <https://booting.oniroproject.org/distro/blueprints/doorlock/doorlock-factoryreset>`_, boot it, then reflash the doorlock app. diff --git a/docs/blueprints/index.rst b/docs/blueprints/index.rst deleted file mode 100644 index d1251f4a5f2009e9eb36d70dbc2ab64135775d1b..0000000000000000000000000000000000000000 --- a/docs/blueprints/index.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -|main_project_name| Blueprints -############################## - -Overview -******** - -|main_project_name| integrates its various components into a representative use-case called a `Blueprint`. A blueprint shows off the OS capabilities and best practices in building software-based products. - -To this end, blueprints are a way to distill real-world products into a ``minimum viable product`` to demonstrate how partners and users may adopt |main_project_name| securely in their own products. - -What is a Blueprint? --------------------- -#. It shows off a key feature or two of the product it is trying to emulate. -#. It focuses on reproducing a representative user interaction for a use case. - - .. note:: - Examples include: - * A secure network link, e.g., a TLS connection to avoid transmitting plain-text data. - * Wireless communication, e.g., via Bluetooth, OpenThread or NFC. - * Touch input, e.g., via a keypad or touchscreen. - * Display, e.g., showing useful messages on a display. - * Autonomous communication between two devices over a wireless link. - -#. It is implemented on the closest appropriate reference HW platform from |main_project_name|. - -What a Blueprint Isn't? ------------------------ -#. It doesn't try to implement every feature of a contemporary product category in the market. -#. It isn't optimized for cost, size, or physical looks. -#. It doesn't try to replicate the physical form-factor of a contemporary product category. Do not expect to see everything hidden away in a pretty enclosure. Expect to see boards and wires connecting to peripherals. - -Blueprints -********** - -This section details the available blueprints provided as part of the |main_project_name| environment. - -.. toctree:: - :maxdepth: 1 - - smart-panel - doorlock - touchpanel - transparent-gateway - vending-machine - -Blueprint Hardware -****************** - -This section details some of the hardware modules that will be used to create a blueprint. - -.. toctree:: - :maxdepth: 2 - - ../hardware-support/blueprint-peripherals/index diff --git a/docs/blueprints/smart-panel.rst b/docs/blueprints/smart-panel.rst deleted file mode 100644 index 2faa5b37cffca8697d3d294099ef7d9330616674..0000000000000000000000000000000000000000 --- a/docs/blueprints/smart-panel.rst +++ /dev/null @@ -1,447 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -Smart Panel Blueprint -##################### - -.. contents:: - :depth: 4 - -Overview -******** - -The Smart Panel Blueprint provides support for building a PoC for a home -automation system with components showing the capabilities of the build -infrastructure in leveraging different kernels for building an end to end -solution. - -The setup is composed of an Avenger96 board acting as a gateway and running -HomeAssistant. The gateway also provides UI as a browser connected to the -localhost HomeAssistant server. The gateway is connected over Bluetooth to two -Nitrogen boards exposing sensors and/or actuator (e.g. controlled light source). - -.. image:: assets/smart-home-blueprint-arch.png - -.. uml:: - - title - <b>High level connection diagram - end title - - node "Avenger96" #11AAFF { - [Linux] - } - - node "Nitrogen #1" #116699 { - [Zephyr#1] - } - - node "Nitrogen #2" #116699 { - [Zephyr#2] - } - - [LED] #3BB300 - [LCD] #3BB300 - [MotionSensor] #3BB300 - [HumidityTemperature] #3BB300 - [Display] - - [Linux] --> [Display] : HDMI - - [Zephyr#1] --> Linux : BLE - [Zephyr#1] --> LCD : I2C - [Zephyr#1] <-- MotionSensor : I2C - [Zephyr#1] <-- HumidityTemperature : GPIO - - [Zephyr#2] <-- Linux : BLE - [Zephyr#2] --> LED : GPIO - - legend - |= Legend: | - |<back:#11AAFF>Avenger96:96Boards</back>| - |<back:#116699>Nitrogen:96Boards</back>| - |<back:#3BB300>Grove sensors</back>| - endlegend - - [Human] --> [Display] - -Bill of materials -***************** - -IoT controller (Avenger96) --------------------------- -Equipment -^^^^^^^^^ -* 1x 96Boards Avenger96 -* 1x Power supply 12 V minimum 2 A, -* 1x microSD card at least 8 GB, -* 1x HDMI touch screen, - -Cables and connectors -^^^^^^^^^^^^^^^^^^^^^ -* 1x HDMI-HDMI. -* 1x microUSB-USB type A cable. -* 1x Ethernet cable. - -IoT devices (Nitrogens) ------------------------ -Equipment -^^^^^^^^^ -* 2x 96Boards Nitrogen, -* 2x Grove Mezzanine board, -* 1x Grove LED module, -* 1x Grove DHT11 temperature and humidity sensor, -* 1x Grove AK9753 human presence sensor, -* 1x Grove LCD RGB Backlight screen, - -Cables and connectors -^^^^^^^^^^^^^^^^^^^^^ -* 4x Grove connector cables, -* 2x microUSB cable. - -Assembly -******** - -IoT controller --------------- -#. Connect the screen's display output with the board using HDMI cable. -#. Connect the screen's touch controller with the board using USB cable. -#. The board to a network with DHCP server configured using the Ethernet cable. -#. Do not insert the microSD card into the board's slot. It will be needed for - flashing. -#. Connect power supply to the power jack. - - .. image:: assets/smarthome-blueprint-assembled.jpg - :alt: The whole assembled setup with labels - -IoT devices ------------ -#. Connect Grove Mezzanine boards to both Nitrogen boards. One of them will act - as a light switching device, the other as sensors device. -#. Assemble the light switching device: - - * Connect Grove LED module to GPIO IJ port on the Mezzanine board. - -#. Assemble the sensors device: - - * Connect Grove DHT11 module to GPIO GH port on the Mezzanine board, - * Connect Grove AK9753 module to GPIO KL port on the Mezzanine board, - * Connect Grove LCD module to I2C0 port on the Mezzanine board, - -#. Connect Nitrogens to your computer with microUSB cables. - -Get sources -*********** -#. - Get |main_project_name| sources as described in the :ref:`documentation <OniroQuickBuild>`. - -#. - If you already have sources cloned, update them to the most recent revision - - .. code-block:: bash - - $ repo sync -d - -Prepare IoT devices (Nitrogen/Zephyr flavour) -********************************************* - -Build ------ - -#. - Create build directory - - .. code-block:: bash - - $ TEMPLATECONF=../oniro/flavours/zephyr . ./oe-core/oe-init-build-env build-oniro-zephyr-96b-nitrogen - -#. - Edit ``conf/local.conf``, and uncomment the following line: - - .. code-block:: bash - - #MACHINE ?= "96b-nitrogen" - -#. - Build ``zephyr-blueprint-smarthome-sensors`` image using ``bitbake``, - with the following override: - - .. code-block:: bash - - $ DISTRO=oniro-zephyr-blueprint-dashboard bitbake zephyr-blueprint-smarthome-sensors - - .. note:: - - * The build will configure the MAC address with sane defaults. If you - want a custom MAC address, you can prepend to the command above the - following: - - BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SMART_HOME_SENSORS_MAC" SMART_HOME_SENSORS_MAC="<custom_mac_address>" - - * The MAC address can have any value provided it starts with ``C0`` and - is unique in your environment. - -#. - Make sure you have at least 3 GB of free space on the partition - where the build directory is located. - -#. - Build ``zephyr-blueprint-smarthome-switch`` image using ``bitbake``, - with the following override: - - - * ``SMART_HOME_SWITCH_MAC`` set to MAC address of the IoT device. - **It must be different than the MAC address used in the previous step**. - - .. code-block:: bash - - $ DISTRO=oniro-zephyr-blueprint-dashboard bitbake zephyr-blueprint-smarthome-switch - - .. note:: - - * The build will configure the MAC address with sane defaults. If you - want a custom MAC address, you can prepend to the command above the - following: - - BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SMART_HOME_SWITCH_MAC" SMART_HOME_SWITCH_MAC="<custom_mac_address>" - - * The MAC address can have any value provided it starts with ``C0`` and - is unique in your environment. - -Flash ------ - -#. - Connect 96Boards Nitrogen boards to your computer. - -#. - Assuming both boards are connected simultaneously, retrieve their IDs - - .. code-block:: bash - - $ pyocd list - # Probe Unique ID - --------------------------------------------------- - 0 Arch BLE [nrf51] 9009022103BB2A02FE6545F3 - 1 Arch BLE [nrf51] 9009022103BB3A2DFE6555DC - - If you do not have PyOCD in your system, follow the guide in the PyOCD section of the - :ref:`Nitrogen documentation <SupportedBoardNitrogenPyOCD>`. - -#. - Flash the first board with ``zephyr-blueprint-smarthome-sensors`` image. Use the same - command you used for build, with the following changes: - - - * add ``-c flash_usb`` suffix, - * remove the MAC address override (it is only effective at build time), - * add board ID override in the form of: - ``BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE PYOCD_FLASH_IDS" PYOCD_FLASH_IDS="<id>"`` - - .. code-block:: bash - - $ BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE PYOCD_FLASH_IDS" \ - PYOCD_FLASH_IDS="9009022103BB2A02FE6545F3" bitbake zephyr-blueprint-smarthome-sensors -c flash_usb - -#. - Flash the other board with ``zephyr-blueprint-smarthome-switch`` image - - .. code-block:: bash - - $ BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE PYOCD_FLASH_IDS" \ - PYOCD_FLASH_IDS="9009022103BB3A2DFE6555DC" bitbake zephyr-blueprint-smarthome-switch -c flash_usb - -Prepare IoT controller (Avenger96/Linux flavour) -************************************************ - -Build ------ -#. - Create build directory - - .. code-block:: bash - - $ TEMPLATECONF=../oniro/flavours/linux . ./oe-core/oe-init-build-env build-oniro-linux-stm32mp1-av96 - -#. - Edit ``conf/local.conf``, and uncomment the following line: - - .. code-block:: bash - - #MACHINE ?= "stm32mp1-av96" - -#. - Make sure you have at least 25 GB of free space on the partition - where the build directory is located. - - -#. Build ``blueprint-dashboard-gateway-image`` image using ``bitbake``, - with the following overrides: - - * ``DISTRO`` set to ``oniro-linux-blueprint-dashboard`` -- - this distribution configuration enhances the regular distribution - with dependencies necessary for this demonstration scenario, - * ``SMART_HOME_SENSORS_MAC`` and ``SMART_HOME_SWITCH_MAC`` set to MAC - addresses of IoT devices, as set in the previous section. - - .. code-block:: bash - - $ DISTRO=oniro-linux-blueprint-dashboard \ - BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SMART_HOME_SENSORS_MAC SMART_HOME_SWITCH_MAC" \ - SMART_HOME_SENSORS_MAC="C0:BA:DD:06:F0:0D" \ - SMART_HOME_SWITCH_MAC="C0:BA:DD:06:F0:0E" \ - bitbake blueprint-dashboard-gateway-image - - -Flash ------ -#. - Build artifacts are located in ``./tmp/deploy/images/stm32mp1-av96/`` relative - to the build directory. Flashing script is located in - ``./scripts/create_sdcard_from_flashlayout.sh`` relative to the build artifacts - directory. FSD card flash layout used to convert build artifacts to the image is - located in ``flashlayout_<image name>/extensible/FlashLayout_sdcard_stm32mp157a-av96-extensible.tsv`` - relative to the build artifacts directory. - -#. - Go to the build artifacts directory and convert flash layout into a build image - - .. code-block:: bash - - $ cd tmp/deploy/images/stm32mp1-av96 - - $ ./scripts/create_sdcard_from_flashlayout.sh \ - flashlayout_blueprint-dashboard-gateway-image/extensible/FlashLayout_sdcard_stm32mp157a-av96-extensible.tsv - -#. - Lots of text will appear, but the most important part are the two commands - - .. code-block:: bash - - WARNING: before to use the command dd, please umount all the partitions - associated to SDCARD. - sudo umount `lsblk --list | grep <sd card name> | grep part | gawk '{ print $7 }' | tr '\n' ' '` - - To put this raw image on sdcard - sudo dd if=<image>.raw of=<sd card node> bs=8M conv=fdatasync status=progress - -#. Put a microSD card in your card reader. Copy the commands above and paste them - into your terminal. Do not remove the microSD card from the reader just yet. - -Add Bluetooth firmware ----------------------- -Due to licensing details, |main_project_name| cannot provide the firmware file for -the on-board Bluetooth controller. However, user may download and install it -manually. - -#. Download the `Bluetooth firmware file from GitHub <https://github.com/dh-electronics/meta-av96/raw/9d2a3fdacf49aebc9298a7c444f5a021d3e99e13/recipes-bsp/firmware-files/files/lib/firmware/brcm/BCM4345C0.hcd>`_. - -#. Create directory ``lib/firmware/brcm`` on the ``rootfs`` partition of the - microSD card and copy the downloaded file into that directory. Assuming your - card's mount point is ``/mnt/rootfs``, you may use the example commands to - accomplish that: - - .. code-block:: bash - - $ sudo mkdir /mnt/rootfs/lib/firmware/brcm - $ sudo cp ~/Downloads/BCM4345C0.hcd /mnt/rootfs/lib/firmware/brcm - $ sudo chmod 755 /mnt/rootfs/lib/firmware/brcm - -#. Unmount all microSD card partitions, remove them from the reader and put - it in Avenger96 card slot. Power up the board. - -Home Assistant -************** - -Set up ------- -#. Put ths SD card into Avenger96 and press power on button. -#. On start up, Avenger96 will try to contact a DHCP server. Be sure to - have one in your network, where you can see the IP address assigned to - the board. Alternatively, you can use UART-USB adapter, log in to the - system and set IP address manually. -#. Using a web browser, go to the IP address of Avenger96, port ``8123``. - E.g. if you find out the Avenger's IP address is ``192.0.2.137`` , go to - ``http://192.0.2.137:8123``. -#. Create a user account and click your way through the basic settings. -#. You should find yourself in Home Assistant dashboard. Three circular - icons on top show temperature, humidity and human presence. - - .. image:: assets/smarthome-blueprint-dashboard.png - :alt: Home Assistant dashboard - -Customizing the Dashboard -------------------------- -#. Click three vertical dots in the top-right corner of the dashboard - and select ``Configure UI``. -#. Agree to take control over the UI, remove the default widgets and - click the yellow ``+`` button in the bottom-right corner of the dashboard. -#. Choose widgets according to your taste. They are already pre-configured, - connected to the existing sensors (temperature, humidity, human presence) - and light controls. -#. Adjust widgets configuration according to your taste. Most notable - possibility is that you can combine multiple entities in one widget, - e.g. creating a single widget with all the sensors and a light control - switch. - - .. image:: assets/smarthome-blueprint-dashboard-config.png - :alt: Home Assistant dashboard configuration - - - .. image:: assets/smarthome-blueprint-dashboard-config-done.png - :alt: Home Assistant dashboard finished configuration - -Set up automations ------------------- -Home Assistant can do things for you based on state sensors. This is how -Home Assistant can be configured to turn the light on/off based on -user presence nearby the human presence sensor. Imagine it is a kitchen -light turning on every time it detects you are about to prepare a meal! - - -#. Go to Configuration menu using the cog button located on the left-hand - sidebar, then to Automations. -#. Click the yellow ``+`` button in the bottom-right corner of the screen, then - skip the smart automations generator. -#. Name your automation accordingly, e.g. *Lights on when somebody in the room*. -#. Set the trigger as follows: - - * Trigger type: ``State``, - * Entity: ``sensor.all_scenarios_os_smarthome_device_presence``, - * From: ``False`` (*person not detected*). - * To: ``True`` (*person detected*)/ - - .. image:: assets/smarthome-blueprint-dashboard-automations-trigger.png - :alt: Home Assistant dashboard automations trigger - -#. - Set the action as follows: - - - * Action type: ``Call service``, - * Service: ``switch.turn_on``, - * Name(s) of entities to turn on: ``switch.all_scenarios_os_smarthome_device_light``. - - .. image:: assets/smarthome-blueprint-dashboard-automations-action.png - :alt: Home Assistant dashboard automations action - -#. - Click the yellow save button in the bottom-right corner of the screen. - -#. Repeat steps 2-6 for the opposite automation, i.e. turning the light off, - when human presence state switches from ``True`` to ``False``. - -Verify operations -***************** -#. Temperature and humidity readings should show temperature and humidity - in the room where the Nitrogen with sensors is located. Try to blow - hot/cold air on the sensor to see values changing -#. Human presence state should change when you move your hand close to - the sensor. -#. The light switch should control the LED. -#. The LED should turn on/off automatically when human presence is detected. -#. The LCD screen should display the current temperature, humidity - and the connection state marked with a ``<B>`` symbol. diff --git a/docs/blueprints/touchpanel.rst b/docs/blueprints/touchpanel.rst deleted file mode 100644 index 53dc7c93d2631ef9eb156c6aa653273f43bf77d5..0000000000000000000000000000000000000000 --- a/docs/blueprints/touchpanel.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -TouchPanel Blueprint -##################### - -.. contents:: - :depth: 4 - -.. attention:: - The `TouchPannel` blueprint is still a work in progress (WIP). For more - information, see the :ref:`resources <Resources>` section. - - - -Overview -******** - -The TouchPanel Blueprint provides support for building a PoC smart touch panel that can be used in other smart devices to accept input and display status. Some features to demonstrate include: - -#. Accepting input from a keypad -#. Accepting input from UI icons on a touch panel -#. Ability to send input data securely over the network - -Get sources -*********** -#. - Get |main_project_name| sources as described in the :ref:`documentation <OniroQuickBuild>`. - -#. - If you already have sources cloned, update them to the most recent revision - - .. code-block:: bash - - user@pc:~/oniro$ repo sync -d - -Resources -========= - -.. _Resources: - -- See `Touch Panel's requirement <https://git.ostc-eu.org/OSTC/planning/blueprints/-/issues/19>`_ diff --git a/docs/blueprints/transparent-gateway.rst b/docs/blueprints/transparent-gateway.rst deleted file mode 100644 index 3583b452b7239ab45e93dd3204bf5369b2a45c08..0000000000000000000000000000000000000000 --- a/docs/blueprints/transparent-gateway.rst +++ /dev/null @@ -1,84 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -Transparent Gateway Blueprint -############################# - -.. contents:: - :depth: 4 - -.. attention:: - The `Transparent Gateway` blueprint is a still work in progress (WIP). For - more information, see the :ref:`resources <ResourcesTG>` section. - -Overview -******** - -The Transparent Gateway Blueprint provides support for building a PoC gateway that can be the communication hub in a smart home. Some of the features it demonstrates are: - -#. Ability to participate in an OpenThread network -#. Automatic IPv6-to-IPv4 translation between devices and rest of the world -#. WiFi AP functionality -#. Secure OTA - - -Network Subnets and Configuration -********************************* - -Depending on the used board and hardware configuration, the available network interfaces, and their names, can vary. For the sake of this blueprint, we assume the following interfaces being available:: - - Ethernet interface eth0: assumed to be uplink with DHCP enabled - WiFi interface wlan0: WiFi access point interface serving the WiFi subnet - OpenThread interface wpan0: OpenThread Border Router interface serving the mesh network - -In terms of IP subnets, we are using the private 172.16.47.0/24 range on the WiFi subnet. The AP itself has 172.16.47.1/24 assigned. Clients are being served DHCP leases in the range 172.16.47.100 - 172.16.47.150. The default DNS servers are 9.9.9.9 as primary and 8.8.8.8 as secondary. For IPv6, we rely on address auto-configuration for the time being. - -On the OpenThread mesh network subnet, no IPv4 is available, and again we rely on address auto-configuration for the time being. - -Forwarding for IPv4 and IPv6 is enabled on all interfaces with sysctl. - -WiFi Access Point Configuration -******************************* - -In our default WiFi access point configuration, we create an AP on channel 6 in the 2.4 GHz band with WPA2 pre-shared key configuration:: - - SSID: "|main_project_name| WiFi" - Passphrase: "12345678". - -For more details, the used `hostapd configuration file <https://booting.oniroproject.org/distro/oniro/-/blob/dunfell/meta-oniro-blueprints/recipes-connectivity/hostapd/files/hostapd.conf>`_ is the best reference. - -OpenThread Border Router Configuration -************************************** - -In our default OpenThread Border Router configuration, we create an OpenThread mesh network on channel 26 in the 2.4 GHz band with panid 0x1357:: - - Networkname "Oniro Thread" - OpenThread masterkey: 00112233445566778899aabbccddeeff - -For more details, the used `OpenThread configuration script <https://booting.oniroproject.org/distro/oniro/-/blob/dunfell/meta-oniro-blueprints/recipes-connectivity/openthread/ot-br-posix/otbr-configuration>`_ is the best reference. - -Get sources -*********** - -#. Get |main_project_name| sources as described in the :ref:`documentation <OniroQuickBuild>`. -#. If you already have sources cloned, update them to the most recent revision. - - .. code-block:: bash - - $ repo sync -d - -#. To build the image for this blueprint, you need to set the corresponding distro in the conf/local.conf file or on the command-line as seen below. - - .. code-block:: bash - - $ DISTRO="oniro-linux-blueprint-gateway" MACHINE=raspberrypi4-64 bitbake blueprint-gateway-image - -Resources -********* - -.. _ResourcesTG: - -- See `Transparent gateway's requirement <https://git.ostc-eu.org/OSTC/requirements/-/issues/13>`_ diff --git a/docs/blueprints/vending-machine-dev.rst b/docs/blueprints/vending-machine-dev.rst deleted file mode 100644 index c24213675e6c1ac420e2dbe9ea6ee504e6205de0..0000000000000000000000000000000000000000 --- a/docs/blueprints/vending-machine-dev.rst +++ /dev/null @@ -1,658 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -Vending Machine Blueprint Applications Interface and Protocol -############################################################# - -.. contents:: - :depth: 4 - -Communication Protocol -********************** - -The "Vending Machine" blueprint will take advantage of two applications: a UI -and an "IO Controller". These applications will exchange messages over a -defined interface using a specific protocol. For the scope of this -specification, the communication will happen over plain WebSockets/TCP. - -Specification -------------- - -In terms of roles, we have a client and a server. The "IO Controller" acts as a -server while the "UI" process, as a client. - -As a minimum client/server specification, the applications will exchange -messages as per the following diagram: - -.. code-block:: - - ┌────────────────┠selection ┌─────────────────────┠- │ ├───────────────────>┤ │ - │ │ │ │ - │ │ deliver │ IO │ - │ UI Application ├───────────────────>┤ Control Application │ - │ (client) │ │ (server) │ - │ │ delivered │ │ - │ │◄───────────────────┤ │ - └────────────────┘ └─────────────────────┘ - -Static information can be set in configuration files shared between both -applications (e.g. for items name, a timeout for simulated actions, number of -item slots, etc.). - -Server application is made on generic concepts inspired by WoT/WebThings: - -- properties: set a *selection* of products - - selection is a fixed size array and items are identified from indices in - this array while the values represent the associated item quantity -- actions: request a *deliver* order - - order also contain the current selection as a parameter -- events: *delivered* event will notify that the *deliver* action was finished - - event is delivered based on the *addEventSubscription* subscription message - -Thoses objects will be used through websockets's messages on default endpoint -(ie: `<ws://localhost:8888/>`). - -Client request's payloads are formatted using JSON structures. Below there is -an example for each of the types defined: - -Properties -========== - -.. code-block:: json - - { - "messageType": "setProperty", - "data": { - "selection": [0, 0, 0, 1] - } - } - -Actions -======= - -.. code-block:: json - - { - "messageType": "requestAction", - "data": { - "deliver": { - "input": { - "selection": [0, 1, 0, 0] - } - } - } - } - -Events -====== - -The client needs to send a subscription message once and listen from server's -event messages: - -.. code-block:: json - - { - "messageType": "addEventSubscription", - "data": { - "delivered": {} - } - } - -.. code-block:: json - - { - "messageType": "event", - "data": { - "delivered": {} - } - } - -Inter-application message flow ------------------------------- - -The UI and Control applications will adhere to the message schema defined -above. The message flow is described as it follows: - -.. code-block:: - - ┌────┠┌────┠- │ │ │ │ - │ │ │ │ - │ │ selection │ │ - │ ├─────────────────────►│ │ - │ │ │ │ - │ │ selection │ │ - │ ├─────────────────────►│ │ - │ │ │ │ - │ │ selection │ │ - │ ├─────────────────────►│ │ - │ │ │ │ - │ │ │ │ - │ │ [...] │ │ - │ │ │ │ - │ UI │ [...] │ IO │ - │ │ │ │ - │ │ │ │ - │ ├─────────────────────►│ │ - │ │ │ │ - │ │ │ │ - │ │ deliver │ │ - │ ├─────────────────────►│ │ - │ │ │ │ - │ │ delivered │ │ - │ │◄─────────────────────┤ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - └────┘ └────┘ - -Detailed example flow: - -Firstly, client is intializing by subscribing for server's future **"delivered" events**: - -.. code-block:: json - - { - "messageType": "addEventSubscription", - "data": { - "delivered": {} - } - } - -Client's application is setting an empty selection on server and then UI will -wait for user inputs: - -.. code-block:: json - - { - "messageType": "setProperty", - "data": { - "selection": [0, 0, 0, 0] - } - } - -User selects one product (one of type "1"): - -- UI will be updated accordigly -- The client process makes a request to the server to set **selection - "property"** - -.. code-block:: json - - { - "messageType": "setProperty", - "data": { - "selection": [0, 1, 0, 0] - } - } - -The IO Controller will turn on the associated LEDs to show another visual -indication. - -Then the user decides to add 1 more product of type "3": - -.. code-block:: json - - { - "messageType": "setProperty", - "data": { - "selection": [0, 1, 0, 1] - } - } - -The user confirms the order by pressing the relevant UI element, then a -**"deliver" action"** is sent from client to the server: - -.. code-block:: json - - { - "messageType": "requestAction", - "data": { - "deliver": { - "input": { - "selection": [0, 1, 0, 1] - } - } - } - } - -The UI application will be blocked until ready or timeout is reached: - -- watchdog/timeout timer starts on UI/client -- UI waits for the **delivered** event - -Processing is done server-side and **delivered event** is triggered: - -.. code-block:: json - - { - "messageType": "event", - "data": { - "delivered": {} - } - } - -The UI is unblocked and ready for new selection (it should reinitialized to -empty). - -If no "delivered" event after a defined timeout, the UI will display an "out of -order" message and show a "reset" button to refresh for the next order. - -Software Dependencies Versions ------------------------------- - -Oniro Project supports the following libraries for message encoding/decoding/parsing and -the communication protocol: - -* `libwebsockets <https://libwebsockets.org/>`_ 4.0.1 - -* `cjson <https://github.com/DaveGamble/cJSON/>`_ 1.7.13 (to be upgraded to - 1.7.14 for OpenHarmony convergence) - -* `json-c <https://github.com/json-c/json-c>`_ 0.13.1 - -Extra software could be integrated if needed: - -* `libmicrohttpd <https://git.gnunet.org/libmicrohttpd.git/tree/src/include/microhttpd.h>`_ - -For prototyping purposes server can be easily implemented using -`webthings framework <https://webthings.io/>`_. - - -Message schema --------------- - -Selection Message Schema -======================== - -The schema for the "selection" messages is: - -.. code-block:: json - - { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "http://example.com/example.json", - "type": "object", - "title": "The root schema", - "description": "The root schema comprises the entire JSON document.", - "default": {}, - "examples": [ - { - "messageType": "setProperty", - "data": { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - } - ], - "required": [ - "messageType", - "data" - ], - "properties": { - "messageType": { - "$id": "#/properties/messageType", - "type": "string", - "title": "The messageType schema", - "default": "", - "examples": [ - "setProperty" - ] - }, - "data": { - "$id": "#/properties/data", - "type": "object", - "title": "The data schema", - "default": {}, - "examples": [ - { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - ], - "required": [ - "selection" - ], - "properties": { - "selection": { - "$id": "#/properties/data/properties/selection", - "type": "array", - "title": "The selection schema", - "default": [], - "examples": [ - [ - 0, - 1 - ] - ], - "additionalItems": true, - "items": { - "$id": "#/properties/data/properties/selection/items", - "anyOf": [ - { - "$id": "#/properties/data/properties/selection/items/anyOf/0", - "type": "integer", - "title": "The first anyOf schema", - "default": 0, - "examples": [ - 0, - 1 - ] - } - ] - } - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - -Deliver Message Schema -====================== - -The schema for the "deliver" messages is: - -.. code-block:: json - - { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "http://example.com/example.json", - "type": "object", - "title": "The root schema", - "description": "The root schema comprises the entire JSON document.", - "default": {}, - "examples": [ - { - "messageType": "requestAction", - "data": { - "deliver": { - "input": { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - } - } - } - ], - "required": [ - "messageType", - "data" - ], - "properties": { - "messageType": { - "$id": "#/properties/messageType", - "type": "string", - "title": "The messageType schema", - "default": "", - "examples": [ - "requestAction" - ] - }, - "data": { - "$id": "#/properties/data", - "type": "object", - "title": "The data schema", - "default": {}, - "examples": [ - { - "deliver": { - "input": { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - } - } - ], - "required": [ - "deliver" - ], - "properties": { - "deliver": { - "$id": "#/properties/data/properties/deliver", - "type": "object", - "title": "The deliver schema", - "default": {}, - "examples": [ - { - "input": { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - } - ], - "required": [ - "input" - ], - "properties": { - "input": { - "$id": "#/properties/data/properties/deliver/properties/input", - "type": "object", - "title": "The input schema", - "default": {}, - "examples": [ - { - "selection": [ - 0, - 1, - 0, - 0 - ] - } - ], - "required": [ - "selection" - ], - "properties": { - "selection": { - "$id": "#/properties/data/properties/deliver/properties/input/properties/selection", - "type": "array", - "title": "The selection schema", - "default": [], - "examples": [ - [ - 0, - 1 - ] - ], - "additionalItems": true, - "items": { - "$id": "#/properties/data/properties/deliver/properties/input/properties/selection/items", - "anyOf": [ - { - "$id": "#/properties/data/properties/deliver/properties/input/properties/selection/items/anyOf/0", - "type": "integer", - "title": "The first anyOf schema", - "default": 0, - "examples": [ - 0, - 1 - ] - } - ] - } - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - -Delivered Message Schema -======================== - -The schema for the "delivered" messages is: - -.. code-block:: json - - { - "$schema": "http://json-schema.org/draft-07/schema", - "type": "object", - "title": "The root schema", - "description": "The root schema comprises the entire JSON document.", - "default": {}, - "examples": [ - { - "messageType": "event", - "data": { - "delivered": {} - } - } - ], - "required": [ - "messageType", - "data" - ], - "properties": { - "messageType": { - "$id": "#/properties/messageType", - "type": "string", - "title": "The messageType schema", - "description": "An explanation about the purpose of this instance.", - "default": "", - "examples": [ - "event" - ] - }, - "data": { - "$id": "#/properties/data", - "type": "object", - "title": "The data schema", - "description": "An explanation about the purpose of this instance.", - "default": {}, - "examples": [ - { - "delivered": {} - } - ], - "required": [ - "delivered" - ], - "properties": { - "delivered": { - "$id": "#/properties/data/properties/delivered", - "type": "object", - "title": "The delivered schema", - "description": "An explanation about the purpose of this instance.", - "default": {}, - "examples": [ - {} - ], - "required": [], - "additionalProperties": true - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - -Previous event will be notified if the client sends a subscription message: - -.. code-block:: json - - { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "http://example.com/example.json", - "type": "object", - "title": "The root schema", - "description": "The root schema comprises the entire JSON document.", - "default": {}, - "examples": [ - { - "messageType": "addEventSubscription", - "data": { - "delivered": {} - } - } - ], - "required": [ - "messageType", - "data" - ], - "properties": { - "messageType": { - "$id": "#/properties/messageType", - "type": "string", - "title": "The messageType schema", - "description": "An explanation about the purpose of this instance.", - "default": "", - "examples": [ - "addEventSubscription" - ] - }, - "data": { - "$id": "#/properties/data", - "type": "object", - "title": "The data schema", - "description": "An explanation about the purpose of this instance.", - "default": {}, - "examples": [ - { - "delivered": {} - } - ], - "required": [ - "delivered" - ], - "properties": { - "delivered": { - "$id": "#/properties/data/properties/delivered", - "type": "object", - "title": "The delivered schema", - "description": "An explanation about the purpose of this instance.", - "default": {}, - "examples": [ - {} - ], - "required": [], - "additionalProperties": true - } - }, - "additionalProperties": true - } - }, - "additionalProperties": true - } - -Current assumptions -------------------- - -* Both of the applications (server/client, "UI"/"IO Controller" are running on - the same, Linux-based target. -* The quantity of a selection is maximum "1". This means that the selection - array can contain values of 0 or 1. -* The availability from the perspective of the "IO Controller" is infinite. diff --git a/docs/blueprints/vending-machine.rst b/docs/blueprints/vending-machine.rst deleted file mode 100644 index c687c8144a026fb9a76914f062a4ed9ed9d83af8..0000000000000000000000000000000000000000 --- a/docs/blueprints/vending-machine.rst +++ /dev/null @@ -1,233 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../definitions.rst - -Vending Machine Blueprint -######################### - -.. image:: assets/vending-machine-logo.jpg - :alt: Vending Machine Blueprint - :height: 100px - -.. contents:: - :depth: 4 - -Overview -******** - -The Vending Machine Blueprint provides support for building a PoC smart vending -machine with components showing the capabilities of the |main_project_name| -build infrastructure to easily build an end-to-end solution using multiple -operating systems cooperating inside a product. - -Hardware Setup - Bill of Materials -********************************** - -The Vending Machine blueprint provides full support for two complete setups. -One based on Raspberry Pi 4B, an ARMv8 target, and one based on SECO B68, an X86 -board. Regardless of the target board chosen, you will need additional -components, connectors, and power supply. Besides the target board, the other -main differences in terms of hardware are the power supply and the HDMI -adapter. The latter is needed because the boards have different video input -connectors (miniDP vs micro-HDMI) while the display comes with a standard HDMI -input connector and cable. Please find below the full bill of materials for the -two supported setups: - -Raspberry Pi 4B-based setup BoM -------------------------------- - -- 1 x `Pimoroni 5x5 RGB Matrix Breakout - <https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout>`_ -- 1 x `7inch HDMI LCD Display, Waveshare, Rev3.1 or Rev2.1 - <https://www.waveshare.com/wiki/7inch_HDMI_LCD_(C)>`_ (comes with USB and - HDMI cable) -- multi-coloured DuPont wires -- 1 x microSD card (>=8GB size) -- 1 x `Raspberry Pi 4B board - <https://www.raspberrypi.com/products/raspberry-pi-4-model-b/>`_ (>=2GB RAM) -- 1 x HDMI to micro-HDMI adapter -- 1 x `Raspberry Pi USB-C Power supply - <https://www.raspberrypi.com/products/type-c-power-supply/>`_ - -.. image:: assets/vending-machine-rpi-bom.jpg - :alt: Vending Machine - Raspberry Pi 4B BoM - -SECO B68-based setup BoM ------------------------- - -- 1 x `Pimoroni 5x5 RGB Matrix Breakout - <https://shop.pimoroni.com/products/5x5-rgb-matrix-breakout>`_ -- 1 x `7inch HDMI LCD Display, Waveshare, Rev3.1 or Rev2.1 - <https://www.waveshare.com/wiki/7inch_HDMI_LCD_(C)>`_ (comes with USB and - HDMI cable) -- multi-coloured DuPont wires -- 1 x microSD card (>=8GB size) -- 1 x `SECO B68 board <https://edge.seco.com/en/sbc-b68-enuc.html>`_ -- 1 x HDMI to miniDP adapter -- 1 x 19V power supply - depending on the board variant, you might need a - barrel or an industrial screw connector - -.. image:: assets/vending-machine-b68-bom.jpg - :alt: Vending Machine - SECO B68 BoM - -Building the Blueprint Hardware Setup -************************************* - -Once we have all the required parts for this blueprint, we can proceed to build -it. Due to differences in connectors and power, there will be a set of -differences between the two setups but in general, the steps are: - -- connect the display's HDMI input to the board through the appropriate HDMI - adapter -- connect the display's USB cable to the USB connector on the board -- connect the RGB Matrix to the right I2C pins on the board using dupont wires - -.. note:: - - Note that the RGB Matrix does not come with a soldered pin header so some - soldering work will be required. - - .. image:: assets/vending-machine-matrix.jpg - :alt: Vending Machine - RGB Matrix soldered and connected - -Raspberry Pi 4B-based Hardware Setup ------------------------------------- - -.. image:: assets/vending-machine-rpi-hw-setup.jpg - :alt: Vending Machine - Raspberry Pi 4B hardware setup - -When building a Raspberry Pi 4B-based hardware setup you will need to: - -- connect the display's HDMI input through a micro-HDMI adapter to the - connector labeled `HDMI0` on the Raspberry Pi 4B board (see the image above) -- connect the RGB LED Matrix to the Raspberry Pi 4B I2C interface: - -.. image:: assets/vending-machine-rpi-i2c.png - :alt: Vending Machine - Raspberry Pi 4B I2C connection - -SECO B68-based Hardware Setup ------------------------------------ - -.. image:: assets/vending-machine-b68-hw-setup.jpg - :alt: Vending Machine - SECO B68 hardware setup - -When building a SECO B68-based hardware setup you will need to: - -- connect the display's HDMI input through a miniDP adapter to the connector - labeled `CN20` on the SECO B68 board (see the image above) -- connect the RGB LED Matrix to the SECO B68 I2C 4 port on the `CN19` - connector: - -.. image:: assets/vending-machine-b68-i2c.png - :alt: Vending Machine - SECO B68 I2C connection - -The `CN20` connector on the board can be seen here: - -.. image:: assets/vending-machine-b68-i2c-board.jpg - :alt: Vending Machine - SECO B68 I2C connection - -Fetch Blueprint Sources and Build -********************************* - -Fetch the Build Metadata ------------------------- - -The final piece remaining after building the hardware setup is fetching the -software sources and building the OS. - -For fetching the build metadata, follow the :ref:`documentation -<RepoWorkspace>`. This will bring everything you need on your host to start -building an image for this blueprint. - -Build the Oniro Image for the Vending Machine Blueprint -------------------------------------------------------- - -Once you have a workspace initialised as per the instructions above, you are -ready to build the OS. Firstly, you will be initialising a build: - -.. code-block:: bash - - $ TEMPLATECONF=../oniro/flavours/linux . ./oe-core/oe-init-build-env build-oniro-vending-machine - -This will setup a new build environment in the `build-oniro-vending-machine` -directory (or reuse it if it already exists). - -Once the build environment is set we can start building the image. The building -command will be slightly different depending on the target board. - -For the Raspberry Pi 4B-based setup: - -.. code-block:: bash - - $ DISTRO=oniro-linux-blueprint-vending-machine MACHINE=raspberrypi4-64 bitbake blueprint-vending-machine-image - -For the SECO b68-based setup: - -.. code-block:: bash - - $ DISTRO=oniro-linux-blueprint-vending-machine MACHINE=seco-intel-b68 bitbake blueprint-vending-machine-image - -Once the build is finished, the images are available for being written on a -microSD card. - -Flashing the Blueprint Image ----------------------------- - -First of all, make sure you have plugged in an microSD card via an microSD card -reader attached to your host. Once that is done, note its associated device -node. You can find that using `udev`, `dmesg` or various other tools. Once the -device not associated to the microSD card is known, proceed to flash the built -image. - -.. warning:: - - The commands below assume that the device node associated with the - microSD card is provided via the `DEVICE` environment variable. Make sure - you have the correct one set before running the commands below to avoid - risking data loss. - -For the Raspberry Pi 4B-based setup: - -.. code-block:: bash - - $ sudo bmaptool copy ./tmp/deploy/images/seco-intel-b68/blueprint-vending-machine-image-seco-intel-b68.wic "$DEVICE" - -For the SECO b68-based setup: - -.. code-block:: bash - - $ sudo bmaptool copy ./tmp/deploy/images/raspberrypi4-64/blueprint-vending-machine-image-raspberrypi4-64.wic.bz2 "$DEVICE" - -Running the Vending Machine Blueprint Image -******************************************* - -At this point, we have all the pieces we need to run the entire blueprint. -Plug in the microSD card on which you flashed the OS into the board's microSD -card slot. That brings us to the last step: booting the board by the attaching -power source. On a Raspberry Pi 4B, that would be a USB-C power supply while on -SECO B68, it would be a 19V power supply connected to the power barrel or the -industrial screw connector (depending on the board's variant). - -Once the boot process completes, the vending machine UI application will take -over the screen and be ready to interact with the RGB LED matrix for item -selection and delivery simulation. - -.. image:: assets/vending-machine-b68-boot.jpg - :alt: Vending Machine - SECO B68 up and running - -Architecture and Interfaces -*************************** - -.. toctree:: - :maxdepth: 3 - - vending-machine-dev.rst - -Resources -********* - -.. _ResourcesVM: - -- See `Vending machine's requirement <https://git.ostc-eu.org/OSTC/requirements/-/issues/80>`_ diff --git a/docs/ci/machines-and-flavours.rst b/docs/ci/machines-and-flavours.rst index fab47cce3b17739db157110dd178f68e801d6ae5..cbf868a57decca03ce647bf099d704cfbdc7059f 100644 --- a/docs/ci/machines-and-flavours.rst +++ b/docs/ci/machines-and-flavours.rst @@ -161,23 +161,3 @@ This job extends `.build-freertos` job from the manifest repository and builds 32bit ARMv5 micro-controller virtual machine. The cache for this job is publicly available. - -blueprint-smartpanel-zephyr -........................... - -This job extends `.build-zephyr` job from the manifest repository and builds -the Smart Panel Blueprint - the Zephyr side of it. - -.. note:: - The cache for this job is not public, pending legal review of any firmware - that may be included. - -blueprint-smartpanel-linux -.......................... - -This job extends `.build-linux` job from the manifest repository and builds -the Smart Panel Blueprint - the Linux side of it. - -.. note:: - The cache for this job is not public, pending legal review of any firmware - that may be included. diff --git a/docs/hardware-support/blueprint-peripherals/index.rst b/docs/hardware-support/blueprint-peripherals/index.rst deleted file mode 100644 index 469de3d09847fe4ced44c572716f349230329071..0000000000000000000000000000000000000000 --- a/docs/hardware-support/blueprint-peripherals/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../../definitions.rst - -Peripherals used in implementing blueprints -########################################### - -This section lists some of the peripherals proposed to be used (and supported) as part of |main_project_name| Blueprints. - -Peripheral Categories -********************* - -.. toctree:: - :maxdepth: 2 - - io-devices/index - lock-devices/index - diff --git a/docs/hardware-support/blueprint-peripherals/io-devices/index.rst b/docs/hardware-support/blueprint-peripherals/io-devices/index.rst deleted file mode 100644 index 6421d6ee24c240bf3dbb9a3251fe28a72dad2cb3..0000000000000000000000000000000000000000 --- a/docs/hardware-support/blueprint-peripherals/io-devices/index.rst +++ /dev/null @@ -1,90 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../../../definitions.rst - -Input/Output Peripherals used in blueprints -########################################### - -This section lists some of the peripherals used for input and output used as part of |main_project_name| Blueprints. - -.. toctree:: - :maxdepth: 3 - -Touch-based input -***************** -Smart devices accept a variety of input, typically through different types of touch interfaces. Here are a few that are used to produce |main_project_name| Blueprints. - -Capacitive Touch Sensor ------------------------ -A capacitive touch sensor is used in various use cases with many different touch finishes, including glass, acrylic, polyester films, etc. It supports multi-touch use cases but needs direct skin contact to work. - -Raw Capacitive Touch Sensor -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - `Raw touch sensor<https://www.adafruit.com/product/4830>` - -Glass Smart Switches -^^^^^^^^^^^^^^^^^^^^ -For switches connected to a wifi network. - - - `Sonoff <https://www.sonoff.in/product/sonoff-t3eu-tx-smart-wifi-black-wall-touch-switch-with-smart-home-edge-3-gang-433-rf-remote-control-works-with-alexa-ifttt/>` - -Resistive Touch Sensor ----------------------- -If a pressure-based touch experience is required (to prevent stray touches), or if it is a low-cost, single-touch application, a resistive touch sensor may be used. These sensors also work with gloves and styluses and are generally more rugged and more resistant to water, dust, and debris. - -Matrix Keypad -------------- -Usecases such as PIN entry for payment or alarm system require a numeric keypad. Matrix 3x4 or 4x4 keypads are useful in such cases, with a generic gpio keypad driver able to read the input. - - - `Adafruit <https://www.adafruit.com/product/419>` - - `Wider selection at Adafruit <https://learn.adafruit.com/matrix-keypad/featured_products>` - -Finger-print sensor -------------------- -For authentication use cases, a fingerprint module might be required. - -- `Adafruit fingerprint sensor <https://www.adafruit.com/product/751>` - -Combined display and Touch panel --------------------------------- -For applications needing a custom UI, a touch panel might be used. These can be categorized into two: - -Touch Panel (Lite) -^^^^^^^^^^^^^^^^^^ - - .. note:: - Needs experimental verification with our boards - - - `Adafruit 2.8" PiTFT for Arduino <https://www.adafruit.com/product/1947>` - - `Generic SPI display <https://www.buydisplay.com/2-8-inch-tft-touch-shield-for-arduino-w-capacitive-touch-screen-module>` - - `Monochrome 2.4" OLED Display with touch <https://www.winstar.com.tw/products/oled-module/oled-touch-display/weo012864j-ctp.html>` - - -Touch Panel (Rich) -^^^^^^^^^^^^^^^^^^ - - .. note:: - Needs experimental verification with our boards - - - `Adafruit 2.8" PiTFT for RPi <https://www.adafruit.com/product/1983>` - - `Generic SPI display <https://www.buydisplay.com/2-8-inch-tft-touch-shield-for-arduino-w-capacitive-touch-screen-module>` - - `Adafruit 7" touchscreen display for RPi with DSI interface <https://www.adafruit.com/product/2718>` - -Display output -************** -Several devices have a display component to reflect the device's status, provide feedback to user input or show other useful information. Depending on the application, you might choose just a display or a display with a touch panel that allows input. - -Display-only ------------- -A simple SPI display might be used for applications only needing a display with no touch input. - - .. note:: - Needs experimental verification with our boards - - - `Adafruit 2.0" 320x240 Color IPS TFT Display <https://www.adafruit.com/product/4311>` - -Combined display and Touch panel --------------------------------- -See `Combined display and Touch panel above` diff --git a/docs/hardware-support/blueprint-peripherals/lock-devices/index.rst b/docs/hardware-support/blueprint-peripherals/lock-devices/index.rst deleted file mode 100644 index 3b72e5c9ed9952d17708ada8f7840f744f0a60ec..0000000000000000000000000000000000000000 --- a/docs/hardware-support/blueprint-peripherals/lock-devices/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. SPDX-FileCopyrightText: Huawei Inc. -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -.. include:: ../../../definitions.rst - -Lock Peripherals used in blueprints -################################### - -Smart devices might need keyless locking functionality, e.g., a vending machine, a post box, or a smart door lock. Here are a few that are used in |main_project_name| Blueprints. - -.. toctree:: - :maxdepth: 3 - -Solenoids -********* -Solenoids are electromagnets. When the coil is energized, it pulls the lock cylinder to unlock. In the non-energized (unpowered) state, the lock is engaged. - - - `Adafruit Lock-style Solenoid - 12VDC <https://www.adafruit.com/product/1512>` - -Solenoids with key and button backup -************************************ -For applications where you want to be able to disengage the lock in the absense of electricity. - - - `Sonoff <https://www.sonoff.in/product/electric-control-rim-lock/>` - diff --git a/docs/hardware-support/index.rst b/docs/hardware-support/index.rst index 7f4c8cf5b40358bb419bc04997d968576ccce6dc..b89afad0bd5c48be93f10605fa287fdabc783377 100644 --- a/docs/hardware-support/index.rst +++ b/docs/hardware-support/index.rst @@ -18,5 +18,4 @@ This section details the hardware (including virtualized) supported as part of boards/index virtual-boards/index adding-hardware-support - blueprint-peripherals/index peripherals/index diff --git a/docs/index.rst b/docs/index.rst index 0e7c7bdf036ddbb97be3a80a2f84fc3760565494..343710e146a5116d8f021397a9834cf3cf42cd85 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -15,7 +15,6 @@ Build System Guide oniro-build/index os/index ci/index - blueprints/index supported-images hardware-support/index fallback-devices-support