Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,35 @@ sweep.start()
the notebook cell output, so database switches and sweep transitions are
visible while the queue runs.

## Sweep Timing Constraints

MeasureIt enforces minimum delay values to ensure thread-safe operation and reliable measurement timing:

| Parameter | Minimum Value | Applies To | Description |
|-----------|--------------|------------|-------------|
| `inter_delay` | **0.01s** (10ms) | All sweeps (Sweep1D, Sweep2D inner) | Time between measurement points |
| `outer_delay` | **0.1s** (100ms) | Sweep2D outer sweep | Time between outer sweep lines |

**Why These Minimums?**
- These minimums ensure reliable data collection and prevent measurement timing issues
- They protect the runner thread timing and ensure stable communication between measurement threads
- Values below these minimums will raise a `ValueError` with a descriptive error message
- The defaults (`inter_delay=0.1s`, `outer_delay=1.0s`) are safe for most use cases

**Example:**
```python
# Valid sweep with minimum delays
sweep2d = measureit.Sweep2D(
in_params=[inner_param, 0, 1, 0.01],
out_params=[outer_param, 0, 10, 0.1],
inter_delay=0.01, # Minimum allowed
outer_delay=0.1 # Minimum allowed
)

# This would raise ValueError: inter_delay too small
# sweep2d = measureit.Sweep2D(..., inter_delay=0.005) # < 0.01s ❌
```

## Documentation

### Building Documentation
Expand Down
6 changes: 4 additions & 2 deletions src/measureit/sweep/base_sweep.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ class BaseSweep(QObject):
set_param:
QCoDeS Parameter to be swept, defaults to None for 0D sweep.
inter_delay:
Time (in seconds) to wait between data points.
Time (in seconds) to wait between data points. Must be >= 0.01s.
Default: 0.1s
save_data:
Flag used to determine if the data should be saved or not.
plot_data:
Expand Down Expand Up @@ -149,7 +150,8 @@ def __init__(
set_param:
QCoDeS Parameter to be swept, defaults to None for 0D sweep.
inter_delay:
Time (in seconds) to wait between data points.
Time (in seconds) to wait between data points. Must be >= 0.01s.
Default: 0.1s
save_data:
Flag used to determine if the data should be saved or not.
plot_data:
Expand Down
12 changes: 8 additions & 4 deletions src/measureit/sweep/sweep2d.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ class Sweep2D(BaseSweep, QObject):
out_params:
List defining the outer sweep [parameter, start, stop, step].
inter_delay:
Time (in seconds) to wait between data points on inner sweep.
Time (in seconds) to wait between data points on inner sweep. Must be >= 0.01s.
Default: 0.1s
outer_delay:
Time (in seconds) to wait between data points on outer sweep.
Time (in seconds) to wait between data points on outer sweep. Must be >= 0.1s.
Default: 1.0s
save_data:
Flag used to determine if the data should be saved or not.
plot_data:
Expand Down Expand Up @@ -116,9 +118,11 @@ def __init__(
out_params:
A list conforming to above standard for the outer sweep.
inter_delay:
Time (in seconds) to wait between data points on inner sweep.
Time (in seconds) to wait between data points on inner sweep. Must be >= 0.01s.
Default: 0.1s
outer_delay:
Time (in seconds) to wait between data points on outer sweep.
Time (in seconds) to wait between data points on outer sweep. Must be >= 0.1s.
Default: 1.0s
save_data:
Flag used to determine if the data should be saved or not.
plot_data:
Expand Down