v1

latestOpenAPI 3.1.0raw.githubusercontent.com2026-02-1354131442.5 KB
v1
setup
factory

Configure System Component

Configure a specific system component with hardware-specific settings.

FACTORY USE ONLY - This endpoint configures critical system hardware and should only be used during factory setup.

This endpoint allows configuration of individual system components by:

  • Specifying component hardware type - Select from available driver implementations
  • Applying component-specific settings - Configure hardware parameters and options
  • Validating configuration - Ensure settings are compatible with system requirements
  • Tracking setup progress - Update configuration state and remaining tasks

Configuration Process

1. Component Identification

The component_id path parameter specifies which component to configure:

  • Must match a component listed in "unconfigured_components" from setup status
  • Component must be present in the system manifest
  • Invalid component IDs will result in configuration failure

2. Hardware Type Selection

The type field in settings specifies the hardware driver/implementation:

  • motor_driver: roboclaw, motoron, null (testing)
  • cable_encoder: roboclaw, qsb, null (no encoder)
  • motor_encoder: roboclaw, null (no motor encoder)
  • physical_control: pendant, null (API-only control)
  • reed_switch: gpio, null (no reed switch)
  • estop: gpio, null (no emergency stop)
  • status_rgb_led: gpio, null (no status LED)

3. Additional Settings

Component-specific configuration parameters (optional):

  • Hardware addresses, pin assignments, communication settings
  • Calibration values, thresholds, operational parameters
  • Safety settings, timing configurations

Factory Workflow

  1. Get setup status to identify pending components
  2. Configure each component with appropriate hardware type
  3. Verify successful configuration from response
  4. Continue until all components configured
  5. Exit setup mode to enable normal operations

Security Note

This endpoint can modify critical system hardware configuration and should be restricted to authorized factory personnel only.

post/api/v1/setup/configure/{component_id}

Path parameters

component_idstring required

Request body

settingsobject required

Configuration settings for the component.

Required Field:

  • type (string): Hardware type identifier

Optional Fields:

  • Hardware-specific parameters (addresses, pins, etc.)
  • Calibration values and operational settings
  • Safety thresholds and timing configurations

Example Settings by Component:

{
  "type": "roboclaw",
  "address": "0x80",
  "baud_rate": 38400
}

Example request

{
  "description": "Configure Roboclaw motor driver with address",
  "summary": "Motor Driver Configuration",
  "value": {
    "settings": {
      "address": "0x80",
      "baud_rate": 38400,
      "type": "roboclaw"
    }
  }
}

Response

Component configuration result with remaining setup tasks

successboolean required

Whether the component configuration was successful.

  • True: Component configured successfully, settings applied
  • False: Configuration failed, check error details

Success Criteria:

  • Hardware type is valid for the component
  • Configuration settings pass validation
  • Component successfully initializes with settings
component_idstring required

The component identifier that was configured

remaining_componentsstring[] required

Components that still need configuration after this operation.

Empty List: All components now configured, can exit setup mode Non-Empty: Additional components still require configuration

Setup Progress: Compare with previous unconfigured_components list to track progress

Example response

{
  "description": "Component configured with remaining tasks",
  "summary": "Successful Configuration",
  "value": {
    "component_id": "motor_driver",
    "remaining_components": [
      "cable_encoder"
    ],
    "success": true
  }
}