Default control interface

The CONTROL tab provides a ready-made interface for testing and operating any configured machine. Every component and service on the machine gets a control card with relevant controls and readouts. No code required.

For a purpose-built operator interface with only the widgets you need, see Teleop workspaces. For a fully custom app with SDK access, see Build apps.

Web UI

Navigate to your machine’s page in the Viam app and click the CONTROL tab.

Each configured component and service appears as a card. What you can do depends on the resource type:

Resource typeWhat you can do
ArmMove joints, set joint positions, read current positions
BaseDrive with an arrow pad, set speed with a power slider
BoardRead and write GPIO pins, ADC/DAC values
ButtonView button state, simulate press
CameraView live feed, capture frames
EncoderRead position and ticks
GantryMove axes, read positions
GripperOpen, close, stop
Input controllerView button and axis states
MotorSet power, set RPM, go to position, read position
Movement sensorRead position, orientation, velocity
Power sensorRead voltage, current, power
SensorRead current values
ServoSet angle, read current angle
SwitchToggle position
Generic componentSend custom commands (DoCommand)
Discovery serviceView discovery results
ML model serviceRun inference
Navigation serviceView and set navigation goals
SLAM serviceView map and pose
Vision serviceRun detections and classifications on camera feeds
Generic serviceSend custom commands (DoCommand)

You can switch between machine parts directly from the CONTROL tab using the part selector at the top.

Code sandbox

The CONTROL tab includes a TypeScript code sandbox. Click Sandbox in the sidebar under Code to open it.

The sandbox editor is pre-filled with a starter program based on the machine’s configured resources. You can edit the code, run it, and see output in the console below the editor. The sandbox runs against your live machine using the page’s existing connection, so you do not need to supply an API key or address.

Use the sandbox to:

  • Test SDK calls interactively before writing a full application
  • Experiment with component and service methods on a live machine
  • Prototype a sequence of commands without setting up a local development environment

Programs are not persisted. Navigating away from the sandbox discards your code. Use the download button to save your program as a file before leaving.

Viam mobile app

The Viam mobile app provides similar access from your phone:

The mobile app is available on the App Store and Google Play.

apple store icon google play store icon