-
Notifications
You must be signed in to change notification settings - Fork 1
GUI Sandbox
The Sandbox tab lets you build arbitrary parametric test sequences without writing code. Tests are defined as a pipeline of loop columns followed by an actions column.
┌──────────────┬──────────────┬──────────────────────────────┐
│ Loop 1 │ Loop 2 │ Actions │
│ (outermost) │ (innermost) │ (run at every combination) │
│ │ │ │
│ Sweep V_CE │ Sweep V_BE │ [Wait 50 ms] │
│ 1 → 5 V │ 0 → 0.8 V │ [Measure I_C → "I_C"] │
│ step 2 V │ step 0.01 V │ │
└──────────────┴──────────────┴──────────────────────────────┘
- Loop columns (left = outermost, right = innermost) — each sweeps one instrument parameter. Total rows = product of all loop sizes.
- Actions run once per combination of loop values, top-to-bottom.

| Field | Description |
|---|---|
| Variable | Short name referenced in Set actions (e.g. v_ce) |
| Label | Column header in CSV output |
| Instrument | Instrument to control (from the active workbench) |
| Channel | Instrument channel (1–4) |
| Parameter |
Voltage (CV mode) or Current (CC) (constant-current mode) |
| Start / Stop / Step | Sweep range — step direction inferred automatically |
| Settle | Wait time after setting each new value before running actions |
| I Limit / V Compliance | Current limit for voltage sweeps; compliance voltage for CC sweeps |
Writes a value to an instrument at each loop step. The value field accepts a literal number (0.001) or a loop variable reference ({v_ce}).
Reads one value from an instrument and records it as a named column.
| Parameter | What is measured |
|---|---|
| Voltage (DC) | DC voltage |
| Current | DC current |
| Voltage (AC) | AC RMS voltage |
| Resistance | 2-wire resistance |
| Resistance (4W) | 4-wire (Kelvin) resistance |
Fixed delay in seconds.
Polls a measurement repeatedly until a condition is met. Useful for thermal soak, settling, or conditioning before a sweep begins.
| Field | Description |
|---|---|
| Instrument / Channel / Parameter | What to read on each poll |
| Condition |
≥, ≤, or ± (within tolerance) |
| Target | The value to wait for |
| Tolerance | Used with ± only |
| Poll every | Seconds between readings |
| Timeout | Give up after N seconds (0 = wait forever) |
Tests are saved as JSON (💾 Save) and reloaded with 📂 Load. The format is intentionally simple and human-readable:
{
"name": "IV at temperature",
"loops": [
{ "var": "v_ce", "label": "V_CE", "instrument": "USB0::...", "ch": 1,
"param": "voltage", "start": 0, "stop": 5, "step": 0.5,
"settle": 0.1, "i_limit": 0.5 }
],
"actions": [
{ "type": "wait_for", "instrument": "USB0::...", "ch": 1, "param": "voltage",
"condition": ">=", "target": 25.0, "interval": 10, "timeout": 600 },
{ "type": "measure", "instrument": "USB0::...", "ch": 1,
"param": "current", "label": "I_C", "samples": 3, "settle": 0.05 }
]
}All instrument commands go through core/eewBackbone.json. A Sandbox test built against a Keysight PSU will run unchanged on any PSU family that defines the same SCPI operations. See eewBackbone for details.