Previous
Micro-RDK Troubleshooting
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.
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.
Prerequisite: A machine with viam-server installed and connected to the cloud and with any hardware physically connected to your machine and powered on.
Navigate to your machine’s page.
Click the + button on your machine’s CONFIGURE tab.

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.

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.
Follow the instructions in the configuration card to configure the model’s attributes.

If you need more details, use the link to the module’s README.
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.

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.
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.
If you have many components and services on one machine, you can add folders to your fragment and use them to organize the resources.
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.
The following models implement the arm component API:
The following models implement the base component API:
The following models implement the board component API:
The following models implement the button component API:
The following models implement the camera component API:
The following models implement the encoder component API:
The following models implement the gantry component API:
The following models implement the generic component API:
The following models implement the gripper component API:
The following models implement the input controller component API:
The following models implement the motor component API:
The following models implement the movement sensor component API:
The following models implement the power sensor component API:
The following models implement the sensor component API:
The following models implement the servo component API:
The following models implement the switch component API:
Modules in the list above are officially supported and maintained by Viam only if they are marked as “built-in,” or if the first part of their model triplet is viam.
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.
The following models implement the vision service API:
The following models implement the ML model service API:
The following models implement the motion service API:
The following models implement the generic service API:
The following models implement the SLAM service API:
The following models implement the discovery service API:
Modules in the list above are officially supported and maintained by Viam only if they are marked as “built-in,” or if the first part of their model triplet is viam.
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:
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!