From 407d55c582eeca7f0ff37b037d3cd3396af35ba3 Mon Sep 17 00:00:00 2001
From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com>
Date: Thu, 17 Oct 2024 23:27:43 +0200
Subject: [PATCH] DOCS-3032: Update component pages for user needs (#3592)
---
.github/workflows/update_sdk_methods.py | 2 +-
.../rover-resources/rover-tutorial-1.md | 2 +-
.../rover-resources/rover-tutorial/_index.md | 2 +-
docs/components/arm/_index.md | 10 ++++++---
docs/components/arm/eva.md | 6 +++++-
docs/components/arm/fake.md | 8 +++++--
docs/components/arm/lite6.md | 6 +++++-
docs/components/arm/ur5e.md | 6 +++++-
docs/components/arm/xarm6.md | 6 +++++-
docs/components/arm/xarm7.md | 6 +++++-
docs/components/arm/yahboom-dofbot.md | 6 +++++-
docs/components/base/_index.md | 17 ++++++++++++---
docs/components/base/boat.md | 6 +++++-
docs/components/base/fake.md | 6 +++++-
docs/components/base/sensor-controlled.md | 6 +++++-
docs/components/base/two_wheeled_base.md | 6 +++++-
docs/components/base/wheeled.md | 6 +++++-
docs/components/board/_index.md | 11 +++++++---
docs/components/board/beaglebone.md | 2 +-
docs/components/board/customlinux.md | 2 +-
docs/components/board/esp32.md | 2 +-
docs/components/board/fake.md | 2 +-
docs/components/board/jetson.md | 2 +-
docs/components/board/numato.md | 2 +-
docs/components/board/odroid.md | 2 +-
docs/components/board/orangepi.md | 4 ++--
docs/components/board/pca9685.md | 2 +-
docs/components/board/pi5.md | 2 +-
docs/components/board/ti.md | 2 +-
docs/components/board/upboard.md | 2 +-
docs/components/camera/_index.md | 12 ++++++++++-
docs/components/camera/calibrate.md | 2 +-
docs/components/camera/esp32-camera.md | 10 +++------
docs/components/camera/fake-micro-server.md | 6 +++++-
docs/components/camera/fake.md | 6 +++++-
docs/components/camera/ffmpeg.md | 6 +++++-
docs/components/camera/image-file.md | 6 +++++-
docs/components/camera/transform.md | 6 +++++-
docs/components/camera/webcam.md | 21 ++++++++++++-------
docs/components/component/_index.md | 10 +++++----
docs/components/component/board1.md | 8 +++++++
docs/components/component/model1.md | 8 +++++++
docs/components/encoder/_index.md | 11 +++++++---
docs/components/encoder/ams-as5048.md | 6 +++++-
docs/components/encoder/arduino.md | 6 +++++-
docs/components/encoder/fake.md | 6 +++++-
.../encoder/incremental-micro-rdk.md | 6 +++++-
docs/components/encoder/incremental.md | 6 +++++-
docs/components/encoder/single-micro-rdk.md | 6 +++++-
docs/components/encoder/single.md | 6 +++++-
docs/components/gantry/_index.md | 10 ++++++---
docs/components/gantry/fake.md | 6 +++++-
docs/components/gantry/multi-axis.md | 6 +++++-
docs/components/gantry/single-axis.md | 6 +++++-
docs/components/generic/_index.md | 10 ++++++---
docs/components/generic/fake.md | 6 +++++-
docs/components/gripper/_index.md | 10 ++++++---
docs/components/gripper/fake.md | 6 +++++-
docs/components/gripper/softrobotics.md | 6 +++++-
docs/components/input-controller/_index.md | 10 ++++++---
docs/components/input-controller/fake.md | 6 ++----
docs/components/input-controller/gamepad.md | 12 +++++------
docs/components/input-controller/gpio.md | 6 ++----
docs/components/input-controller/mux.md | 6 ++----
.../components/input-controller/webgamepad.md | 6 ++----
docs/components/motor/28byj48.md | 6 +++++-
docs/components/motor/_index.md | 11 +++++++---
docs/components/motor/dmc4000.md | 6 +++++-
docs/components/motor/encoded-motor.md | 6 +++++-
docs/components/motor/fake.md | 6 +++++-
docs/components/motor/gpio-micro-rdk.md | 6 +++++-
docs/components/motor/gpio.md | 6 +++++-
docs/components/motor/gpiostepper.md | 6 +++++-
docs/components/motor/roboclaw.md | 6 +++++-
docs/components/motor/tmc5072.md | 6 +++++-
docs/components/movement-sensor/_index.md | 10 ++++++---
.../accel-adxl345-micro-rdk.md | 6 +++++-
docs/components/movement-sensor/adxl345.md | 6 +++++-
docs/components/movement-sensor/cameramono.md | 6 +++++-
.../movement-sensor/dual-gps-rtk.md | 6 +++++-
docs/components/movement-sensor/fake.md | 6 +++++-
.../movement-sensor/gps-nmea-rtk-pmtk.md | 2 +-
.../movement-sensor/gps-nmea-rtk-serial.md | 2 +-
docs/components/movement-sensor/gps-nmea.md | 2 +-
.../movement-sensor/gyro-mpu6050-micro-rdk.md | 2 +-
.../movement-sensor/imu-vectornav.md | 2 +-
.../movement-sensor/imu-wit-hwt905.md | 2 +-
docs/components/movement-sensor/imu-wit.md | 2 +-
docs/components/movement-sensor/merged.md | 10 ++++-----
docs/components/movement-sensor/mpu6050.md | 2 +-
.../movement-sensor/wheeled-odometry.md | 8 +++++--
docs/components/power-sensor/_index.md | 10 ++++++---
docs/components/power-sensor/fake.md | 4 ++++
docs/components/power-sensor/ina219.md | 4 ++++
docs/components/power-sensor/ina226.md | 4 ++++
docs/components/power-sensor/renogy.md | 5 +++++
docs/components/sensor/_index.md | 11 +++++++---
docs/components/sensor/bme280.md | 4 ++++
docs/components/sensor/ds18b20.md | 4 ++++
docs/components/sensor/fake.md | 4 ++++
docs/components/sensor/sensirion-sht3xd.md | 4 ++++
.../components/sensor/ultrasonic-micro-rdk.md | 4 ++++
docs/components/servo/_index.md | 11 +++++++---
docs/components/servo/fake.md | 4 ++++
docs/components/servo/gpio-micro-rdk.md | 4 ++++
docs/components/servo/gpio.md | 4 ++++
docs/configure/agent.md | 2 +-
docs/how-tos/collect-data.md | 8 +++----
docs/how-tos/configure.md | 2 +-
docs/how-tos/control-motor.md | 7 +++----
docs/how-tos/create-module.md | 2 +-
docs/how-tos/sensor-module.md | 2 +-
docs/installation/viam-micro-server-dev.md | 2 +-
.../advanced/custom-components-remotes.md | 2 +-
.../advanced/iterative-development.md | 4 ++--
docs/registry/examples/custom-arm.md | 2 +-
docs/registry/examples/tflite-module.md | 2 +-
docs/services/frame-system/frame-config.md | 2 +-
.../frame-system/nested-frame-config.md | 2 +-
docs/services/generic/_index.md | 2 +-
docs/services/navigation/_index.md | 12 +++++------
docs/services/vision/_index.md | 2 +-
docs/tutorials/configure/configure-rover.md | 4 ++--
.../projects/integrating-viam-with-openai.md | 2 +-
.../tutorials/projects/verification-system.md | 4 ++--
.../services/navigate-with-rover-base.md | 4 ++--
.../services/visualize-data-grafana.md | 3 +--
.../services/webcam-line-follower-robot.md | 2 +-
.../components/apis/generated/board.md | 2 +-
.../go.board.AnalogNames.string.return.md | 2 +-
...ard.DigitalInterruptNames.string.return.md | 2 +-
.../methods/go.board.GPIOPinByName.name.md | 2 +-
static/include/components/troubleshoot/arm.md | 7 +++++++
.../include/components/troubleshoot/base.md | 12 +++++++++++
.../include/components/troubleshoot/board.md | 8 +++++++
.../include/components/troubleshoot/camera.md | 7 +++++++
.../components/troubleshoot/component.md | 7 +++++++
.../components/troubleshoot/encoder.md | 8 +++++++
.../include/components/troubleshoot/gantry.md | 7 +++++++
.../components/troubleshoot/generic.md | 7 +++++++
.../components/troubleshoot/gripper.md | 7 +++++++
.../troubleshoot/input-controller.md | 7 +++++++
.../include/components/troubleshoot/motor.md | 8 +++++++
.../troubleshoot/movement-sensor.md | 7 +++++++
.../components/troubleshoot/power-sensor.md | 7 +++++++
.../include/components/troubleshoot/sensor.md | 8 +++++++
.../include/components/troubleshoot/servo.md | 8 +++++++
static/include/snippet/setup-both.md | 2 +-
static/include/snippet/setup.md | 2 +-
149 files changed, 629 insertions(+), 202 deletions(-)
create mode 100644 static/include/components/troubleshoot/arm.md
create mode 100644 static/include/components/troubleshoot/base.md
create mode 100644 static/include/components/troubleshoot/board.md
create mode 100644 static/include/components/troubleshoot/camera.md
create mode 100644 static/include/components/troubleshoot/component.md
create mode 100644 static/include/components/troubleshoot/encoder.md
create mode 100644 static/include/components/troubleshoot/gantry.md
create mode 100644 static/include/components/troubleshoot/generic.md
create mode 100644 static/include/components/troubleshoot/gripper.md
create mode 100644 static/include/components/troubleshoot/input-controller.md
create mode 100644 static/include/components/troubleshoot/motor.md
create mode 100644 static/include/components/troubleshoot/movement-sensor.md
create mode 100644 static/include/components/troubleshoot/power-sensor.md
create mode 100644 static/include/components/troubleshoot/sensor.md
create mode 100644 static/include/components/troubleshoot/servo.md
diff --git a/.github/workflows/update_sdk_methods.py b/.github/workflows/update_sdk_methods.py
index d8df5fb431..b5b8672c7c 100755
--- a/.github/workflows/update_sdk_methods.py
+++ b/.github/workflows/update_sdk_methods.py
@@ -438,7 +438,7 @@
"organization settings page": "/cloud/organizations/",
"image tags": "/services/data/dataset/#image-tags",
"API key": "/fleet/cli/#authenticate",
- "board model": "/components/board/#available-models"
+ "board model": "/components/board/#configuration"
}
## Language-specific resource name overrides:
diff --git a/docs/appendix/try-viam/rover-resources/rover-tutorial-1.md b/docs/appendix/try-viam/rover-resources/rover-tutorial-1.md
index ccb678b579..5fdb4e2a1b 100644
--- a/docs/appendix/try-viam/rover-resources/rover-tutorial-1.md
+++ b/docs/appendix/try-viam/rover-resources/rover-tutorial-1.md
@@ -239,7 +239,7 @@ If the Pi has power, the lights on the Raspberry Pi will light up.
### Connect to the Viam app
-While the Pi boots, go to the [Viam app](https://app.viam.com/robots) and [add a machine](/cloud/machines/#add-a-new-machine).
+While the Pi boots, go to the [Viam app](https://app.viam.com/robots) and add a new machine.
Navigate to the **CONFIGURE** tab and find your machine's card.
An alert will be present directing you to **Set up your machine part**.
Click **View setup instructions** to open the setup instructions.
diff --git a/docs/appendix/try-viam/rover-resources/rover-tutorial/_index.md b/docs/appendix/try-viam/rover-resources/rover-tutorial/_index.md
index 76c4283931..a84abc83c2 100644
--- a/docs/appendix/try-viam/rover-resources/rover-tutorial/_index.md
+++ b/docs/appendix/try-viam/rover-resources/rover-tutorial/_index.md
@@ -389,7 +389,7 @@ Enable the I2C protocol on your Pi to get readings from the power sen
If you followed the instructions in the [Pi installation guide](/installation/prepare/rpi-setup/), you should have already made an account on the [Viam app](https://app.viam.com), installed `viam-server` on the board, and added a new machine.
-If not, make sure to [prepare your device and install `viam-server`](/installation/viam-server-setup/), and then [add a new machine](/cloud/machines/#add-a-new-machine).
+If not, add a new machine in the [Viam app](https://app.viam.com) and follow the {{< glossary_tooltip term_id="setup" text="setup instructions" >}} until your machine is connected.
To configure your rover so you can start driving it, [add a Viam Rover 2 Fragment to your machine](/appendix/try-viam/rover-resources/rover-tutorial-fragments/).
diff --git a/docs/components/arm/_index.md b/docs/components/arm/_index.md
index 3e92ef0923..bdd8c05f9e 100644
--- a/docs/components/arm/_index.md
+++ b/docs/components/arm/_index.md
@@ -26,7 +26,7 @@ If you have a physical robotic arm, consisting of a serial chain of joints and l
Arms have two ends: one fixed in place, and one with a device you can position.
When controlling an arm, you can place its end effector at arbitrary cartesian positions relative to the base of the arm.
-## Available models
+## Configuration
To use a robotic arm, you need to add it to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your arm.
@@ -88,9 +88,13 @@ Arm drivers are also paired, in the RDK, with JSON files that describe the kinem
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your arm is not working as expected, follow these steps:
-You can also ask questions on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your arm model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the arm there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/arm/eva.md b/docs/components/arm/eva.md
index cb705356ce..3bf3f85fdb 100644
--- a/docs/components/arm/eva.md
+++ b/docs/components/arm/eva.md
@@ -32,9 +32,13 @@ Configure an `eva` arm to integrate a [Automata Eva](https://automata.tech/produ
{{< readfile "/static/include/components/test-control/arm-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/fake.md b/docs/components/arm/fake.md
index 835936ae59..9cfe36d030 100644
--- a/docs/components/arm/fake.md
+++ b/docs/components/arm/fake.md
@@ -75,14 +75,18 @@ The following attributes are available for `fake` arms:
| Name | Type | Required? | Description |
| ---- | ---- | --------- | ----------- |
-| `arm-model` | string | Optional | Model name of the robotic arm model you want your fake arm to act as. See [built-in arm models](../#available-models) for supported model names. |
+| `arm-model` | string | Optional | Model name of the robotic arm model you want your fake arm to act as. See [built-in arm models](../#configuration) for supported model names. |
| `model-path` | string | Optional | The path to the [kinematic configuration file](/internals/kinematic-chain-config/) of the arm driver you want your fake arm to act as. This path should point to the exact location where the file is located on your computer running `viam-server`. |
{{< readfile "/static/include/components/test-control/arm-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/lite6.md b/docs/components/arm/lite6.md
index 723a0fb3fe..71fd457a43 100644
--- a/docs/components/arm/lite6.md
+++ b/docs/components/arm/lite6.md
@@ -162,9 +162,13 @@ var result = myArm.doCommand(command);
{{% /tab %}}
{{< /tabs >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/ur5e.md b/docs/components/arm/ur5e.md
index fdb6bdfcd3..3f5fdb2982 100644
--- a/docs/components/arm/ur5e.md
+++ b/docs/components/arm/ur5e.md
@@ -80,9 +80,13 @@ The following attributes are available for `ur5e` arms:
{{< readfile "/static/include/components/test-control/arm-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/xarm6.md b/docs/components/arm/xarm6.md
index 328e4e078b..1e8eb54245 100644
--- a/docs/components/arm/xarm6.md
+++ b/docs/components/arm/xarm6.md
@@ -163,9 +163,13 @@ var result = myArm.doCommand(command);
{{% /tab %}}
{{< /tabs >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/xarm7.md b/docs/components/arm/xarm7.md
index 51376484a4..1bda03de71 100644
--- a/docs/components/arm/xarm7.md
+++ b/docs/components/arm/xarm7.md
@@ -163,9 +163,13 @@ var result = myArm.doCommand(command);
{{% /tab %}}
{{< /tabs >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/arm/yahboom-dofbot.md b/docs/components/arm/yahboom-dofbot.md
index ec566f9af5..ed2b712b55 100644
--- a/docs/components/arm/yahboom-dofbot.md
+++ b/docs/components/arm/yahboom-dofbot.md
@@ -70,9 +70,13 @@ Edit and fill in the attributes as applicable.
{{< readfile "/static/include/components/test-control/arm-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/arm.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/arm/" customTitle="Arm API" noimage="true" %}}
diff --git a/docs/components/base/_index.md b/docs/components/base/_index.md
index 6fbc0f1dce..eeeadafc3f 100644
--- a/docs/components/base/_index.md
+++ b/docs/components/base/_index.md
@@ -25,7 +25,7 @@ If you have a mobile robot, use a base component to coordinate the motion of its
-## Available models
+## Configuration
To use a rover or other base, you need to add it to your machine's configuration.
@@ -71,9 +71,20 @@ The [base API](/appendix/apis/components/base/) supports the following methods:
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your base is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your base model's documentation to ensure you have configured all required attributes.
+1. Review your configuration for any motors that are components of the base.
+ Check that the names of the motor components match the list of motors you configured on the base.
+1. If a motor is spinning in an unexpected direction, try using the `dir_flip` attribute in its config, or try swapping the wires running to the motor to change its direction.
+1. Check that all wires are securely attached to the correct pins.
+1. If you are using a battery to power the base, check that it is adequately charged.
+ If the motors are drawing more power than the battery can supply, the single-board computer may be power cycling.
+ Consider using a wall power supply for testing purposes to rule out this issue.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the base there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/base/boat.md b/docs/components/base/boat.md
index b46e02c329..0e344bd69d 100644
--- a/docs/components/base/boat.md
+++ b/docs/components/base/boat.md
@@ -73,9 +73,13 @@ Each [motor](/components/motor/) inside of `Motors` has the following attributes
{{< readfile "/static/include/components/test-control/base-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/base.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/base/" customTitle="Base API" noimage="true" %}}
diff --git a/docs/components/base/fake.md b/docs/components/base/fake.md
index 44960cffb1..af69f9e2b1 100644
--- a/docs/components/base/fake.md
+++ b/docs/components/base/fake.md
@@ -47,9 +47,13 @@ See [GitHub](https://github.com/viamrobotics/rdk/blob/main/components/base/fake/
{{< readfile "/static/include/components/test-control/base-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/base.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/base/" customTitle="Base API" noimage="true" %}}
diff --git a/docs/components/base/sensor-controlled.md b/docs/components/base/sensor-controlled.md
index 21cdc07e8f..ec8728e194 100644
--- a/docs/components/base/sensor-controlled.md
+++ b/docs/components/base/sensor-controlled.md
@@ -111,9 +111,13 @@ The position, orientation, and linear and angular velocity of the rover changing
{{}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/base.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/base/" customTitle="Base API" noimage="true" %}}
diff --git a/docs/components/base/two_wheeled_base.md b/docs/components/base/two_wheeled_base.md
index 1d23764150..582910c4c0 100644
--- a/docs/components/base/two_wheeled_base.md
+++ b/docs/components/base/two_wheeled_base.md
@@ -81,9 +81,13 @@ The following attributes are available for `two_wheeled_base` bases:
{{< readfile "/static/include/components/test-control/base-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/base.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/base/" customTitle="Base API" noimage="true" %}}
diff --git a/docs/components/base/wheeled.md b/docs/components/base/wheeled.md
index f8ac2e6c3d..e5720794c7 100644
--- a/docs/components/base/wheeled.md
+++ b/docs/components/base/wheeled.md
@@ -156,9 +156,13 @@ Note that your base's wiring will vary depending on your choice of board, motors
{{< readfile "/static/include/components/test-control/base-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/base.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/base/" customTitle="Base API" noimage="true" %}}
diff --git a/docs/components/board/_index.md b/docs/components/board/_index.md
index 936c36858f..7441e5115e 100644
--- a/docs/components/board/_index.md
+++ b/docs/components/board/_index.md
@@ -41,7 +41,7 @@ If there is no board model for your board:
{{< /alert >}}
-## Available models
+## Configuration
To use GPIO pins, you need to add a board component to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your board.
@@ -80,9 +80,14 @@ The [board API](/appendix/apis/components/board/) supports the following methods
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your board is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your board model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely connected.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the board there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/board/beaglebone.md b/docs/components/board/beaglebone.md
index e699a3d9a3..281f06184a 100644
--- a/docs/components/board/beaglebone.md
+++ b/docs/components/board/beaglebone.md
@@ -77,7 +77,7 @@ Configuring these attributes on your board allows you to integrate [digital inte
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/customlinux.md b/docs/components/board/customlinux.md
index a76b205ccf..39b36774cd 100644
--- a/docs/components/board/customlinux.md
+++ b/docs/components/board/customlinux.md
@@ -400,7 +400,7 @@ The following attributes are available for `customlinux` boards:
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/esp32.md b/docs/components/board/esp32.md
index a59537c3cf..241e6d3ba7 100644
--- a/docs/components/board/esp32.md
+++ b/docs/components/board/esp32.md
@@ -185,7 +185,7 @@ Then, follow these requirements to change the PWM frequencies of a pin:
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/fake.md b/docs/components/board/fake.md
index 774399c638..27263334b1 100644
--- a/docs/components/board/fake.md
+++ b/docs/components/board/fake.md
@@ -74,7 +74,7 @@ Configuring these attributes on your board allows you to integrate [analog-to-di
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/jetson.md b/docs/components/board/jetson.md
index d914e490b1..857bf6dd28 100644
--- a/docs/components/board/jetson.md
+++ b/docs/components/board/jetson.md
@@ -90,7 +90,7 @@ Configuring these attributes on your board allows you to integrate [digital inte
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/numato.md b/docs/components/board/numato.md
index f72c0073f5..bf4f922d84 100644
--- a/docs/components/board/numato.md
+++ b/docs/components/board/numato.md
@@ -79,7 +79,7 @@ Configuring these attributes on your board allows you to integrate [analog-to-di
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/odroid.md b/docs/components/board/odroid.md
index e9e7815e27..9c5f5baf38 100644
--- a/docs/components/board/odroid.md
+++ b/docs/components/board/odroid.md
@@ -74,7 +74,7 @@ Configuring these attributes on your board allows you to integrate [digital inte
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/orangepi.md b/docs/components/board/orangepi.md
index 27ea2a740b..1f7bf3a523 100644
--- a/docs/components/board/orangepi.md
+++ b/docs/components/board/orangepi.md
@@ -22,7 +22,7 @@ There is no setup guide available for the Orange Pi Zero 2W.
If you have one of these boards, you can image it with [an Ubuntu image](https://drive.google.com/drive/folders/1g806xyPnVFyM8Dz_6wAWeoTzaDg3PH4Z) to prepare it for running `viam-server`.
{{% /alert %}}
-Once you have prepared your board, [add a new machine in your desired location](/cloud/machines/#add-a-new-machine) in the [Viam app](https://app.viam.com) and follow your new machine part's {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` on your board and connect to the Viam app.
+Once you have prepared your board, add a new machine in the [Viam app](https://app.viam.com) and follow your new machine part's {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` on your board and connect to the Viam app.
To use the GPIO pins on your board to [configure a smart machine](/configure/) with your Orange Pi computer, configure your board as a {{< glossary_tooltip term_id="component" text="component" >}} of your machine in [the Viam app](https://app.viam.com):
@@ -124,7 +124,7 @@ Configure these attributes on your board to integrate [analog-to-digital convert
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/pca9685.md b/docs/components/board/pca9685.md
index a8a35c339b..0e73b89a1a 100644
--- a/docs/components/board/pca9685.md
+++ b/docs/components/board/pca9685.md
@@ -60,7 +60,7 @@ The following attributes are available for `pca9685` boards:
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/pi5.md b/docs/components/board/pi5.md
index 17ea9c3ef7..7ea8c22adc 100644
--- a/docs/components/board/pi5.md
+++ b/docs/components/board/pi5.md
@@ -106,7 +106,7 @@ Configuring these attributes on your board allows you to integrate [analog-to-di
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/ti.md b/docs/components/board/ti.md
index bddd4037c2..22c553ed8b 100644
--- a/docs/components/board/ti.md
+++ b/docs/components/board/ti.md
@@ -75,7 +75,7 @@ Configuring these attributes on your board allows you to integrate [digital inte
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/board/upboard.md b/docs/components/board/upboard.md
index fb9b4db751..adca756984 100644
--- a/docs/components/board/upboard.md
+++ b/docs/components/board/upboard.md
@@ -109,7 +109,7 @@ Configuring these attributes on your board allows you to integrate [digital inte
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/board/" customTitle="Board API" noimage="true" %}}
diff --git a/docs/components/camera/_index.md b/docs/components/camera/_index.md
index f8fec0460d..48b60b2c03 100644
--- a/docs/components/camera/_index.md
+++ b/docs/components/camera/_index.md
@@ -25,7 +25,7 @@ You can also use camera models to manipulate the output of other cameras to tran
{{}}
-## Available models
+## Configuration
To use a camera with your machine, you need to add it to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your camera.
@@ -61,6 +61,16 @@ The [camera API](/appendix/apis/components/camera/) supports the following metho
{{< readfile "/static/include/components/apis/generated/camera-table.md" >}}
+## Troubleshooting
+
+If your camera is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your camera model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the camera there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
+
## Next steps
For general configuration, development, and usage info, see:
diff --git a/docs/components/camera/calibrate.md b/docs/components/camera/calibrate.md
index c58ecc81b0..0abffceb8c 100644
--- a/docs/components/camera/calibrate.md
+++ b/docs/components/camera/calibrate.md
@@ -109,7 +109,7 @@ The following is a full example config:
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/esp32-camera.md b/docs/components/camera/esp32-camera.md
index e0f6720be3..deebc17526 100644
--- a/docs/components/camera/esp32-camera.md
+++ b/docs/components/camera/esp32-camera.md
@@ -187,17 +187,13 @@ The following attributes are available for `esp32-camera` cameras:
{{< readfile "/static/include/components/camera-view-camera-stream.md" >}}
-## Next steps
-
-If you need to capture image data and sync it to the cloud, see:
+## Troubleshooting
-{{< cards >}}
-{{% card link="/how-tos/image-data/" %}}
-{{< /cards >}}
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/fake-micro-server.md b/docs/components/camera/fake-micro-server.md
index 3d1f724f07..abd51a67ed 100644
--- a/docs/components/camera/fake-micro-server.md
+++ b/docs/components/camera/fake-micro-server.md
@@ -57,9 +57,13 @@ You can change the refresh frequency as needed to change bandwidth.
{{< imgproc src="/components/camera/fake-micro-server-view.png" alt="Fake Camera Micro Server View" resize="400x" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/fake.md b/docs/components/camera/fake.md
index 6df45ef4a0..2ae81d4515 100644
--- a/docs/components/camera/fake.md
+++ b/docs/components/camera/fake.md
@@ -68,9 +68,13 @@ You can change the refresh frequency as needed to change bandwidth.
{{< imgproc src="/components/camera/fake-view.png" alt="Fake Camera View" resize="600x" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/ffmpeg.md b/docs/components/camera/ffmpeg.md
index 4cdd7a2112..8809d6af97 100644
--- a/docs/components/camera/ffmpeg.md
+++ b/docs/components/camera/ffmpeg.md
@@ -93,9 +93,13 @@ The following attributes are available for `ffmpeg` cameras:
{{< readfile "/static/include/components/camera-view-camera-stream.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/image-file.md b/docs/components/camera/image-file.md
index 447543abd3..6c88fdcd7f 100644
--- a/docs/components/camera/image-file.md
+++ b/docs/components/camera/image-file.md
@@ -85,9 +85,13 @@ If you then also configure a `pointcloud_file_path` on your camera, Viam will tr
{{< readfile "/static/include/components/camera-view-camera-stream.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/transform.md b/docs/components/camera/transform.md
index c9a4989572..45b6bd02ad 100644
--- a/docs/components/camera/transform.md
+++ b/docs/components/camera/transform.md
@@ -472,9 +472,13 @@ For further information, please refer to the [OpenCV docs](https://docs.opencv.o
{{< readfile "/static/include/components/camera-view-camera-stream.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/camera/webcam.md b/docs/components/camera/webcam.md
index 95581fbefc..cbfb2f761e 100644
--- a/docs/components/camera/webcam.md
+++ b/docs/components/camera/webcam.md
@@ -159,8 +159,9 @@ v4l2-ctl --list-formats-ext --device /dev/video0
## Troubleshooting
-### No visible live video feed
+{{< readfile "/static/include/components/troubleshoot/camera.md" >}}
+{{% expand "No visible live video feed" %}}
If you're working on a Linux machine, `ssh` into it, then restart `viam-server` by running:
```sh {class="command-line" data-prompt="$"}
@@ -173,21 +174,23 @@ If this doesn't work, you can reboot your machine by running:
sudo reboot
```
-### Images are dim on start up
+{{% /expand%}}
+{{% expand "Images are dim on start up" %}}
If you are capturing camera data, it can happen that the camera captures and syncs miscolored or dark images upon start up.
+{{% /expand%}}
-### CSI Camera not working on a Raspberry Pi
-
+{{% expand "CSI Camera not working on a Raspberry Pi" %}}
If you are using a CSI camera v1.3 or v2.0 on a Raspberry Pi, you need to [enable legacy mode](/installation/prepare/rpi-setup/#enable-communication-protocols).
If you are using a CSI camera v3.0, you need to use the [`viam:camera:csi` module](https://github.com/viamrobotics/csi-camera/) instead.
+{{% /expand%}}
-### High CPU usage
-
+{{% expand "High CPU usage" %}}
Each camera stream you add uses CPU on the device it is connected to and there is therefore a practical limit to the numbeof camera streams your device can simultaneously support.
You can limit the CPU usage by reducing the image resolution.
+{{% /expand%}}
-### Timeout errors on a Raspberry Pi
+{{% expand "Timeout errors on a Raspberry Pi" %}}
If you are getting "timeout" errors from GRPC when adding a `webcam` model on a Raspberry Pi, make sure the webcam port is enabled on the Pi (common if you are using a fresh Pi right out of the box).
@@ -201,9 +204,11 @@ Then, select: **Interface Options -> Camera -> Enable Camera**.
Restart the Pi to complete the configuration.
+{{% /expand%}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/camera/" customTitle="Camera API" noimage="true" %}}
diff --git a/docs/components/component/_index.md b/docs/components/component/_index.md
index 8004ef48d8..73ca1187b2 100644
--- a/docs/components/component/_index.md
+++ b/docs/components/component/_index.md
@@ -28,7 +28,7 @@ Most machines with a COMPONENT need at least the following hardware (optional):
- Board
- ...
-## Available models
+## Configuration
To use your component, check whether one of the following models supports it.
@@ -73,11 +73,13 @@ _Use an included snippet so you can add it to /program/apis/._
## Troubleshooting
-Troubleshooting information for configuration errors.
+If your COMPONENT is not working as expected, follow these steps:
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your COMPONENT model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the COMPONENT there.
-{{< snippet "social.md" >}}
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/component/board1.md b/docs/components/component/board1.md
index c4b445167c..3d6ec9ecd1 100644
--- a/docs/components/component/board1.md
+++ b/docs/components/component/board1.md
@@ -91,3 +91,11 @@ Configure these attributes on your board to integrate [analog-to-digital convert
### `digital_interrupts`
{{< readfile "/static/include/components/board/board-digital-interrupts.md" >}}
+
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/board.md" >}}
+
+## Next steps
+
+Text & links
diff --git a/docs/components/component/model1.md b/docs/components/component/model1.md
index 6e3ca08dff..573119e725 100644
--- a/docs/components/component/model1.md
+++ b/docs/components/component/model1.md
@@ -136,3 +136,11 @@ After you configure your component, navigate to the [**CONTROL** tab](/fleet/con
Then _explain how to interact with the panel_.
{{}}
+
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/component.md" >}}
+
+## Next steps
+
+Text & Links
diff --git a/docs/components/encoder/_index.md b/docs/components/encoder/_index.md
index 3080eb60b5..6f49871623 100644
--- a/docs/components/encoder/_index.md
+++ b/docs/components/encoder/_index.md
@@ -34,7 +34,7 @@ The encoder component supports:
- Single phase or single pin "pulse output" encoders, which measure the position relative to the starting position but not the direction.
- Absolute encoders, which provide the absolute position of a rotating shaft, without requiring a reference point.
-## Available models
+## Configuration
To use an encoder, you need to add it to your machine's configuration.
@@ -72,9 +72,14 @@ The [encoder API](/appendix/apis/components/encoder/) supports the following met
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your encoder is not working as expected, follow these steps:
-You can also ask questions on the [Viam Community Slack](https://join.slack.com/t/viamrobotics/shared_invite/zt-1f5xf1qk5-TECJc1MIY1MW0d6ZCg~Wnw) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your encoder model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the encoder there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/encoder/ams-as5048.md b/docs/components/encoder/ams-as5048.md
index 86e3232de2..a0df79ce03 100644
--- a/docs/components/encoder/ams-as5048.md
+++ b/docs/components/encoder/ams-as5048.md
@@ -62,9 +62,13 @@ The following attributes are available for `AMS-AS5048` encoders:
{{< readfile "/static/include/components/test-control/encoder-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/arduino.md b/docs/components/encoder/arduino.md
index 21f26162dc..cdf816bf42 100644
--- a/docs/components/encoder/arduino.md
+++ b/docs/components/encoder/arduino.md
@@ -55,9 +55,13 @@ The following attributes are available for `arduino` encoders:
| `motor_name` | string | **Required** | The `name` of the motor. |
| `pins` | **Required** | object | A struct holding the names of the pins wired to the encoder: -
a
: {{< glossary_tooltip term_id="pin-number" text="Pin number" >}} of one of the pins to which the encoder is wired. -
b
: Required for two phase encoder. {{< glossary_tooltip term_id="pin-number" text="Pin number" >}} for the second board pin to which the encoder is wired.
|
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/fake.md b/docs/components/encoder/fake.md
index 632bf1e813..cd10f8cc80 100644
--- a/docs/components/encoder/fake.md
+++ b/docs/components/encoder/fake.md
@@ -62,9 +62,13 @@ The ticks count is displayed.
![Encoder control panel.](/components/encoder/control.png)
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/incremental-micro-rdk.md b/docs/components/encoder/incremental-micro-rdk.md
index b2d23fdacd..b27686b21c 100644
--- a/docs/components/encoder/incremental-micro-rdk.md
+++ b/docs/components/encoder/incremental-micro-rdk.md
@@ -82,9 +82,13 @@ The following attributes are available for `incremental` encoders:
{{< readfile "/static/include/components/test-control/encoder-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/incremental.md b/docs/components/encoder/incremental.md
index 6bf1f987bf..4c6b3ff7cb 100644
--- a/docs/components/encoder/incremental.md
+++ b/docs/components/encoder/incremental.md
@@ -92,9 +92,13 @@ Viam also supports a model of encoder called [`"single"`](../single/) which requ
{{< readfile "/static/include/components/test-control/encoder-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/single-micro-rdk.md b/docs/components/encoder/single-micro-rdk.md
index 7c6c55e50a..a978f92fd5 100644
--- a/docs/components/encoder/single-micro-rdk.md
+++ b/docs/components/encoder/single-micro-rdk.md
@@ -60,9 +60,13 @@ The following attributes are available for `single` encoders:
{{< readfile "/static/include/components/test-control/encoder-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/encoder/single.md b/docs/components/encoder/single.md
index b3ff744dc3..a641202880 100644
--- a/docs/components/encoder/single.md
+++ b/docs/components/encoder/single.md
@@ -59,9 +59,13 @@ Viam also supports a model of encoder called [`"incremental"`](../incremental/)
{{< readfile "/static/include/components/test-control/encoder-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/encoder.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/encoder/" customTitle="Encoder API" noimage="true" %}}
diff --git a/docs/components/gantry/_index.md b/docs/components/gantry/_index.md
index 82246f85be..d64dff5976 100644
--- a/docs/components/gantry/_index.md
+++ b/docs/components/gantry/_index.md
@@ -29,7 +29,7 @@ A 3D printer is an example of a three-axis gantry where each linear actuator can
Gantry components can only be controlled in terms of linear motion (you cannot rotate them).
Each gantry can only move in one axis within the limits of the length of the linear rail.
-## Available models
+## Configuration
To use a gantry, you need to add it to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your gantry.
@@ -64,9 +64,13 @@ The [gantry API](/appendix/apis/components/gantry/) supports the following metho
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your gantry is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your gantry model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the gamtry there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/gantry/fake.md b/docs/components/gantry/fake.md
index 7831f09250..0a288d9ff9 100644
--- a/docs/components/gantry/fake.md
+++ b/docs/components/gantry/fake.md
@@ -46,9 +46,13 @@ See [GitHub](https://github.com/viamrobotics/rdk/blob/main/components/gantry/fak
{{< readfile "/static/include/components/test-control/gantry-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/gantry.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/gantry/" customTitle="Gantry API" noimage="true" %}}
diff --git a/docs/components/gantry/multi-axis.md b/docs/components/gantry/multi-axis.md
index f9d3ab7139..5bde34205d 100644
--- a/docs/components/gantry/multi-axis.md
+++ b/docs/components/gantry/multi-axis.md
@@ -212,9 +212,13 @@ The following attributes are available for `multi-axis` gantries:
{{< readfile "/static/include/components/test-control/gantry-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/gantry.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/gantry/" customTitle="Gantry API" noimage="true" %}}
diff --git a/docs/components/gantry/single-axis.md b/docs/components/gantry/single-axis.md
index 4b92ebad8e..cdf8368a1c 100644
--- a/docs/components/gantry/single-axis.md
+++ b/docs/components/gantry/single-axis.md
@@ -69,9 +69,13 @@ The following attributes are available for `single-axis` gantries:
{{< readfile "/static/include/components/test-control/gantry-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/gantry.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/gantry/" customTitle="Gantry API" noimage="true" %}}
diff --git a/docs/components/generic/_index.md b/docs/components/generic/_index.md
index 04731d6c59..42f1b87efb 100644
--- a/docs/components/generic/_index.md
+++ b/docs/components/generic/_index.md
@@ -39,7 +39,7 @@ If you want to use most of an existing API but need just a few other functions,
{{% /alert %}}
-## Available models
+## Configuration
To use a generic component, check whether one of the following models supports it.
@@ -74,9 +74,13 @@ The [generic API](/appendix/apis/components/generic/) supports the following met
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your generic component is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your generic component model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the generic component there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/generic/fake.md b/docs/components/generic/fake.md
index c14d4b51d9..a114b90b17 100644
--- a/docs/components/generic/fake.md
+++ b/docs/components/generic/fake.md
@@ -43,9 +43,13 @@ See [GitHub](https://github.com/viamrobotics/rdk/blob/main/components/generic/fa
{{< readfile "/static/include/components/test-control/generic-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/generic.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/generic/" customTitle="Generic API" noimage="true" %}}
diff --git a/docs/components/gripper/_index.md b/docs/components/gripper/_index.md
index 881b507dd0..bc0b7acccf 100644
--- a/docs/components/gripper/_index.md
+++ b/docs/components/gripper/_index.md
@@ -20,7 +20,7 @@ The gripper component provides an API for opening and closing a device.
If you have a robotic grasping device that can open and close, use a gripper component.
-## Available models
+## Configuration
To use a robotic gripper, you need to add it to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your gripper.
@@ -55,9 +55,13 @@ The [gripper API](/appendix/apis/components/gripper/) supports the following met
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your gripper is not working as expected, follow these steps:
-You can also ask questions on the [Viam Community Slack](https://join.slack.com/t/viamrobotics/shared_invite/zt-1f5xf1qk5-TECJc1MIY1MW0d6ZCg~Wnw) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your gripper model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the gripper there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/gripper/fake.md b/docs/components/gripper/fake.md
index a5f7ba8c0e..ca868b48d9 100644
--- a/docs/components/gripper/fake.md
+++ b/docs/components/gripper/fake.md
@@ -46,9 +46,13 @@ See [GitHub](https://github.com/viamrobotics/rdk/blob/main/components/gripper/fa
{{< readfile "/static/include/components/test-control/gripper-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/gripper.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/gripper/" customTitle="Gripper API" noimage="true" %}}
diff --git a/docs/components/gripper/softrobotics.md b/docs/components/gripper/softrobotics.md
index 675223f0c3..ae097671a6 100644
--- a/docs/components/gripper/softrobotics.md
+++ b/docs/components/gripper/softrobotics.md
@@ -100,9 +100,13 @@ The following attributes are available for `softrobotics` grippers:
{{< readfile "/static/include/components/test-control/gripper-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/gripper.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/gripper/" customTitle="Gripper API" noimage="true" %}}
diff --git a/docs/components/input-controller/_index.md b/docs/components/input-controller/_index.md
index 1e2b096385..4383b7379f 100644
--- a/docs/components/input-controller/_index.md
+++ b/docs/components/input-controller/_index.md
@@ -27,7 +27,7 @@ For example, when a specific button is pushed, the callback function registered
The [base remote control service](/services/base-rc/) implements an input controller as a remote control for a base.
-## Available models
+## Configuration
To use an input controller to control your machine's actions, you need to add it to your machine's configuration.
@@ -63,9 +63,13 @@ The [input controller API](/appendix/apis/components/input-controller/) supports
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your input controller is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your input controller model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the input controller there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/input-controller/fake.md b/docs/components/input-controller/fake.md
index 433f8de754..8b290926c4 100644
--- a/docs/components/input-controller/fake.md
+++ b/docs/components/input-controller/fake.md
@@ -69,13 +69,11 @@ The following attributes are available for `fake` input controllers:
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
-
-{{< snippet "social.md" >}}
+{{< readfile "/static/include/components/troubleshoot/input-controller.md" >}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/input-controller/" customTitle="Input controller API" noimage="true" %}}
diff --git a/docs/components/input-controller/gamepad.md b/docs/components/input-controller/gamepad.md
index b0ed4a618c..ffaf535196 100644
--- a/docs/components/input-controller/gamepad.md
+++ b/docs/components/input-controller/gamepad.md
@@ -72,16 +72,16 @@ If you have another controller that you want to use to control your machine, fee
## Troubleshooting
-- If you are not able to see a dropdown menu with the name of your controller appear in the **CONTROL** tab, try specifying the `dev_file` attribute to match the exact path to your device.
- You can also try setting `auto_reconnect` to `True`.
+{{< readfile "/static/include/components/troubleshoot/input-controller.md" >}}
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
-
-{{< snippet "social.md" >}}
+{{% expand "Not able to see a dropdown menu?" %}}
+If you are not able to see a dropdown menu with the name of your controller appear in the **CONTROL** tab, try specifying the `dev_file` attribute to match the exact path to your device.
+You can also try setting `auto_reconnect` to `True`.
+{{% /expand%}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/input-controller/" customTitle="Input controller API" noimage="true" %}}
diff --git a/docs/components/input-controller/gpio.md b/docs/components/input-controller/gpio.md
index 2cb98f77d0..a6cf34b307 100644
--- a/docs/components/input-controller/gpio.md
+++ b/docs/components/input-controller/gpio.md
@@ -215,13 +215,11 @@ The following attributes are available for `gpio` input controllers:
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
-
-{{< snippet "social.md" >}}
+{{< readfile "/static/include/components/troubleshoot/input-controller.md" >}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/input-controller/" customTitle="Input controller API" noimage="true" %}}
diff --git a/docs/components/input-controller/mux.md b/docs/components/input-controller/mux.md
index f0bf554f42..158a537fa9 100644
--- a/docs/components/input-controller/mux.md
+++ b/docs/components/input-controller/mux.md
@@ -122,13 +122,11 @@ This tells the program loading the config to fully load the source components fi
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
-
-{{< snippet "social.md" >}}
+{{< readfile "/static/include/components/troubleshoot/input-controller.md" >}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/input-controller/" customTitle="Input controller API" noimage="true" %}}
diff --git a/docs/components/input-controller/webgamepad.md b/docs/components/input-controller/webgamepad.md
index f392e892d4..7b27ba5366 100644
--- a/docs/components/input-controller/webgamepad.md
+++ b/docs/components/input-controller/webgamepad.md
@@ -63,13 +63,11 @@ For your security, the browser won't report a gamepad until an input has been se
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
-
-{{< snippet "social.md" >}}
+{{< readfile "/static/include/components/troubleshoot/input-controller.md" >}}
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/input-controller/" customTitle="Input controller API" noimage="true" %}}
diff --git a/docs/components/motor/28byj48.md b/docs/components/motor/28byj48.md
index 9d7c3c8466..81c319b57e 100644
--- a/docs/components/motor/28byj48.md
+++ b/docs/components/motor/28byj48.md
@@ -125,9 +125,13 @@ Refer to your motor and motor driver data sheets for specifics.
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/_index.md b/docs/components/motor/_index.md
index fde57e9e49..9219229027 100644
--- a/docs/components/motor/_index.md
+++ b/docs/components/motor/_index.md
@@ -24,7 +24,7 @@ If you have a device that converts electricity into rotary motion, such as a bru
If you have a hobby servo, configure it as a [servo component](/components/servo/) instead.
-## Available models
+## Configuration
To use a motor, you need to add it to your machine's configuration.
Go to your machine's **CONFIGURE** page, and add a model that supports your motor.
@@ -64,9 +64,14 @@ The motor component supports the following methods:
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your motor is not working as expected, follow these steps:
-You can also ask questions on the [Viam Community Slack](https://join.slack.com/t/viamrobotics/shared_invite/zt-1f5xf1qk5-TECJc1MIY1MW0d6ZCg~Wnw) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your motor model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the motor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/motor/dmc4000.md b/docs/components/motor/dmc4000.md
index 3e13997702..bdfe845d1d 100644
--- a/docs/components/motor/dmc4000.md
+++ b/docs/components/motor/dmc4000.md
@@ -263,9 +263,13 @@ resp, err := myMotorComponent.DoCommand(ctx, map[string]interface{}{"command": "
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/encoded-motor.md b/docs/components/motor/encoded-motor.md
index cdeae75f41..2a072bac0c 100644
--- a/docs/components/motor/encoded-motor.md
+++ b/docs/components/motor/encoded-motor.md
@@ -191,9 +191,13 @@ If the motor does not appear on the **CONTROL** tab, or if you notice unexpected
{{< readfile "/static/include/components/motor-sensor.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/fake.md b/docs/components/motor/fake.md
index 526aae5bac..fba8a19206 100644
--- a/docs/components/motor/fake.md
+++ b/docs/components/motor/fake.md
@@ -116,9 +116,13 @@ Use the buttons to try turning your motor forwards or backwards at different pow
![Motor control panel.](/components/motor/control.png)
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/gpio-micro-rdk.md b/docs/components/motor/gpio-micro-rdk.md
index 9e2ea3b5c3..43e7c9ac5e 100644
--- a/docs/components/motor/gpio-micro-rdk.md
+++ b/docs/components/motor/gpio-micro-rdk.md
@@ -155,9 +155,13 @@ See [PWM signals on `esp32` pins](/components/board/esp32/#pwm-signals-on-esp32-
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/gpio.md b/docs/components/motor/gpio.md
index 0af2a3e48c..8a49391698 100644
--- a/docs/components/motor/gpio.md
+++ b/docs/components/motor/gpio.md
@@ -199,9 +199,13 @@ Only the output side of the driver board is different in that more wires connect
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/gpiostepper.md b/docs/components/motor/gpiostepper.md
index 7d06e68b37..96ea138070 100644
--- a/docs/components/motor/gpiostepper.md
+++ b/docs/components/motor/gpiostepper.md
@@ -137,9 +137,13 @@ See the data sheet of your stepper motor and stepper motor driver for informatio
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/motor/roboclaw.md b/docs/components/motor/roboclaw.md
index f3df955fbe..4f6d8b8648 100644
--- a/docs/components/motor/roboclaw.md
+++ b/docs/components/motor/roboclaw.md
@@ -105,9 +105,13 @@ Refer to your motor and motor driver data sheets for specifics.
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/motor/tmc5072.md b/docs/components/motor/tmc5072.md
index 5f96ca5b0d..5e282b9693 100644
--- a/docs/components/motor/tmc5072.md
+++ b/docs/components/motor/tmc5072.md
@@ -224,9 +224,13 @@ resp, err := myMotorComponent.DoCommand(ctx, map[string]interface{}{"command": "
{{< readfile "/static/include/components/test-control/motor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/motor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/motor/" customTitle="Motor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/_index.md b/docs/components/movement-sensor/_index.md
index f1167c2147..043173bde5 100644
--- a/docs/components/movement-sensor/_index.md
+++ b/docs/components/movement-sensor/_index.md
@@ -21,7 +21,7 @@ The movement sensor component provides an API for GPS location, linear velocity
If you have hardware or software that provides such measurements, use a movement sensor component.
-## Available models
+## Configuration
To use a movement sensor and get its measurements, you need to add it to your machine's configuration.
@@ -68,9 +68,13 @@ You can run `GetProperties` on your sensor for a list of its supported methods.
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your movement sensor is not working as expected, follow these steps:
-You can also ask questions on the [Viam Community Slack](https://join.slack.com/t/viamrobotics/shared_invite/zt-1f5xf1qk5-TECJc1MIY1MW0d6ZCg~Wnw) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your movement sensor model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the movement sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/movement-sensor/accel-adxl345-micro-rdk.md b/docs/components/movement-sensor/accel-adxl345-micro-rdk.md
index 3c9ea73092..7b9e0f5bcb 100644
--- a/docs/components/movement-sensor/accel-adxl345-micro-rdk.md
+++ b/docs/components/movement-sensor/accel-adxl345-micro-rdk.md
@@ -133,9 +133,13 @@ This panel presents the data collected by the movement sensor.
{{}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/adxl345.md b/docs/components/movement-sensor/adxl345.md
index 4a774ce965..089037ecee 100644
--- a/docs/components/movement-sensor/adxl345.md
+++ b/docs/components/movement-sensor/adxl345.md
@@ -134,9 +134,13 @@ This panel presents the data collected by the movement sensor.
{{}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/cameramono.md b/docs/components/movement-sensor/cameramono.md
index d68531ebfc..a092458b13 100644
--- a/docs/components/movement-sensor/cameramono.md
+++ b/docs/components/movement-sensor/cameramono.md
@@ -107,9 +107,13 @@ Edit and fill in the attributes as applicable.
After you configure your movement sensor, navigate to the [Control tab](/fleet/control/) and select the dedicated movement sensor dropdown panel.
This panel presents the data collected by the movement sensor.
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/dual-gps-rtk.md b/docs/components/movement-sensor/dual-gps-rtk.md
index bf0a8eeff3..c62322623a 100644
--- a/docs/components/movement-sensor/dual-gps-rtk.md
+++ b/docs/components/movement-sensor/dual-gps-rtk.md
@@ -91,9 +91,13 @@ The sections in the panel include the position, compass heading, and accuracy.
{{}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/fake.md b/docs/components/movement-sensor/fake.md
index 621378368a..6a3b45973b 100644
--- a/docs/components/movement-sensor/fake.md
+++ b/docs/components/movement-sensor/fake.md
@@ -74,9 +74,13 @@ The sections in the panel include the position, orientation, angular velocity, l
{{}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/gps-nmea-rtk-pmtk.md b/docs/components/movement-sensor/gps-nmea-rtk-pmtk.md
index 504e155712..99841465d2 100644
--- a/docs/components/movement-sensor/gps-nmea-rtk-pmtk.md
+++ b/docs/components/movement-sensor/gps-nmea-rtk-pmtk.md
@@ -132,7 +132,7 @@ If you are not sure where to start, check out this [GPS-RTK2 Hookup Guide from S
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/gps-nmea-rtk-serial.md b/docs/components/movement-sensor/gps-nmea-rtk-serial.md
index 04f404d11b..847c91715a 100644
--- a/docs/components/movement-sensor/gps-nmea-rtk-serial.md
+++ b/docs/components/movement-sensor/gps-nmea-rtk-serial.md
@@ -133,7 +133,7 @@ If you are not sure where to start, check out this [GPS-RTK2 Hookup Guide from S
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/gps-nmea.md b/docs/components/movement-sensor/gps-nmea.md
index b7831813df..055fe2f188 100644
--- a/docs/components/movement-sensor/gps-nmea.md
+++ b/docs/components/movement-sensor/gps-nmea.md
@@ -167,7 +167,7 @@ For a movement sensor communicating over I2C, you'll need a `i2c_attr
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/gyro-mpu6050-micro-rdk.md b/docs/components/movement-sensor/gyro-mpu6050-micro-rdk.md
index cc09102fe8..69c3df2250 100644
--- a/docs/components/movement-sensor/gyro-mpu6050-micro-rdk.md
+++ b/docs/components/movement-sensor/gyro-mpu6050-micro-rdk.md
@@ -133,7 +133,7 @@ The sections in the panel include the angular velocity and linear acceleration.
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/imu-vectornav.md b/docs/components/movement-sensor/imu-vectornav.md
index cb029b0c80..60c4471968 100644
--- a/docs/components/movement-sensor/imu-vectornav.md
+++ b/docs/components/movement-sensor/imu-vectornav.md
@@ -95,7 +95,7 @@ Fill in the attributes as applicable to your movement sensor, according to the t
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/imu-wit-hwt905.md b/docs/components/movement-sensor/imu-wit-hwt905.md
index a314b900ba..3cc3c194d2 100644
--- a/docs/components/movement-sensor/imu-wit-hwt905.md
+++ b/docs/components/movement-sensor/imu-wit-hwt905.md
@@ -89,7 +89,7 @@ The `"serial_path"` filepath on a macOS system might resemble "/dev/ttyUSB
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/imu-wit.md b/docs/components/movement-sensor/imu-wit.md
index d576bc56fc..1f890923e1 100644
--- a/docs/components/movement-sensor/imu-wit.md
+++ b/docs/components/movement-sensor/imu-wit.md
@@ -103,7 +103,7 @@ The `"serial_path"` filepath on a macOS system might resemble "/dev/ttyUSB
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/merged.md b/docs/components/movement-sensor/merged.md
index 57cd576c98..57e98469e4 100644
--- a/docs/components/movement-sensor/merged.md
+++ b/docs/components/movement-sensor/merged.md
@@ -15,13 +15,13 @@ component_description: "A model that allows you to aggregate the API methods sup
The `merged` movement sensor model is an abstraction that combines data from multiple movement sensors.
This allows you to aggregate the API methods supported by multiple sensors into a singular sensor client.
-This is especially useful if you want to get readings of position and orientation _or_ linear and angular velocity at the same time, which are normally separately supported and returned by [`GPS`](/components/movement-sensor/#available-models) or [`IMU`](/components/movement-sensor/#available-models) models, respectively.
+This is especially useful if you want to get readings of position and orientation _or_ linear and angular velocity at the same time, which are normally separately supported and returned by [`GPS`](/components/movement-sensor/#configuration) or [`IMU`](/components/movement-sensor/#configuration) models, respectively.
-To reduce velocity error when your machine is using the [navigation service](/services/navigation/), aggregate `Position()` from a [`GPS`](/components/movement-sensor/#available-models) and `Orientation()` from an [`IMU`](/components/movement-sensor/#available-models) movement sensor in a `merged` model.
+To reduce velocity error when your machine is using the [navigation service](/services/navigation/), aggregate `Position()` from a [`GPS`](/components/movement-sensor/#configuration) and `Orientation()` from an [`IMU`](/components/movement-sensor/#configuration) movement sensor in a `merged` model.
Configure a [navigation service](/services/navigation/) to use your merged sensor to navigate.
-Before configuring a `merged` movement sensor, configure each movement sensor you want to merge as an individual component according to its [model's configuration instructions](/components/movement-sensor/#available-models).
+Before configuring a `merged` movement sensor, configure each movement sensor you want to merge as an individual component according to its [model's configuration instructions](/components/movement-sensor/#configuration).
Reference the `name` you configure for each individual component in the `merged` sensor's configuration attributes:
{{< tabs >}}
@@ -94,7 +94,7 @@ For example:
Configure an array of the `name` of each movement sensor you want to add to your machine as a merged resource in the attributes of the `merged` movement sensor model:
- The name of each attribute represents the `Property` that the particular movement sensor supports, or the type of reading or measurement that it takes.
-- Get the properties supported by each model from its [model configuration documentation](/components/movement-sensor/#available-models), or by calling [`GetProperties()`](/appendix/apis/components/movement-sensor/#getproperties) on the sensor.
+- Get the properties supported by each model from its [model configuration documentation](/components/movement-sensor/#configuration), or by calling [`GetProperties()`](/appendix/apis/components/movement-sensor/#getproperties) on the sensor.
- Put the `name` of each movement sensor into the attribute array for the type of reading it supports.
You can use the same sensor for multiple attributes if it supports multiple properties.
@@ -119,7 +119,7 @@ This panel presents the data collected by the movement sensor.
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/mpu6050.md b/docs/components/movement-sensor/mpu6050.md
index 8ee736ec59..f9d277f9ea 100644
--- a/docs/components/movement-sensor/mpu6050.md
+++ b/docs/components/movement-sensor/mpu6050.md
@@ -87,7 +87,7 @@ The sections in the panel include the angular velocity and linear acceleration.
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/movement-sensor/wheeled-odometry.md b/docs/components/movement-sensor/wheeled-odometry.md
index bcaba51e50..f49cd76a78 100644
--- a/docs/components/movement-sensor/wheeled-odometry.md
+++ b/docs/components/movement-sensor/wheeled-odometry.md
@@ -37,7 +37,7 @@ After configuring a `wheeled-odometry` movement sensor, you can operate your bas
To prepare your machine, attach [encoders](/components/encoder/) to each of the position-reporting motors on your base to measure their rotation.
-- Select motors that can report their own position, like an encoded [`roboclaw`](/components/motor/roboclaw/) or [`gpio` motors](/components/motor/gpio/) with [encoders](/components/encoder/#available-models), or the [`odrive` module](https://github.com/viamrobotics/odrive).
+- Select motors that can report their own position, like an encoded [`roboclaw`](/components/motor/roboclaw/) or [`gpio` motors](/components/motor/gpio/) with [encoders](/components/encoder/#configuration), or the [`odrive` module](https://github.com/viamrobotics/odrive).
You can access this property of a configured motor through the [motor API's `GetProperties()`](/appendix/apis/components/motor/#getproperties).
- Configure your rover as a [wheeled base component](/components/base/wheeled/).
Make sure to configure the base width and circumference, as these measurements as a property of the base are vital for accurate odometry estimations by your movement sensor.
@@ -122,9 +122,13 @@ The following attributes are available for `wheeled-odometry` movement sensors:
After you configure your movement sensor, navigate to the [Control tab](/fleet/control/) and select the dedicated movement sensor dropdown panel.
This panel presents the data collected by the movement sensor.
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/movement-sensor.md" >}}
+
## Next steps
-For more configuration and development info, see:
+For more configuration and usage info, see:
{{< cards >}}
{{% card link="/appendix/apis/components/movement-sensor/" customTitle="Movement sensor API" noimage="true" %}}
diff --git a/docs/components/power-sensor/_index.md b/docs/components/power-sensor/_index.md
index 9ee7ebcdf9..d6a1f9fe53 100644
--- a/docs/components/power-sensor/_index.md
+++ b/docs/components/power-sensor/_index.md
@@ -20,7 +20,7 @@ The power sensor component provides an API for getting measurements of voltage,
If you have a physical power sensor, an API endpoint, or anything else that provides such measurements, use a power sensor component.
-## Available models
+## Configuration
To use a power sensor and get its measurements, you need to add it to your machine's configuration.
@@ -56,9 +56,13 @@ The [power sensor API](/appendix/apis/components/power-sensor/) supports the fol
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your power sensor is not working as expected, follow these steps:
-You can also ask questions on the [Viam Community Slack](https://join.slack.com/t/viamrobotics/shared_invite/zt-1f5xf1qk5-TECJc1MIY1MW0d6ZCg~Wnw) and we will be happy to help.
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review your power sensor model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the power sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/power-sensor/fake.md b/docs/components/power-sensor/fake.md
index 48481c91c8..61acf09a1d 100644
--- a/docs/components/power-sensor/fake.md
+++ b/docs/components/power-sensor/fake.md
@@ -45,6 +45,10 @@ No attributes are available for `fake` power sensors.
{{< readfile "/static/include/components/test-control/power-sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/power-sensor.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/power-sensor/ina219.md b/docs/components/power-sensor/ina219.md
index d5a77eac50..dfedc80a53 100644
--- a/docs/components/power-sensor/ina219.md
+++ b/docs/components/power-sensor/ina219.md
@@ -90,6 +90,10 @@ The following attributes are available for `ina219` sensors:
{{< readfile "/static/include/components/test-control/power-sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/power-sensor.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/power-sensor/ina226.md b/docs/components/power-sensor/ina226.md
index a444ae490a..8afb993736 100644
--- a/docs/components/power-sensor/ina226.md
+++ b/docs/components/power-sensor/ina226.md
@@ -88,6 +88,10 @@ The following attributes are available for `ina226` sensors:
{{< readfile "/static/include/components/test-control/power-sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/power-sensor.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/power-sensor/renogy.md b/docs/components/power-sensor/renogy.md
index dc4ffa058a..6898c102a8 100644
--- a/docs/components/power-sensor/renogy.md
+++ b/docs/components/power-sensor/renogy.md
@@ -76,6 +76,7 @@ The `"serial_path"` filepath on a macOS system might resemble "/dev/ttyUSB
{{% /tab %}}
{{% /tabs %}}
+
The following attributes are available for `renogy` sensors:
@@ -87,6 +88,10 @@ The following attributes are available for `renogy` sensors:
{{< readfile "/static/include/components/test-control/power-sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/power-sensor.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/sensor/_index.md b/docs/components/sensor/_index.md
index 2fa0cb03fd..a4354c970c 100644
--- a/docs/components/sensor/_index.md
+++ b/docs/components/sensor/_index.md
@@ -24,7 +24,7 @@ If you have a physical sensor, an API endpoint, or anything else that provides m
{{}}
-## Available models
+## Configuration
To use a sensor and get its measurements, you need to add it to your machine's configuration.
Physical sensors often require a [board component](/components/board/) with a configured analog-to-digital converter (ADC).
@@ -73,9 +73,14 @@ The [sensor API](/appendix/apis/components/sensor/) supports the following metho
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your sensor is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your sensor model's documentation to ensure you have configured all required attributes.
+1. Check that any wires are securely attached to the correct pins, if appropriate.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/sensor/bme280.md b/docs/components/sensor/bme280.md
index 47a3b13aa6..dcf30679b6 100644
--- a/docs/components/sensor/bme280.md
+++ b/docs/components/sensor/bme280.md
@@ -63,6 +63,10 @@ The following attributes are available for `bme280` sensors:
{{< readfile "/static/include/components/test-control/sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/sensor.md" >}}
+
## Next steps
Check out the [sensor API](/appendix/apis/components/sensor/) or check out one of these guides:
diff --git a/docs/components/sensor/ds18b20.md b/docs/components/sensor/ds18b20.md
index 7cec98ea0a..9edffa1497 100644
--- a/docs/components/sensor/ds18b20.md
+++ b/docs/components/sensor/ds18b20.md
@@ -61,6 +61,10 @@ The following attributes are available for `ds18b20` sensors:
{{< readfile "/static/include/components/test-control/sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/sensor.md" >}}
+
## Next steps
Check out the [sensor API](/appendix/apis/components/sensor/) or check out one of these guides:
diff --git a/docs/components/sensor/fake.md b/docs/components/sensor/fake.md
index f55985fcd3..796ed65ec8 100644
--- a/docs/components/sensor/fake.md
+++ b/docs/components/sensor/fake.md
@@ -53,6 +53,10 @@ A call to [`Readings()`](/appendix/apis/components/sensor/#getreadings) on a `fa
{{< readfile "/static/include/components/test-control/sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/sensor.md" >}}
+
## Next steps
Check out the [sensor API](/appendix/apis/components/sensor/) or check out one of these guides:
diff --git a/docs/components/sensor/sensirion-sht3xd.md b/docs/components/sensor/sensirion-sht3xd.md
index 5aa19cd2b1..f57f64f559 100644
--- a/docs/components/sensor/sensirion-sht3xd.md
+++ b/docs/components/sensor/sensirion-sht3xd.md
@@ -63,6 +63,10 @@ The following attributes are available for `sensirion-sht3xd` sensors:
{{< readfile "/static/include/components/test-control/sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/sensor.md" >}}
+
## Next steps
Check out the [sensor API](/appendix/apis/components/sensor/) or check out one of these guides:
diff --git a/docs/components/sensor/ultrasonic-micro-rdk.md b/docs/components/sensor/ultrasonic-micro-rdk.md
index 5785696e99..3d68444acf 100644
--- a/docs/components/sensor/ultrasonic-micro-rdk.md
+++ b/docs/components/sensor/ultrasonic-micro-rdk.md
@@ -109,6 +109,10 @@ The following attributes are available for `ultrasonic` sensors:
{{< readfile "/static/include/components/test-control/sensor-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/sensor.md" >}}
+
## Next steps
Check out the [sensor API](/appendix/apis/components/sensor/) or check out one of these guides:
diff --git a/docs/components/servo/_index.md b/docs/components/servo/_index.md
index 9b884b01db..824a4162f1 100644
--- a/docs/components/servo/_index.md
+++ b/docs/components/servo/_index.md
@@ -24,7 +24,7 @@ If you have a physical ["RC" or "hobby" servo motor](https://learn.adafruit.com/
If your motor is coupled with an [encoder](/components/encoder/), not a potentiometer, for position feedback, you should configure it as an [encoded motor](/components/motor/encoded-motor/) instead.
-## Available models
+## Configuration
To use a hobby servo, you need to add it to your machine's configuration.
@@ -60,9 +60,14 @@ The [servo API](/appendix/apis/components/servo/) supports the following methods
## Troubleshooting
-You can find additional assistance in the [Troubleshooting section](/appendix/troubleshooting/).
+If your servo is not working as expected, follow these steps:
-{{< snippet "social.md" >}}
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review your servo model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins on the board.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the servo there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
## Next steps
diff --git a/docs/components/servo/fake.md b/docs/components/servo/fake.md
index 6941eed736..d2d6d34b2f 100644
--- a/docs/components/servo/fake.md
+++ b/docs/components/servo/fake.md
@@ -46,6 +46,10 @@ See [GitHub](https://github.com/viamrobotics/rdk/blob/main/components/servo/fake
{{< readfile "/static/include/components/test-control/servo-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/servo.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/servo/gpio-micro-rdk.md b/docs/components/servo/gpio-micro-rdk.md
index ef50985d93..3db99fba8a 100644
--- a/docs/components/servo/gpio-micro-rdk.md
+++ b/docs/components/servo/gpio-micro-rdk.md
@@ -143,6 +143,10 @@ Refer to your servo's data sheet for [pulse-width modulation (PWM)](https://docs
{{< readfile "/static/include/components/test-control/servo-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/servo.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/components/servo/gpio.md b/docs/components/servo/gpio.md
index 0cfa255d4c..ad991be021 100644
--- a/docs/components/servo/gpio.md
+++ b/docs/components/servo/gpio.md
@@ -105,6 +105,10 @@ Refer to your servo's data sheet for [pulse-width modulation (PWM)](https://docs
{{< readfile "/static/include/components/test-control/servo-control.md" >}}
+## Troubleshooting
+
+{{< readfile "/static/include/components/troubleshoot/servo.md" >}}
+
## Next steps
For general configuration and development info, see:
diff --git a/docs/configure/agent.md b/docs/configure/agent.md
index 503fdb6cf2..0e0556321b 100644
--- a/docs/configure/agent.md
+++ b/docs/configure/agent.md
@@ -39,7 +39,7 @@ You can install `viam-agent` using either an existing machine's part ID and API
Your machine must have `curl` available in order to install `viam-agent`.
{{< /alert >}}
-1. The first step is to [create a new machine in the Viam app](/cloud/machines/#add-a-new-machine).
+1. The first step is to add a new machine in the [Viam app](https://app.viam.com).
2. Navigate to the **CONFIGURE** tab and find your machine's card.
An alert will be present directing you to **Set up your machine part**:
diff --git a/docs/how-tos/collect-data.md b/docs/how-tos/collect-data.md
index 93321e4f54..0b616ed76f 100644
--- a/docs/how-tos/collect-data.md
+++ b/docs/how-tos/collect-data.md
@@ -154,7 +154,7 @@ Click the **Save** button in the top right corner of the page to save your confi
{{< expand "Step 1: Create a machine" >}}
-Go to the Viam app and [add a new machine](/cloud/machines/#add-a-new-machine).
+Add a new machine in the [Viam app](https://app.viam.com).
![The 'First Location' page on the Viam app with a new machine name in the New machine field and the Add machine button next to the field highlighted.](/fleet/app-usage/create-machine.png)
@@ -177,7 +177,7 @@ Most sensors need to be wired to the pins of a SBC such as a Raspberry Pi.
If you are not using a single-board computer (SBC), move on to step 4.
If you are using a SBC, make sure you have installed `viam-server` on the SBC.
-Then add a [board component](/components/board/#available-models) to your config for your SBC.
+Then add a [board component](/components/board/#configuration) to your config for your SBC.
![An example board configuration in the app builder UI. The name (local), type (board) and model (pi) are shown. No other attributes are configured.](/components/board/pi-ui-config.png)
@@ -190,7 +190,7 @@ For example, if you are using a Raspberry Pi, SSH to it and [enable serial commu
{{< expand "Step 4: Configure a sensor" >}}
-Search the [sensor models](/components/sensor/#available-models) for a model of sensor that is compatible with your sensor hardware.
+Search the [sensor models](/components/sensor/#configuration) for a model of sensor that is compatible with your sensor hardware.
For example, if you have a Sensirion SHT3x-DIS temperature and humidity sensor, you should use the [`sensirion-sht3xd`](https://docs.viam.com/components/sensor/sensirion-sht3xd/) model of sensor.
If you don't have a physical sensor that can be wired to the pins of a SBC, you can use the [`viam:viam-sensor:telegrafsensor`](https://app.viam.com/module/viam/viam-telegraf-sensor) model which measures computer performance metrics.
@@ -203,7 +203,7 @@ Once you determine which model to use, add it to your machine's configuration:
{{}}
1. Add required attributes, such as information about how the sensor is connected to the board.
- You can find information on these attributes by clicking the name of your sensor model in the [available models list](/components/sensor/#available-models).
+ You can find information on these attributes by clicking the name of your sensor model in the [available models list](/components/sensor/#configuration).
1. Click the **Save** button in the upper right corner of the page to save your configuration.
diff --git a/docs/how-tos/configure.md b/docs/how-tos/configure.md
index 63462c018b..d83a248ae0 100644
--- a/docs/how-tos/configure.md
+++ b/docs/how-tos/configure.md
@@ -84,7 +84,7 @@ For each component that makes up your machine:
1. Physically connect the hardware to your machine's computer.
2. Find an appropriate model for your hardware.
You can find the available models on the [component pages](/components/).
- For example, you can scroll through available sensor models on the [sensor page](/components/sensor/#available-models).
+ For example, you can scroll through available sensor models on the [sensor page](/components/sensor/#configuration).
3. You need to [_configure_](/configure/) your machine so that `viam-server` can interact with its hardware.
Use the configuration builder tool in the Viam app to create a file that describes what hardware you are using and how it is connected.
For example, if you have a DC motor, follow the [corresponding configuration instructions](/components/motor/gpio/) to tell the software which pins it is connected to.
diff --git a/docs/how-tos/control-motor.md b/docs/how-tos/control-motor.md
index db642df75c..9d0c9aee2a 100644
--- a/docs/how-tos/control-motor.md
+++ b/docs/how-tos/control-motor.md
@@ -58,8 +58,7 @@ Follow these steps to control your motor:
{{< expand "Step 1: Create a machine" >}}
-Go to the Viam app.
-Select a location and [add a new machine](/cloud/machines/#add-a-new-machine).
+Add a new machine in the [Viam app](https://app.viam.com).
![The 'My Desk' page on the Viam app with a new machine name in the New machine field and the Add machine button next to the field highlighted.](/get-started/quickstarts/add-machine.png)
@@ -78,7 +77,7 @@ Wait for your device to connect to the Viam app.
On the **CONFIGURE** page you can add components and services to your machine.
Click on the **+** icon to select a suitable board.
-If you are using a physical board to follow along, look through the [**Supported Models**](/components/board/#available-models) to determine the model of component to configure.
+If you are using a physical board to follow along, look through the [**Supported Models**](/components/board/#configuration) to determine the model of component to configure.
For example, configure a [`viam:raspberry-pi:rpi` board](https://github.com/viam-modules/raspberry-pi) for a Raspberry Pi 4, Raspberry Pi 3 or Raspberry Pi Zero 2 W:
![An example board configuration in the app builder UI. The name (local), type (board) and model (pi) are shown. No other attributes are configured.](/get-started/quickstarts/configure-pi.png)
@@ -92,7 +91,7 @@ For the `fake` model, there are no required attributes.
{{< expand "Step 4: Configure a motor" >}}
Add a `motor` component that supports the type of motor and motor driver you're using.
-Look through the [**Supported Models**](/components/motor/#available-models) to determine the model of component to configure.
+Look through the [**Supported Models**](/components/motor/#configuration) to determine the model of component to configure.
For example, if you are using a standard DC motor (brushed or brushless) wired to a typical GPIO pin-controlled motor driver, configure a [`gpio` motor](/components/motor/gpio/):
![The CONFIGURE tab of the Viam app populated with a configured gpio motor.](/get-started/quickstarts/configure-motor.png)
diff --git a/docs/how-tos/create-module.md b/docs/how-tos/create-module.md
index 2c0afa3ca0..ee3bf8b15d 100644
--- a/docs/how-tos/create-module.md
+++ b/docs/how-tos/create-module.md
@@ -1544,7 +1544,7 @@ This driver supports differential, ackermann, and omni directional steering mode
## Configure your `agilex-limo` base
> [!NOTE]
-> Before configuring your base, you must [create a machine](https://docs.viam.com/cloud/machines/#add-a-new-machine).
+> Before configuring your base, you must add a machine in the [Viam app](https://app.viam.com).
Navigate to the **CONFIGURE** tab of your machine’s page in [the Viam app](https://app.viam.com/).
[Add `base` / `agilex-limo` to your machine](https://docs.viam.com/configure/#components).
diff --git a/docs/how-tos/sensor-module.md b/docs/how-tos/sensor-module.md
index 345d32a320..68c894db99 100644
--- a/docs/how-tos/sensor-module.md
+++ b/docs/how-tos/sensor-module.md
@@ -20,7 +20,7 @@ A sensor is anything that collects data.
A sensor could be something we typically think of as a sensor, like a temperature and humidity sensor, or it could be a "virtual," non-hardware sensor like a service that gets stock market data.
-Since a sensor can be so many different things, there's a good chance you're on this page because though there are various [built-in and modular sensor models available in Viam](/components/sensor/#available-models), you have a different, unsupported sort of sensor you'd like to use.
+Since a sensor can be so many different things, there's a good chance you're on this page because though there are various [built-in and modular sensor models available in Viam](/components/sensor/#configuration), you have a different, unsupported sort of sensor you'd like to use.
Making a module to support your sensor will allow you to use it with Viam's data capture and sync tools, as well as using the sensor API (using any of the different programming language [SDKs](/sdks/)) to get readings from it.
diff --git a/docs/installation/viam-micro-server-dev.md b/docs/installation/viam-micro-server-dev.md
index 869c44bcb8..621b9dcdce 100644
--- a/docs/installation/viam-micro-server-dev.md
+++ b/docs/installation/viam-micro-server-dev.md
@@ -105,7 +105,7 @@ With the dev setup for `viam-micro-server`, you can:
1. Create a new machine and obtain its credentials:
- Navigate to [the Viam app](https://app.viam.com) and [add a new machine](/cloud/machines/#add-a-new-machine) in your desired location.
+ Navigate to [the Viam app](https://app.viam.com) and add a new machine.
Click on the name of the machine to go to the machine's page, then select the **CONFIGURE** tab.
Then select the part status dropdown to the right of your machine's name on the top of the page and copy the **Machine cloud credentials**:
diff --git a/docs/registry/advanced/custom-components-remotes.md b/docs/registry/advanced/custom-components-remotes.md
index e72ccf0597..57d1f560c2 100644
--- a/docs/registry/advanced/custom-components-remotes.md
+++ b/docs/registry/advanced/custom-components-remotes.md
@@ -19,7 +19,7 @@ However, if you are unable to use [modular resources](/registry/) because you ne
Once you have coded your custom component and configured the remote servers, you can control and monitor your component with the Viam SDKs, like any other component.
To show how to create a custom resource, the following example creates an arm as a custom component and registers the new arm model with a Viam SDK.
-Then you can control it as part of your machine with the same [API methods](/appendix/apis/components/arm/#api) available for [arm models built into the RDK](/components/arm/#available-models).
+Then you can control it as part of your machine with the same [API methods](/appendix/apis/components/arm/#api) available for [arm models built into the RDK](/components/arm/#configuration).
## Instructions
diff --git a/docs/registry/advanced/iterative-development.md b/docs/registry/advanced/iterative-development.md
index 2ae0492f1b..990d3fc7a7 100644
--- a/docs/registry/advanced/iterative-development.md
+++ b/docs/registry/advanced/iterative-development.md
@@ -29,7 +29,7 @@ You can use [prerelease versioning](#use-prerelease-versioning) to publish a ver
If you are developing a module for the same target architecture as your development workstation, you can test your module locally using the following procedure:
-1. Navigate to the [Viam app](https://app.viam.com/robots) and [add a new machine](/cloud/machines/#add-a-new-machine) to serve as your development machine.
+1. Navigate to the [Viam app](https://app.viam.com/robots) and add a new machine to serve as your development machine.
Be sure to follow the steps shown in the Viam app to install `viam-server` on your local machine.
1. If you are using a programming language that requires that you build your module, such as Go or C++, follow the instructions for your language to [compile or package](/how-tos/create-module/#compile-or-package-your-module) your module.
@@ -87,7 +87,7 @@ If you are developing a module for the same target architecture as your developm
If you are developing a module for a different target architecture than your development workstation, you can sync your module code and test your module remotely using the following procedure:
-1. Navigate to the [Viam app](https://app.viam.com/robots) and [add a new machine](/cloud/machines/#add-a-new-machine) to serve as your development machine.
+1. Navigate to the [Viam app](https://app.viam.com/robots) and add a new machine to serve as your development machine.
Be sure to follow the steps shown in the Viam app to install `viam-server` on the target machine you want to test and build on.
For example, to test and build your module on your Raspberry Pi, be sure to install `viam-server` on the Pi itself, not your macOS workstation.
diff --git a/docs/registry/examples/custom-arm.md b/docs/registry/examples/custom-arm.md
index 8773027c60..79cfef5532 100644
--- a/docs/registry/examples/custom-arm.md
+++ b/docs/registry/examples/custom-arm.md
@@ -36,7 +36,7 @@ Each of these models must also include a [kinematics file](/internals/kinematic-
Each built-in driver in the RDK includes a corresponding kinematics file located in the same directory as the driver.
For example, the `ur5e`'s kinematics file, [`ur5e.json`](https://github.com/viamrobotics/rdk/blob/main/components/arm/universalrobots/ur5e.json), is provided in the RDK in the same directory as its driver, `ur.go`.
-See [Arm Configuration](/components/arm/#available-models) for the current list of built-in models the RDK provides.
+See [Arm Configuration](/components/arm/#configuration) for the current list of built-in models the RDK provides.
{{% /alert %}}
diff --git a/docs/registry/examples/tflite-module.md b/docs/registry/examples/tflite-module.md
index 6e3ceb6f84..d278c2ac10 100644
--- a/docs/registry/examples/tflite-module.md
+++ b/docs/registry/examples/tflite-module.md
@@ -188,7 +188,7 @@ This example uses the `yamnet/classification` TensorFlow Lite model for audio cl
Next, install `viam-server` on your machine, if you have not done so already:
-1. Navigate to [the Viam app](https://app.viam.com) in your browser and [add a new machine](/cloud/machines/#add-a-new-machine).
+1. Navigate to the [Viam app](https://app.viam.com) in your browser and add a new machine.
1. Navigate to the **CONFIGURE** tab and find your machine's card.
An alert will be present directing you to **Set up your machine part**.
diff --git a/docs/services/frame-system/frame-config.md b/docs/services/frame-system/frame-config.md
index 6cbbda4953..4538d0c5d2 100644
--- a/docs/services/frame-system/frame-config.md
+++ b/docs/services/frame-system/frame-config.md
@@ -27,7 +27,7 @@ Measure from that point to the base of the arm to get the `translation` coordina
To configure your machine following this example:
- Navigate to the **CONFIGURE** tab of your machine's page in [the Viam app](https://app.viam.com).
-- Select **Builder** mode and [configure your arm](/components/arm/#available-models).
+- Select **Builder** mode and [configure your arm](/components/arm/#configuration).
If you don't have a physical arm, you can use a `fake` model.
- Select the **Frame** mode.
- From the left-hand menu, select your arm:
diff --git a/docs/services/frame-system/nested-frame-config.md b/docs/services/frame-system/nested-frame-config.md
index b596e39647..a05de6454a 100644
--- a/docs/services/frame-system/nested-frame-config.md
+++ b/docs/services/frame-system/nested-frame-config.md
@@ -30,7 +30,7 @@ Now, as the gantry moves its actuator, the Frame System will translate both the
To configure your machine following this example:
- Navigate to the **CONFIGURE** tab of your machine's page in [the Viam app](https://app.viam.com).
-- Select **Builder** mode and [configure your gantry](/components/gantry/#available-models), then [configure your arm](/components/arm/#available-models).
+- Select **Builder** mode and [configure your gantry](/components/gantry/#configuration), then [configure your arm](/components/arm/#configuration).
If you don't have a physical gantry or arm, you can use their `fake` models.
- Select the **Frame** mode.
- From the left-hand menu, select your gantry.
diff --git a/docs/services/generic/_index.md b/docs/services/generic/_index.md
index 76460ec86f..ee54a7329a 100644
--- a/docs/services/generic/_index.md
+++ b/docs/services/generic/_index.md
@@ -37,7 +37,7 @@ If you want to use most of an existing API but need just a few other functions,
{{% /alert %}}
-## Available models
+## Configuration
{{}}
diff --git a/docs/services/navigation/_index.md b/docs/services/navigation/_index.md
index 701e6c5da6..b1d5778278 100644
--- a/docs/services/navigation/_index.md
+++ b/docs/services/navigation/_index.md
@@ -259,7 +259,7 @@ heading, err := gps.CompassHeading(context.Background(), nil)
Use compass heading readings to determine the _bearing_ of your machine, or, the [cardinal direction](https://en.wikipedia.org/wiki/Cardinal_direction) that your machine is facing.
-To read compass headings, [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To read compass headings, [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Then use the movement sensor API's [`GetCompassHeading()`](/appendix/apis/components/movement-sensor/#getcompassheading) method to get readings from the sensor.
### Orientation
@@ -282,7 +282,7 @@ An orientation vector indicates how it is rotated relative to an origin coordina
You can choose the origin reference frame by configuring it using Viam's [frame system](/services/frame-system/).
The `GetOrientation` readings will report orientations relative to that initial frame.
-To read orientation, first [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To read orientation, first [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Additionally, follow [these instructions](/services/frame-system/#configuration) to configure the geometries of each component of your machine within the [frame system](/services/frame-system/).
Then use the movement sensor API's [`GetOrientation()`](/appendix/apis/components/movement-sensor/#getorientation) method to get orientation readings.
@@ -304,7 +304,7 @@ angularVelocity, err := imu.AngularVelocity(context.Background(), nil)
Use angular velocity readings to determine the speed and direction at which your machine is rotating.
-To get an angular velocity reading, first [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To get an angular velocity reading, first [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Then use the movement sensor API's [`GetAngularVelocity()`](/appendix/apis/components/movement-sensor/#getangularvelocity) method to get angular velocity readings from the sensor.
### Position
@@ -326,7 +326,7 @@ position, altitude, err := imu.Position(context.Background(), nil)
Use position readings to determine the GPS coordinates of an object in 3D space or its position in the geographic coordinate system [(GCS)](https://en.wikipedia.org/wiki/Geographic_coordinate_system).
These position readings reflect the _absolute_ position of components.
-To get a position, [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To get a position, [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Then use the movement sensor API's [`GetPosition()`](/appendix/apis/components/movement-sensor/#getposition) method to get position readings from the sensor.
### Linear velocity
@@ -347,7 +347,7 @@ linearVelocity, err := imu.LinearVelocity(context.Background(), nil)
Use linear velocity readings to determine the speed at which your machine is moving through space.
-To get linear velocity, [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To get linear velocity, [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Then use the movement sensor API's [`GetLinearVelocity()`](/appendix/apis/components/movement-sensor/#getlinearvelocity) method to get linear velocity readings from the sensor.
### Linear acceleration
@@ -368,7 +368,7 @@ linearAcceleration, err := imu.LinearAcceleration(context.Background(), nil)
You can use linear acceleration readings to determine the rate of change of the [linear velocity](/services/navigation/#linear-velocity) of your machine, or, the acceleration at which your machine is moving through space.
-To get linear acceleration, [configure a capable movement sensor](/components/movement-sensor/#available-models) on your machine.
+To get linear acceleration, [configure a capable movement sensor](/components/movement-sensor/#configuration) on your machine.
Then use the movement sensor API's [`GetLinearAcceleration()`](/appendix/apis/components/movement-sensor/#getlinearacceleration) method to get linear acceleration readings from the sensor.
## Next steps
diff --git a/docs/services/vision/_index.md b/docs/services/vision/_index.md
index 7d691326f8..e0014b4836 100644
--- a/docs/services/vision/_index.md
+++ b/docs/services/vision/_index.md
@@ -88,7 +88,7 @@ Any camera that can return 3D pointclouds can use 3D object segmentation.
- [GetObjectPointClouds()](/appendix/apis/services/vision/#getobjectpointclouds)
-## Available models
+## Configuration
{{}}
diff --git a/docs/tutorials/configure/configure-rover.md b/docs/tutorials/configure/configure-rover.md
index 38cda74f52..3c98a6ffdd 100644
--- a/docs/tutorials/configure/configure-rover.md
+++ b/docs/tutorials/configure/configure-rover.md
@@ -142,7 +142,7 @@ Add the following JSON objects to the `components` array:
{{% /tab %}}
{{% tab name="Other" %}}
-Follow the instructions for the [model of encoder](/components/encoder/#available-models) your rover uses to configure your encoders and configure at least a `right` and a `left` encoder.
+Follow the instructions for the [model of encoder](/components/encoder/#configuration) your rover uses to configure your encoders and configure at least a `right` and a `left` encoder.
{{% /tab %}}
{{< /tabs >}}
@@ -293,7 +293,7 @@ You can ignore the other optional attributes.
{{% /tab %}}
{{% tab name="Other" %}}
-Follow the instructions for the [model of motor](/components/motor/#available-models) your rover uses to configure your motors and configure at least a `right` and a `left` motor.
+Follow the instructions for the [model of motor](/components/motor/#configuration) your rover uses to configure your motors and configure at least a `right` and a `left` motor.
{{% /tab %}}
{{< /tabs >}}
diff --git a/docs/tutorials/projects/integrating-viam-with-openai.md b/docs/tutorials/projects/integrating-viam-with-openai.md
index fb5c7da2a7..9998d21bb3 100644
--- a/docs/tutorials/projects/integrating-viam-with-openai.md
+++ b/docs/tutorials/projects/integrating-viam-with-openai.md
@@ -79,7 +79,7 @@ This tutorial will show you how to use the Viam platform to create an AI-integra
This tutorial assumes that you have already set up your Viam Rover.
If not, first follow the Viam Rover [setup instructions](/appendix/try-viam/rover-resources/rover-tutorial/).
-If you are not using a Viam Rover, [add a new machine](/cloud/machines/#add-a-new-machine) in the [Viam app](https://app.viam.com).
+If you are not using a Viam Rover, add a new machine in the [Viam app](https://app.viam.com).
Then follow the {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` on the computer you're using for your project and connect to the Viam app.
Wait until your machine has successfully connected.
Then configure your machine with the [appropriate components](/components/).
diff --git a/docs/tutorials/projects/verification-system.md b/docs/tutorials/projects/verification-system.md
index c5b954218b..ed9339db6f 100644
--- a/docs/tutorials/projects/verification-system.md
+++ b/docs/tutorials/projects/verification-system.md
@@ -53,7 +53,7 @@ If you wanted to take this tutorial further, you could use these state transitio
Before following this tutorial, you should:
-1. [Create a new machine](/cloud/machines/#add-a-new-machine) in the Viam app.
+1. Add a new machine in the [Viam app](https://app.viam.com).
1. [Install `viam-server`](/installation/viam-server-setup/) on your new machine.
Your machine must have a [camera](/components/camera/) component, such as a [webcam](/components/camera/webcam/).
@@ -64,7 +64,7 @@ Make sure to connect your camera to your machine's computer (if it isn't built-i
Navigate to the **CONFIGURE** tab of your machine's page on the [Viam app](https://app.viam.com).
Configure the camera you want to use for your security system.
We configured ours as a `webcam`, but you can use whatever model of camera you'd like.
-Reference [these available models](/components/camera/#available-models).
+Reference [these available models](/components/camera/#configuration).
To configure a `webcam`:
diff --git a/docs/tutorials/services/navigate-with-rover-base.md b/docs/tutorials/services/navigate-with-rover-base.md
index 3349a6d3b8..84d2ecb39a 100644
--- a/docs/tutorials/services/navigate-with-rover-base.md
+++ b/docs/tutorials/services/navigate-with-rover-base.md
@@ -99,7 +99,7 @@ If you are using different hardware, configure them according to the instruction
### Configure a board with `"digital_interrupts"`
First, configure the [board](/components/board/) local to your rover.
-Follow [these instructions](/components/board/#available-models) to configure your board model.
+Follow [these instructions](/components/board/#configuration) to configure your board model.
We used a [`jetson` board](/components/board/jetson/), but you can use any model of board you have on hand, as the [resource's API](/appendix/apis/components/board/#api) is hardware agnostic.
1. Configure a board named `local` as shown below:
@@ -151,7 +151,7 @@ Start by configuring the [encoders](/components/encoder/) and [motors](/componen
Assign the pins as the [digital interrupts](/components/board/jetson/#digital_interrupts) you configured for the board, and wire the encoders accordingly to pins {{< glossary_tooltip term_id="pin-number" text="numbered" >}} `31`, `29`, `23`, and `21` on your `local` board.
Refer to the [`incremental` encoder documentation](/components/encoder/incremental/) for attribute information.
-2. Next, follow [these instructions](/components/motor/#available-models) to configure the left and right [motors](/components/motor/) of the `wheeled` base.
+2. Next, follow [these instructions](/components/motor/#configuration) to configure the left and right [motors](/components/motor/) of the `wheeled` base.
We [configured ours as `gpio` motors](/components/motor/gpio/), as shown below:
{{}}
diff --git a/docs/tutorials/services/visualize-data-grafana.md b/docs/tutorials/services/visualize-data-grafana.md
index f343a656a5..555c98a230 100644
--- a/docs/tutorials/services/visualize-data-grafana.md
+++ b/docs/tutorials/services/visualize-data-grafana.md
@@ -40,8 +40,7 @@ For general guidance appropriate for any third-party visualization tool, see [Vi
Before following this tutorial, ensure you have:
-- A machine that's [connected to the Viam app](/cloud/machines/#add-a-new-machine).
-
+- Added a new machine in the [Viam app](https://app.viam.com) and follow the {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` on the computer you're using for your project and connect to the Viam app.
- A configured [sensor component](/components/sensor/), such as the [`bme280`](https://docs.viam.com/components/sensor/bme280/) sensor, that reports data.
If it's a physical sensor, make sure to connect it to your machine's computer.
diff --git a/docs/tutorials/services/webcam-line-follower-robot.md b/docs/tutorials/services/webcam-line-follower-robot.md
index 4c91f567d3..5e916e47e9 100644
--- a/docs/tutorials/services/webcam-line-follower-robot.md
+++ b/docs/tutorials/services/webcam-line-follower-robot.md
@@ -53,7 +53,7 @@ To build your own line follower robot, you need the following hardware:
| Hardware | Avg. price |
| -------- | ----------------- |
-| **A single-board computer**: This tutorial uses a Raspberry Pi 4. If you use a different single-board computer, choose the [model that supports your board](/components/board/#available-models) when you [configure your board component](#configure-your-components). | $60 |
+| **A single-board computer**: This tutorial uses a Raspberry Pi 4. If you use a different single-board computer, choose the [model that supports your board](/components/board/#configuration) when you [configure your board component](#configure-your-components). | $60 |
| **A wheeled [base component](/components/base/)**: This tutorial uses a [SCUTTLE robot](https://www.scuttlerobot.org/shop/), but any other wheeled base works as long as it can carry the board and camera, and is capable of turning in place. Make sure to assemble this rover. | $99+ |
| **RGB camera**: A common off-the-shelf webcam (such as the [EMEET C690](https://www.amazon.com/Webcam-Streaming-Recording-Built-Correction/dp/B07M6Y7355/ref=sr_1_5?keywords=webcam&qid=1658796392&sr=8-5&th=1)) connected to the Pi’s USB port, or something like an [ArduCam](https://www.amazon.com/Arducam-Megapixels-Sensor-OV5647-Raspberry/dp/B012V1HEP4/) with a ribbon connector to the Pi’s camera module port. **You must mount the camera on the front of the rover, pointing down towards the floor.** | $30 |
| **Colored tape**: Any color is suitable as long as the color is suitably different from the floor color. For our tutorial, we used green electrical tape to stand out against our grey carpet. | $4 |
diff --git a/static/include/components/apis/generated/board.md b/static/include/components/apis/generated/board.md
index b13a75880e..ec9c69a262 100644
--- a/static/include/components/apis/generated/board.md
+++ b/static/include/components/apis/generated/board.md
@@ -1085,7 +1085,7 @@ For more information, see the [Python SDK Docs](https://python.viam.dev/autoapi/
**Parameters:**
-- `name` [(string)](https://pkg.go.dev/builtin#string): Pin number of the GPIO pin you want to retrieve as a `GPIOPin` interface. Refer to the pinout diagram and data sheet of your [board model](/components/board/#available-models) for {{< glossary_tooltip term_id="pin-number" text="pin numbers" >}}.
+- `name` [(string)](https://pkg.go.dev/builtin#string): Pin number of the GPIO pin you want to retrieve as a `GPIOPin` interface. Refer to the pinout diagram and data sheet of your [board model](/components/board/#configuration) for {{< glossary_tooltip term_id="pin-number" text="pin numbers" >}}.
**Returns:**
diff --git a/static/include/components/apis/overrides/methods/go.board.AnalogNames.string.return.md b/static/include/components/apis/overrides/methods/go.board.AnalogNames.string.return.md
index 4122019ab9..bd9f082333 100644
--- a/static/include/components/apis/overrides/methods/go.board.AnalogNames.string.return.md
+++ b/static/include/components/apis/overrides/methods/go.board.AnalogNames.string.return.md
@@ -1 +1 @@
-A slice containing the `"name"` of every analog pin [configured](/components/board/#available-models) on the board.
+A slice containing the `"name"` of every analog pin [configured](/components/board/#configuration) on the board.
diff --git a/static/include/components/apis/overrides/methods/go.board.DigitalInterruptNames.string.return.md b/static/include/components/apis/overrides/methods/go.board.DigitalInterruptNames.string.return.md
index 7ab7a51229..810620b4c1 100644
--- a/static/include/components/apis/overrides/methods/go.board.DigitalInterruptNames.string.return.md
+++ b/static/include/components/apis/overrides/methods/go.board.DigitalInterruptNames.string.return.md
@@ -1 +1 @@
-A slice containing the `"name"` of every interrupt [configured](/components/board/#available-models) on the board.
+A slice containing the `"name"` of every interrupt [configured](/components/board/#configuration) on the board.
diff --git a/static/include/components/apis/overrides/methods/go.board.GPIOPinByName.name.md b/static/include/components/apis/overrides/methods/go.board.GPIOPinByName.name.md
index e19241973d..f978e82d8c 100644
--- a/static/include/components/apis/overrides/methods/go.board.GPIOPinByName.name.md
+++ b/static/include/components/apis/overrides/methods/go.board.GPIOPinByName.name.md
@@ -1,2 +1,2 @@
Pin number of the GPIO pin you want to retrieve as a `GPIOPin` interface.
-Refer to the pinout diagram and data sheet of your [board model](/components/board/#available-models) for {{< glossary_tooltip term_id="pin-number" text="pin numbers" >}}.
+Refer to the pinout diagram and data sheet of your [board model](/components/board/#configuration) for {{< glossary_tooltip term_id="pin-number" text="pin numbers" >}}.
diff --git a/static/include/components/troubleshoot/arm.md b/static/include/components/troubleshoot/arm.md
new file mode 100644
index 0000000000..ab4f2628a6
--- /dev/null
+++ b/static/include/components/troubleshoot/arm.md
@@ -0,0 +1,7 @@
+If your arm is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the arm there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/base.md b/static/include/components/troubleshoot/base.md
new file mode 100644
index 0000000000..a9c1600a43
--- /dev/null
+++ b/static/include/components/troubleshoot/base.md
@@ -0,0 +1,12 @@
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this base model's documentation to ensure you have configured all required attributes.
+1. Review your configuration for any motors that are components of the base.
+Check that the names of the motor components match the list of motors you configured on the base.
+1. If a motor is spinning in an unexpected direction, try using the `dir_flip` attribute in its config, or try swapping the wires running to the motor to change its direction.
+1. Check that all wires are securely attached to the correct pins.
+1. If you are using a battery to power the base, check that it is adequately charged.
+ If the motors are drawing more power than the battery can supply, the single-board computer may be power cycling.
+ Consider using a wall power supply for testing purposes to rule out this issue.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the base there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/board.md b/static/include/components/troubleshoot/board.md
new file mode 100644
index 0000000000..a85a774545
--- /dev/null
+++ b/static/include/components/troubleshoot/board.md
@@ -0,0 +1,8 @@
+If your board is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this board model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely connected.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the board there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/camera.md b/static/include/components/troubleshoot/camera.md
new file mode 100644
index 0000000000..12389478ec
--- /dev/null
+++ b/static/include/components/troubleshoot/camera.md
@@ -0,0 +1,7 @@
+If your camera is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this camera model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the camera there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/component.md b/static/include/components/troubleshoot/component.md
new file mode 100644
index 0000000000..f31273dda3
--- /dev/null
+++ b/static/include/components/troubleshoot/component.md
@@ -0,0 +1,7 @@
+If your COMPONENT is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+2. Review this COMPONENT model's documentation to ensure you have configured all required attributes.
+3. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the COMPONENT there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/encoder.md b/static/include/components/troubleshoot/encoder.md
new file mode 100644
index 0000000000..a40d8ed5de
--- /dev/null
+++ b/static/include/components/troubleshoot/encoder.md
@@ -0,0 +1,8 @@
+If your encoder is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this encoder model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the encoder there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/gantry.md b/static/include/components/troubleshoot/gantry.md
new file mode 100644
index 0000000000..8cfd72a544
--- /dev/null
+++ b/static/include/components/troubleshoot/gantry.md
@@ -0,0 +1,7 @@
+If your gantry is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this gantry model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the gantry there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/generic.md b/static/include/components/troubleshoot/generic.md
new file mode 100644
index 0000000000..c90f5aa74e
--- /dev/null
+++ b/static/include/components/troubleshoot/generic.md
@@ -0,0 +1,7 @@
+If your generic component is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this generic component model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the generic component there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/gripper.md b/static/include/components/troubleshoot/gripper.md
new file mode 100644
index 0000000000..054d61acad
--- /dev/null
+++ b/static/include/components/troubleshoot/gripper.md
@@ -0,0 +1,7 @@
+If your gripper is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this gripper model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the gripper there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/input-controller.md b/static/include/components/troubleshoot/input-controller.md
new file mode 100644
index 0000000000..cb3fd61507
--- /dev/null
+++ b/static/include/components/troubleshoot/input-controller.md
@@ -0,0 +1,7 @@
+If your input controller is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this input controller model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the input controller there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/motor.md b/static/include/components/troubleshoot/motor.md
new file mode 100644
index 0000000000..f5ded6ce50
--- /dev/null
+++ b/static/include/components/troubleshoot/motor.md
@@ -0,0 +1,8 @@
+If your motor is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this motor model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the motor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/movement-sensor.md b/static/include/components/troubleshoot/movement-sensor.md
new file mode 100644
index 0000000000..f542e48a5b
--- /dev/null
+++ b/static/include/components/troubleshoot/movement-sensor.md
@@ -0,0 +1,7 @@
+If your movement sensor is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this movement sensor model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the movement sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/power-sensor.md b/static/include/components/troubleshoot/power-sensor.md
new file mode 100644
index 0000000000..da6b1495bd
--- /dev/null
+++ b/static/include/components/troubleshoot/power-sensor.md
@@ -0,0 +1,7 @@
+If your power sensor is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this power sensor model's documentation to ensure you have configured all required attributes.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the power sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/sensor.md b/static/include/components/troubleshoot/sensor.md
new file mode 100644
index 0000000000..27376102a7
--- /dev/null
+++ b/static/include/components/troubleshoot/sensor.md
@@ -0,0 +1,8 @@
+If your sensor is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this sensor model's documentation to ensure you have configured all required attributes.
+1. Check that any wires are securely attached to the correct pins, if appropriate.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the sensor there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/components/troubleshoot/servo.md b/static/include/components/troubleshoot/servo.md
new file mode 100644
index 0000000000..6eea84e606
--- /dev/null
+++ b/static/include/components/troubleshoot/servo.md
@@ -0,0 +1,8 @@
+If your servo is not working as expected, follow these steps:
+
+1. Check your machine logs on the **LOGS** tab to check for errors.
+1. Review this servo model's documentation to ensure you have configured all required attributes.
+1. Check that all wires are securely attached to the correct pins on the board.
+1. Click on the **TEST** panel on the **CONFIGURE** or **CONTROL** tab and test if you can use the servo there.
+
+If none of these steps work, reach out to us on the [Community Discord](https://discord.gg/viam) and we will be happy to help.
\ No newline at end of file
diff --git a/static/include/snippet/setup-both.md b/static/include/snippet/setup-both.md
index c659644f40..1a753d2352 100644
--- a/static/include/snippet/setup-both.md
+++ b/static/include/snippet/setup-both.md
@@ -1,3 +1,3 @@
-[Add a new machine](/cloud/machines/#add-a-new-machine) in the [Viam app](https://app.viam.com).
+Add a new machine in the [Viam app](https://app.viam.com).
Then follow the {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` or `viam-micro-server` on the device you're using for your project and connect to the Viam app.
Wait until your machine has successfully connected.
diff --git a/static/include/snippet/setup.md b/static/include/snippet/setup.md
index 65f1f5e8cc..084f52c381 100644
--- a/static/include/snippet/setup.md
+++ b/static/include/snippet/setup.md
@@ -1,3 +1,3 @@
-[Add a new machine](/cloud/machines/#add-a-new-machine) in the [Viam app](https://app.viam.com).
+Add a new machine in the [Viam app](https://app.viam.com).
Then follow the {{< glossary_tooltip term_id="setup" text="setup instructions" >}} to install `viam-server` on the computer you're using for your project and connect to the Viam app.
Wait until your machine has successfully connected.