Example notebook for the Holzworth HS900B RF synthesizer

First we need to import our driver and define our source

[1]:
from qcodes_contrib_drivers.drivers.Holzworth.HS900 import HS900
Logging hadn't been started.
Activating auto-logging. Current session state plus future input saved.
Filename       : C:\Users\G-GRE-GRE058050\.qcodes\logs\command_history.log
Mode           : append
Output logging : True
Raw input log  : False
Timestamping   : True
State          : active
Qcodes Logfile : C:\Users\G-GRE-GRE058050\.qcodes\logs\210923-47112-qcodes.log
[2]:
source = HS900(name="RF_source", address="TCPIP0::192.168.0.2::9760::SOCKET")
Connected to: Holzworth Instrumentation HS9002B (serial:#020, firmware:Ver:2.22) in 0.28s

Now we have access to our driver. Let us first see which channels are available

[3]:
source.channel_names()
[3]:
"['CH1', 'CH2']"

Now we can easily access any channel of our RF source by specifying the channel after source. Let’s check the state of our two channels.

[4]:
source.CH1.state()
[4]:
True
[5]:
source.CH2.state()
[5]:
True

We can also change the state by giving ‘ON’ or ‘OFF’ as the argument

[6]:
source.CH1.state('OFF')
source.CH1.state()
[6]:
False
[7]:
source.CH1.state('ON')
source.CH1.state()
[7]:
True

Let’s get an overview over the different parameters. We can see frequency, phase, power, temperature at the output and the state

[8]:
source.print_readable_snapshot(update=True)
RF_source:
        parameter    value
--------------------------------------------------------------------------------
IDN           : {'vendor': 'Holzworth Instrumentation', 'model': 'HS9002B', '...
channel_names : ['CH1', 'CH2']
ref           : Internal 100MHz
ref_locked    : False
timeout       : 5 (s)
RF_source_CH1:
        parameter value
--------------------------------------------------------------------------------
frequency :     1.7e+09 (Hz)
phase     :     12.5 (deg)
power     :     7.5 (dBm)
state     :     True
temp      :     30 (C)
RF_source_CH2:
        parameter value
--------------------------------------------------------------------------------
frequency :     6e+09 (Hz)
phase     :     120 (deg)
power     :     -25 (dBm)
state     :     True
temp      :     30 (C)

Frequency is always indicated in Hertz, phase always in degree, power always in dBm and temperature always in C. Except of temperatures all quantities are settable, just by giving the value to be set as an argument.

[9]:
source.CH1.frequency(1.7e9)
source.CH2.frequency(6e9)

As before we can read out the frequency by giving no argument.

[10]:
source.CH1.frequency()
[10]:
1700000000.0
[11]:
source.CH2.frequency()
[11]:
6000000000.0

Same applies to power and phase

[12]:
source.CH1.power(7.5)
source.CH2.power(-25)
[13]:
source.CH1.power()
[13]:
7.5
[14]:
source.CH2.power()
[14]:
-25.0
[15]:
source.CH1.phase(12.5)
source.CH2.phase(120)
[16]:
source.CH1.phase()
[16]:
12.5
[17]:
source.CH2.phase()
[17]:
120.0

The temperature at the output can only be gotten and not be set.

[18]:
source.CH1.temp()
[18]:
30.0
[19]:
source.CH2.temp()
[19]:
30.0

Let’s have a look at the summary of our set properties again.

[23]:
source.print_readable_snapshot(update=True)
RF_source:
        parameter    value
--------------------------------------------------------------------------------
IDN           : {'vendor': 'Holzworth Instrumentation', 'model': 'HS9002B', '...
channel_names : ['CH1', 'CH2']
ref           : Internal 100MHz
ref_locked    : False
timeout       : 5 (s)
RF_source_CH1:
        parameter value
--------------------------------------------------------------------------------
frequency :     1.7e+09 (Hz)
phase     :     12.5 (deg)
power     :     7.5 (dBm)
state     :     True
temp      :     30 (C)
RF_source_CH2:
        parameter value
--------------------------------------------------------------------------------
frequency :     6e+09 (Hz)
phase     :     120 (deg)
power     :     -25 (dBm)
state     :     True
temp      :     30 (C)

This concludes the introduction to the HS9002B driver. If required more advanced functions of the RF source like frequencies sweeps and modulation may be added. For the time being this was not required. Theoretically it should be compatible with other RF synthesizers from the HS900 series from Holzworth, but no checks have been conducted regarding the compatibility in practice.