Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweak setup and add support notice to hardware #3820

Merged
merged 4 commits into from
Jan 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/operate/get-started/other-hardware/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ prev: "/operate/get-started/supported-hardware/"
next: "/operate/get-started/other-hardware/hello-world-module/"
---

If your physical or virtual hardware is not [already supported](../supported-hardware/) by an existing {{< glossary_tooltip term_id="module" text="module" >}}, you can create a new module to add support for it.
If your physical or virtual hardware is not [already supported](/operate/get-started/supported-hardware/) by an existing {{< glossary_tooltip term_id="module" text="module" >}}, you can create a new module to add support for it.
You can keep the module private or share it with your organization or the public.
You can use built-in tools to manage versioning and deployment to machines as you iterate on your module.

This page provides instructions for writing and uploading a module in Python or Go.

{{% alert title="See also" color="info" %}}

- [Write a module for microcontrollers (to use alongside viam-micro-server)](./micro-module/)
- [Hello World guide to writing a module with Python or Go](./hello-world-module/)
- [Update and manage modules](./manage-modules/)
- [Write a module for microcontrollers (to use alongside viam-micro-server)](/operate/get-started/other-hardware/micro-module/)
- [Hello World guide to writing a module with Python or Go](/operate/get-started/other-hardware/hello-world-module/)
- [Update and manage modules](/operate/get-started/other-hardware/manage-modules/)

{{% /alert %}}

Expand Down
4 changes: 2 additions & 2 deletions docs/operate/get-started/other-hardware/manage-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ You can change the visibility of a module from public to private if:

To change the visibility, navigate to its page in the [**REGISTRY** section of the Viam app](https://app.viam.com/registry), hover to the right of the visibility indicator near the right side of the page until an **Edit** button appears, and click it to make changes.

{{<imgproc src="/registry/upload/edit-module-visibility.png" resize="x1000" declaredimensions=true alt="A module page with a Visibility heading on the right side. Under it, an Edit button has appeared." max-width="700px" >}}
{{<imgproc src="/registry/upload/edit-module-visibility.png" resize="x600" declaredimensions=true alt="A module page with a Visibility heading on the right side. Under it, an Edit button has appeared." max-width="900px" >}}

You can also edit the visibility by editing the <file>meta.json</file> file and then running the following [CLI](/dev/tools/cli/#module) command:

Expand All @@ -396,7 +396,7 @@ You can delete a module if:

To delete a module, navigate to its page in the [**REGISTRY** section of the Viam app](https://app.viam.com/registry), click the **...** menu in the upper-right corner of the page, and click **Delete**.

{{<imgproc src="/registry/upload/delete-module.png" resize="x1000" declaredimensions=true alt="A module page with the ... menu open. Delete is the only option in the menu." max-width="700px" >}}
{{<imgproc src="/registry/upload/delete-module.png" resize="x600" declaredimensions=true alt="A module page with the ... menu open. Delete is the only option in the menu." max-width="500px" >}}

{{% alert title="Note" color="note" %}}

Expand Down
54 changes: 28 additions & 26 deletions docs/operate/get-started/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,25 @@ aliases:
Get started by installing the open-source software that drives your hardware and connects your device to the cloud.
The easiest way to do this is through the Viam app, so that your machines are automatically connected to configuration and remote operation tools.

{{< expand "Supported systems" >}}

Viam can run on any computer that runs one of the following operating systems:

- Linux 64-bit operating systems running on AArch64 (ARM64) or x86-64 architectures
- macOS

Viam also offers a lightweight binary to support the following 32-bit microcontrollers:

- [ESP32-WROVER Series](https://www.espressif.com/en/products/modules/esp32)
- ESP32-WROOM Series (until v0.1.7)

ESP32 microcontrollers must have at least 2 cores, 384kB SRAM, 2MB PSRAM and 4MB flash to work with Viam.

Viam can run on Windows Subsystem for Linux (WSL), but WSL itself does not currently support exposing many types of Windows hardware to the embedded Linux kernel.
This means that some hardware, such as a connected webcam, may not be available to `viam-server` with WSL, even though it is fully supported for native Linux systems.

{{< /expand >}}

## Quickstart

{{< expand "Prerequisite: Operating system setup" >}}
Expand Down Expand Up @@ -74,15 +93,6 @@ You can think of one machine as representing one device, or one robot.

When you create a new machine in the Viam app, Viam generates a unique set of credentials for that machine that connect the physical machine to its instance in the Viam app.

### Installation methods: `viam-agent` versus manual

`viam-agent` is a service manager that automatically updates `viam-server` and includes tools for [provisioning your devices](/manage/fleet/provision/setup/) and configuring operating system updates.

When you set up a Linux device in the Viam app, you'll see an option to install using `viam-agent`, or to manually install only `viam-server`.
Using `viam-agent` is generally recommended when installing `viam-server` on a single-board computer.

`viam-agent` is not available for macOS, Windows Subsystem for Linux (WSL), or microcontrollers, so use manual install for those systems.

### How the configuration works

The machine setup steps displayed in the Viam app copy your machine's credentials to your machine.
Expand All @@ -95,6 +105,15 @@ All communication happens securely over HTTPS using secret tokens that are in th

If your machine will never connect to the internet, you can also create a [local configuration file](/operate/reference/viam-server/local-configuration-file/) on the machine itself.

### Installation methods: `viam-agent` versus manual

`viam-agent` is a service manager that automatically updates `viam-server` and includes tools for [provisioning your devices](/manage/fleet/provision/setup/) and configuring operating system updates.

When you set up a Linux device in the Viam app, you'll see an option to install using `viam-agent`, or to manually install only `viam-server`.
Using `viam-agent` is generally recommended when installing `viam-server` on a single-board computer.

`viam-agent` is not available for macOS, Windows Subsystem for Linux (WSL), or microcontrollers, so use manual install for those systems.

### Manage your installation

On Linux installs, by default `viam-server` or `viam-agent` and `viam-server` will start automatically when your system boots.
Expand All @@ -104,20 +123,3 @@ You can change this behavior if desired.
To learn how to run, update, or uninstall `viam-agent`, see [Manage `viam-agent`](/manage/reference/viam-agent/manage-viam-agent/).

For manual installs of only `viam-server`, see [Manage `viam-server`](/operate/reference/viam-server/manage-viam-server/).

## Supported systems

Viam can run on any computer that runs one of the following operating systems:

- Linux 64-bit operating systems running on AArch64 (ARM64) or x86-64 architectures
- macOS

Viam also offers a lightweight binary to support the following 32-bit microcontrollers:

- [ESP32-WROVER Series](https://www.espressif.com/en/products/modules/esp32)
- [ESP32-WROOM Series](https://www.espressif.com/en/products/modules/esp32) (until v0.1.7)

ESP32 microcontrollers must have at least 2 cores, 384kB SRAM, 2MB PSRAM and 4MB flash to work with Viam.

Viam can run on Windows Subsystem for Linux (WSL), but WSL itself does not currently support exposing many types of Windows hardware to the embedded Linux kernel.
This means that some hardware, such as a connected webcam, may not be available to `viam-server` with WSL, even though it is fully supported for native Linux systems.
10 changes: 9 additions & 1 deletion docs/operate/get-started/supported-hardware/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ These standardized APIs are implemented by {{< glossary_tooltip term_id="module"

Any hardware that is not already supported by a Viam module can be added into Viam's system of modular resources by [creating a new module](../other-hardware/) that provides a driver for the hardware.

Viam also supports various software services such as [data capture](/data-ai/capture-data/capture-sync/) and [computer vision](/data-ai/ai/create-dataset/), designed to integrate seamlessly with the hardware driver modules.
{{% alert title="Tip" color="tip" %}}

Viam also supports various [software services](#add-software-services-to-your-machine) such as [data capture](/data-ai/capture-data/capture-sync/) and [computer vision](/dev/reference/apis/services/vision/), designed to integrate seamlessly with the hardware driver modules.

{{% /alert %}}

## Supported hardware

Expand All @@ -70,6 +74,10 @@ The Viam Registry is the storage and distribution system for not just hardware m
You can browse the [Viam Registry in the Viam app](https://app.viam.com/registry?type=Module).
{{% /alert %}}

{{% alert title="Support notice" color="note" %}}
Modules in the list above are officially supported and maintained by Viam if and only if they are marked as "built-in," or if the first part of their model triplet is `viam`.
{{% /alert %}}

### For use with ESP-32 microcontrollers

The following is a selection of components (some built-ins and some modules) written for use with `viam-micro-server`.
Expand Down
2 changes: 1 addition & 1 deletion docs/operate/reference/components/base/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The base component provides an API for moving all configured components attached
If you have a mobile robot, use a base component to coordinate the motion of its motor components.

<p>
<img src="/components/base/base-trk-rover-w-arm.png" alt="A robot comprised of a wheeled base (motors, wheels and chassis) as well as some other components. The wheels are highlighted to indicate that they are part of the concept of a 'base', while the non-base components are not highlighted. The width and circumference are required attributes when configuring a base component." class="imgzoom aligncenter" style="width: 500px">
<img src="/components/base/base-trk-rover-w-arm.png" alt="A robot comprised of a wheeled base (motors, wheels and chassis) as well as some other components. The wheels are highlighted to indicate that they are part of the concept of a 'base', while the non-base components are not highlighted. The width and circumference are required attributes when configuring a base component." class="imgzoom aligncenter" style="width: 550px">
</p>

## Configuration
Expand Down
Loading