Configure registry modules

Viam has a registry of modules that implement standardized APIs for categories of hardware components and software services.

If you are using an ESP32 microcontroller, see the ESP32-specific instructions for how to add modules to the firmware build.

About the Viam Registry of supported hardware and software

The registry is the storage and distribution system for modules. Each module can contain any number of resources: components which wrap hardware drivers or services which implement software like ML models.

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.

Some components and services are built into viam-server, so you won’t find them in the registry.

You can browse all built-in and modular registry components below or on your machine’s configuration page.

Configure hardware or software on your machine

Prerequisite: A machine with viam-server installed and connected to the cloud and with any hardware physically connected to your machine and powered on.

  1. Navigate to your machine’s page.

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

    Create a resource button.
  3. Click Component or service. This opens a search menu for all existing hardware and software drivers. Search for and select a model that supports your hardware or implements your software. For 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.

    You can also browse available components in the Browse supported hardware by component API section and services in the Browse supported software by service API section.

  4. Follow the instructions in the configuration card to configure the model’s attributes.

    Configure a component or service.

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

  5. 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 resource is not working as expected, check the ERROR LOGS panel for error messages. You can also read more troubleshooting tips or get help from Viam’s AI assistant by clicking on the Ask AI button.

How module configuration works

When you add a modular resource from the registry, Viam automatically adds the module that provides it 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 resource, Viam only adds a configuration card for the resource itself.

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

Browse supported hardware by component API

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

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

Browse supported software by service API

The following built-in and modular services are available for computers and SBCs running viam-server. Configure any of these services on your machine by following the steps in Configure hardware or software on your machine.

If you don’t find a service that supports your use case, you can create a new module to add it to the registry. If you are looking to write control logic, see Run control logic instead.


Model
Description

The following models implement the vision service API:


Model
Description

The following models implement the ML model service API:


Model
Description

The following models implement the motion service API:


Model
Description

The following models implement the generic service API:


Model
Description

The following models implement the SLAM service API:


Model
Description

The following models implement the discovery service API:


Model
Description

Next steps

If you have other hardware or software you wish to use, continue to Support additional hardware and software. If you have configured all your hardware and software, you can do a variety of things with your machine: