You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/dev/reference/glossary/module.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
title: Module
3
3
id: module
4
4
full_link:
5
-
short_description: A module provides one or more modular resources, which add resource types or models that are not built into Viam.
5
+
short_description: A module is a code package which provides one or more modular resources, which add resource types or models that are not built into Viam.
6
6
---
7
7
8
-
A _module_ provides one or more {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}, which add {{< glossary_tooltip term_id="resource" text="resource" >}} {{< glossary_tooltip term_id="type" text="types" >}} or {{< glossary_tooltip term_id="model" text="models" >}} that are not built into Viam.
8
+
A _module_is a code package which provides one or more {{< glossary_tooltip term_id="modular-resource" text="modular resources" >}}, which add {{< glossary_tooltip term_id="resource" text="resource" >}} {{< glossary_tooltip term_id="type" text="types" >}} or {{< glossary_tooltip term_id="model" text="models" >}} that are not built into Viam.
9
9
Modules run alongside `viam-server` as separate process, communicating with `viam-server` over UNIX sockets.
10
10
11
11
You can [create your own module](/operate/get-started/other-hardware/) or [add existing modules from the Viam Registry](/operate/get-started/supported-hardware/).
@@ -48,7 +48,7 @@ This means you can also use fragments inside a fragment.
48
48
{{% tablestep %}}
49
49
**2. Copy the raw JSON**
50
50
51
-
In your machine's **CONFIGURE** tab, switch to **JSON** and copy the raw JSON.
51
+
In your machine's **CONFIGURE** tab, switch to **JSON** and copy the raw JSON configuration object.
52
52
53
53
{{<imgprocsrc="/how-tos/one-to-many/raw-json.png"resize="700x"class="fill"style="width: 400px"declaredimensions=truealt="JSON subtab of the CONFIGURE tab">}}
54
54
@@ -79,7 +79,7 @@ If you want to edit the fragment later, do it from this screen.
79
79
**4. Delete the original configuration (optional)**
80
80
81
81
Now that the configuration is saved as a fragment, you can delete each resource in the original config from your machine and _replace the config with the fragment_ in the next step.
82
-
By using the new fragment, all your machines will use the exact same configuration.
82
+
By using the new fragment, this and every other machine you add the fragment to will use the exact same configuration.
83
83
84
84
{{% /tablestep %}}
85
85
{{< /table >}}
@@ -88,7 +88,7 @@ By using the new fragment, all your machines will use the exact same configurati
88
88
89
89
With your fragment created, you can add it to all machines that should have it.
90
90
91
-
In the following, you will see how to add a fragment manually. If you are working in a factory setting and need to set up devices before they reach the end user, you can also fragments while [provisioning](/manage/fleet/provision/setup/) your fleet.
91
+
In the following steps, you will see how to add a fragment manually. If you are working in a factory setting and need to set up devices before they reach the end user, you can also use fragments to [provision](/manage/fleet/provision/setup/) your machines.
Copy file name to clipboardExpand all lines: docs/manage/software/deploy-software.md
+19-18Lines changed: 19 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ weight: 30
5
5
layout: "docs"
6
6
type: "docs"
7
7
images: ["/registry/module-puzzle-piece.svg"]
8
-
description: You can use a fragment to deploy software packages and ML models to many machines, as well as to update deployed versions of those software packages and ML models.
8
+
description: "Deploy code packages with machine control logic to one or more machines."
9
9
languages: []
10
10
viamresources: []
11
11
platformarea: ["registry", "fleet"]
@@ -18,26 +18,27 @@ aliases:
18
18
cost: "0"
19
19
---
20
20
21
-
To deploy code or other software to individual machines:
21
+
{{< glossary_tooltip term_id="module" text="Modules" >}} are code packages that provide most of the functionality on your machines: drivers, integrations, and control logic.
22
+
23
+
The following steps show you how to create modules with control logic and how to deploy and manage all of your machine's modules over the air (OTA):
22
24
23
25
1.[Create a module with machine control logic](#create-a-module-with-machine-control-logic)
24
-
2.[Create a fragment with the configuration for your machines](#create-a-fragment)
25
-
3.[Add the fragment to your machines](#add-the-fragment-to-your-machines)
26
+
2.[Create a configuration fragment with the modules for your machine](#create-a-fragment)
27
+
3.[Add the fragment to one or more machines](#add-the-fragment-to-your-machines)
26
28
27
29
## Prerequisites
28
30
29
-
This guide assumes that you have [at least one machine](/operate/get-started/setup/) with [configured hardware and software resources](/operate/get-started/supported-hardware/).
31
+
Start by [setting up one machine](/operate/get-started/setup/).
32
+
Then, [configure any hardware and software resources](/operate/get-started/supported-hardware/) that you will use with your machine and that you want to drive with your control logic.
30
33
31
34
## Create a module with machine control logic
32
35
33
-
You can operate devices by running control logic on another device, for example using an app, or on the machine itself using a {{< glossary_tooltip term_id="module" text="module" >}}.
34
-
If all your machine control logic runs on another device or server, move on to [Create a fragment](#create-a-fragment).
35
-
36
-
If at least some of your machine control logic should run on your machine, place the control logic in a module by following these steps:
36
+
One method of operating your machine is by running control logic on another device, such as an app.
37
+
With {{< glossary_tooltip term_id="module" text="modules" >}}, you can run your control logic on the machine itself.
37
38
38
39
{{% alert title="OTA updates for microcontrollers" color="note" %}}
39
-
The following steps do not cover how to create a module with machine control logic for microcontrollers.
40
-
For microcontrollers, see [Micro-RDK modules](/operate/get-started/other-hardware/micro-module/) and [Over-the-air firmware updates](/operate/get-started/other-hardware/micro-module/#over-the-air-updates) instead.
40
+
The following steps cover how to create a module for machines running `viam-server`.
41
+
For microcontrollers, see [Micro-RDK modules](/operate/get-started/other-hardware/micro-module/) and [Over-the-air firmware updates](/operate/get-started/other-hardware/micro-module/#over-the-air-updates).
41
42
{{% /alert %}}
42
43
43
44
{{< table >}}
@@ -79,7 +80,7 @@ When your new model gets added to your machine, its `reconfigure()` method gets
79
80
If you want your control logic to run in a loop in the background, you can start this loop here.
80
81
Be sure to also implement logic to handle subsequent calls to the reconfigure method gracefully.
81
82
82
-
For example, in Python, start your logic in <FILE>src/main.py</FILE>:
83
+
For example, in Python, start your logic in the `reconfigure()` method of <FILE>src/main.py</FILE>:
@@ -189,18 +190,18 @@ Your module will now be built, packaged and pushed to the Viam Registry.
189
190
## Create a fragment
190
191
191
192
Viam has a built-in tool called _{{< glossary_tooltip term_id="fragment" text="fragments" >}}_ for using the same configuration on multiple machines.
192
-
When deploying or updating software on many machines, you should use fragments.
193
+
When deploying or updating software on many machines, you should use fragments to deploy your modules OTA to your machines.
193
194
194
-
The following example creates a fragment with a camera and a servo, as well as with the [control logic module](#create-a-module-with-machine-control-logic).
195
+
The following example starts with a machine with a camera and a servo and adds the [control logic module](#create-a-module-with-machine-control-logic).
196
+
The resulting machine configuration gets used to create the fragment for reuse on other machines.
0 commit comments