Quickstart¶
Prerequisites: a running rogue server, a config file (see Configuration), and pysmurf installed.
Connect¶
import pysmurf
S = pysmurf.SmurfControl(cfg_file='/path/to/config.cfg', make_logfile=True)
Setup¶
band = 0
S.set_att_uc(band, 18) # dB, upconverter
S.set_att_dc(band, 18) # dB, downconverter
S.estimate_phase_delay(band) # once per hardware setup
Tune¶
S.tune(band, load_tune=False)
# Runs: find_freq -> setup_notches -> serial eta scan -> track_and_check
# Or reload a previous tune:
S.tune(band, load_tune=True, tune_file='/path/to/tune.npy')
Check Channels¶
channels = S.which_on(band)
print(f"{len(channels)} channels tracking")
Stream Data¶
datafile = S.take_stream_data(meas_time=30)
timestamps, phase, mask = S.read_stream_data(datafile)
Noise¶
S.take_noise_psd(meas_time=60, band=band, show_plot=True, save_plot=True)
IV Curves¶
S.run_iv(
bias_groups=[0, 1, 2, 3],
bias_high=19.9, bias_low=0, bias_step=0.025,
overbias_voltage=19.9, wait_time=0.1,
)
Shutdown¶
S.band_off(band)