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 on your machine’s configuration page in the Viam app.

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, and search for and select a component that supports your hardware.

  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

You can browse supported hardware and software modules on your machine’s configuration page in the Viam app as described above. The list below is provided for reference. The following modular components are available for computers and SBCs running viam-server.

Search for the name, model number, or manufacturer name of your hardware to see if there is already a hardware driver (component model) for it. Or try searching by broader category name, for example “webcam” or “motor,” since some components do not require drivers that are specific to their exact make and model.

Model
Description

Virtual hardware components

In addition to physical hardware, there are “virtual” hardware modules in the registry that do not directly drive any physical hardware, but rather augment physical hardware with another layer of abstraction, or add other functionality, for example:

These modules implement the same component APIs as physical hardware modules, and are configured in the same way as other components, using the + button and selecting Component from the dropdown menu.

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: