---
title: "Configure System Component"
method: POST
path: "/api/v1/setup/configure/{component_id}"
tags: ["v1", "setup", "factory"]
---

# Configure System Component

`POST /api/v1/setup/configure/{component_id}`

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.

## Path parameters

- `component_id` string, required

## Request body

- ComponentConfigRequest — Request payload for configuring a system component. Contains the configuration settings needed to set up a specific hardware component in the system.
  - `settings` object, 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:** ```json { "type": "roboclaw", "address": "0x80", "baud_rate": 38400 } ```

## Response `200`

Component configuration result with remaining setup tasks

- ComponentConfigResponse — Response from component configuration operation. Indicates whether configuration was successful and provides updated information about remaining setup tasks.
  - `success` boolean, 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_id` string, required — The component identifier that was configured
  - `remaining_components` string[], 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

## Other responses

- `400` — Configuration error or not in setup mode
- `422` — Validation Error
- `500` — Internal server error during setup operation

---

[API](https://skmtc.net/reach-systems-tech/apis/reelapi-v1.md) · [All operations](https://skmtc.net/reach-systems-tech/apis/reelapi-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reach-systems-tech/reelapi-v1/versions/1dd366a9c6a3/schema)
