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.
Make sure your hardware is physically connected to your machine and powered on.
Navigate to your machine’s page in the Viam app.
Click the + button on your machine’s CONFIGURE tab.
Click Component, and search for and select a component that supports your hardware.
Follow the instructions in the configuration card to configure the component’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 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.
Support notice
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
.
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:
- A “sensor” that allows you to designate a primary sensor and backup sensors in case of failure
- A “movement sensor” that calculates the estimated the position of a wheeled rover based on the output of other components
- A ChatGPT integration module
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:
- Capture data from your machines
- Create a dataset and train an AI model
- Write an app to interact with your machines using any of the Viam SDKs
- Deploy control logic to run directly on your machines
- Share the configuration across multiple machines
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!