Configure supported hardware

About the Viam Registry of supported hardware and software

Viam has a registry of supported hardware modules that implement standardized APIs for each category of hardware component (for example, the camera API). 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 that provides a driver for the hardware.

The Viam Registry is the storage and distribution system for not just hardware modules but also software modules (called services), ML models, and ML model training scripts. You can browse the Viam Registry in the Viam app.

Some components are supported by drivers built into viam-server, so you won’t find them in the registry page. You can browse all built-in and modular registry components below or on your machine’s configuration page in the Viam app.

There are also modules in the registry that do not directly drive any physical hardware, but rather augment physical hardware with another layer of abstraction, or add software functionality such as a chatbot integration.

Configure hardware on your machine

Prerequisite: A machine with viam-server installed and connected to the cloud.

  1. Make sure your hardware is physically connected to your machine and powered on.

  2. Navigate to your machine’s page in the Viam app.

  3. Click the + button on your machine’s CONFIGURE tab.

    Create a resource button in the Viam app.
  4. Click Component. This opens a search menu for all existing hardware drivers in the registry. Search for and select a component model that supports your hardware. Search by name, model number, or manufacturer name. Or try searching by broader category, for example “webcam” or “motor,” since some components do not require drivers that are specific to their exact make and model.

    Component search results in the Viam app.

    You can also browse the components in the Browse supported hardware by component API section below.

  5. Follow the instructions in the configuration card to configure the component’s attributes.

    Configure a component.

    If you need more details, use the link to the module’s README.

  6. Click the TEST panel of the component’s configuration card to, for example, view your camera’s stream, turn your motor, or see the latest readings from your sensor.

    Sensor test panel showing readings.

    If your component is not working as expected, check the ERROR LOGS panel for error messages. You can also read more troubleshooting tips or click ASK AI in the top right corner of the Viam app to get help from Viam’s AI assistant.

How module configuration works

When you add a modular resource from the registry, the module that provides it is automatically added at the same time, generating a configuration card for the modular resource and a separate one for the module. If you add a built-in component, there will only be a configuration card for the component.

For details on configuring versioning and environment variables for modules, see Modular Resource and Module Configuration Details.

Note that for microcontrollers, in order to add a module successfully to the machine’s configuration, the module needs to exist in the firmware build.

Browse supported hardware by component API

The following modular components are available for computers and SBCs running viam-server. Configure any of these components on your machine by following the steps above.

If you don’t find a component that supports your hardware, you can create a new module to add it to the registry.


Model
Description

The following models implement the arm component API:


Model
Description

The following models implement the base component API:


Model
Description

The following models implement the board component API:


Model
Description

The following models implement the button component API:


Model
Description

The following models implement the camera component API:


Model
Description

The following models implement the encoder component API:


Model
Description

The following models implement the gantry component API:


Model
Description

The following models implement the generic component API:


Model
Description

The following models implement the gripper component API:


Model
Description

The following models implement the input controller component API:


Model
Description

The following models implement the motor component API:


Model
Description

The following models implement the movement sensor component API:


Model
Description

The following models implement the power sensor component API:


Model
Description

The following models implement the sensor component API:


Model
Description

The following models implement the servo component API:


Model
Description

The following models implement the switch component API:


Model
Description

Next steps

If you have other hardware you need to integrate with a custom module, continue to Integrate other hardware. If you have configured all your hardware, you can do a variety of things with your machine: