> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stoutdata.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Workbench

> Drive a box's instruments interactively from the dashboard — power supplies, serial consoles, GPIO, and more.

**Workbench** is a live GUI for a single box's instruments. Pick a box, expand an instrument, and control its nets directly from the browser — set a supply voltage, open a UART console, toggle a GPIO, watch a battery simulator — without writing a script or dropping to the CLI.

Where [Factory](/source/factory/overview) runs a scripted, repeatable suite for production/QA, Workbench is for **interactive, hands-on bench work**: bringing a board up, poking at one net, or reproducing a problem by hand.

<Snippet file="lager-concept.mdx" />

## Choosing a box

Open **Workbench** from the sidebar and pick a box from the **Box** selector. Only boxes that are **online with a configured IP address** are selectable — Workbench talks to the box in real time, so an offline or IP-less box can't be driven.

If a box is locked, the selector shows the lock state: green when you hold the lock (you can still drive it) and amber when someone else holds it. See [box locking](/source/boxes/overview#box-locking).

## Instruments and nets

Once a box is selected, Workbench lists its instruments, grouped by physical device and kept live by the box's USB scan. Each card shows whether the instrument is currently **connected**, and expands to reveal a control panel per [net](/source/concepts/glossary#net):

| Category          | Nets you can drive                                                                                   |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| **Power**         | Power supply (including 2-quadrant), electronic load, battery simulator, watt meter, energy analyzer |
| **Digital & bus** | GPIO, UART serial console, SPI, I2C                                                                  |
| **Analog**        | ADC, DAC, thermocouple                                                                               |
| **Debug**         | Debug probe (SWD/JTAG)                                                                               |
| **USB**           | USB hub power control                                                                                |

Most panels are request/response: they read the net's current state and let you change it (voltage, enable/disable, a GPIO level). The **UART** panel is different — it opens a streaming serial console over a WebSocket, with selectable line endings, so you can type to the device and watch output scroll in real time.

<Note>
  Workbench drives the nets that are already configured on the box. It does not
  create nets. If an instrument is detected but has no net yet, its card links to
  the box's **Nets** tab; add the net there (or in Lager), then return to
  Workbench. See the [Boxes reference](/source/boxes/overview#the-fleet-view).
</Note>

## Webcams

From the box picker, **View Webcams** opens the box's camera streams — handy for watching the bench while you drive an instrument from the same screen. Webcams also live on the box detail page's [Webcams tab](/source/boxes/overview#the-fleet-view).

## Deep links from a box

A box's **Nets** tab can jump straight into Workbench with the box and instrument preselected:

```
/workbench?box=<boxId>&instrument=<instrument-name-or-address>
```

This is the quickest path from "I can see this net on the box" to "I'm driving it."

## Where the hardware logic lives

Workbench is a thin, interactive front end over Lager's net model — the actual instrument drivers, net definitions, and the `lager` CLI/Python API all belong to [Lager](https://docs.lagerdata.com). Stout adds the multi-user, access-controlled, browser-based way to reach them.

<CardGroup cols={2}>
  <Card title="Lager: interacting with nets" href="https://docs.lagerdata.com/source/getting-started/interacting-with-nets">
    The `lager` CLI commands and Python API behind each Workbench panel.
  </Card>

  <Card title="Boxes & fleet" href="/source/boxes/overview">
    Register boxes, configure nets, and manage locks and maintenance.
  </Card>
</CardGroup>
