Configure a Fake Input Controller for Testing

Configuring a fake input controller allows you to test an input controller communicating with your machine, without any physical hardware.

This controller can have Controls defined in attributes, as seen in the “JSON Template” tab below. However, these Controls only ever return a single PositionChangeAbs event on the X axis, with the Event.value stuck at 0.7.

Navigate to the CONFIGURE tab of your machine’s page in the Viam app. Click the + icon next to your machine part in the left-hand menu and select Component. Select the input_controller type, then select the fake model. Enter a name or use the suggested name for your input controller and click Create.

An example configuration for a fake input controller component in the Viam App config builder.

Edit the attributes as applicable.

{
  "components": [
    {
      "name": "<your-fake-input-controller>",
      "model": "fake",
      "type": "input_controller",
      "namespace": "rdk",
      "attributes": {
        "controls": [
          "AbsoluteX",
          "AbsoluteY",
          "AbsoluteZ"
        ],
        "event_value": <float>,
        "callback_delay_sec": <float>
      }
    }
}

The following attributes are available for fake input controllers:

NameTypeRequired?Description
callback_delay_secfloatRequiredThe number of seconds between callbacks getting triggered. Random between 1 and 2 if not specified. 0 is not valid and will be overwritten by a random delay.
event_valuefloatOptionalSet the value of events returned. Random between -1 and 1 if not specified.
controlsarrayOptionalSet the Controls that are present on the controller.

Test the input controller

After you configure your input controller, open the input controller’s TEST panel on the CONFIGURE or CONTROL tabs. View the current value of each input on your controller.

The input controller component in the test panel of the Viam app.

Troubleshooting

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.
  2. Review this 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 and we will be happy to help.

Next steps

For more configuration and usage info, see:

Have questions, or want to meet other people working on robots? Join our Community Discord.

If you notice any issues with the documentation, feel free to file an issue or edit this file.