Output Connection - Robot {robot.id} Configure where this robot sends its movements. Multiple outputs can be active simultaneously.
{#if error} Connection Error {error} {/if} {#if showUSBCalibration}
Hardware Calibration Required
Before connecting to the physical robot, calibration is required to map the servo positions to software values. This ensures accurate control. {#each robot.getUncalibratedUSBDrivers() as usbDriver} {:else}
No USB drivers require calibration
{/each}
{:else}
Active Outputs
{outputDriverCount} Connected
Local Hardware (USB) Send commands directly to physical robot hardware
Remote Collaboration (Rooms) Broadcast robot movements to remote systems and AI

Create New Room

Create a room to broadcast this robot's movements

Join Existing Room: {robotManager.rooms.length} room{robotManager.rooms.length !== 1 ? "s" : ""} available
{#if robotManager.rooms.length === 0}
{robotManager.roomsLoading ? "Loading rooms..." : "No rooms available. Create one to get started."}
{:else} {#each robotManager.rooms as room}

{room.id}

{room.has_producer ? "🔴 Occupied" : "🟢 Available"} 👥 {room.participants?.total || 0} users
{#if !room.has_producer} {:else} {/if}
{/each} {/if}
{#if producers.length > 0} Connected Outputs
{#each producers as producer}
{producer.name} {producer.id.slice(0, 12)}
{/each}
{/if} Output Sources USB: Control physical hardware • Remote: Broadcast to network • Multiple outputs can be active {/if}