Skip to content

Connecting to Qdac 2 by Qdevil in Python

Instrument Card

QDAC-II is the next generation of the successful QDAC from QDevil. It has all the outstanding features from its predecessor but is even more versatile and with superior performance. QDAC-II is a high-precision ultra-low-noise computer controlled DAC with 24 voltage generators, operating at a sample rate of 1MS/s – a thousand times faster than its predecessor. It is designed for DC and intermediate-frequency control of quantum devices, including, for example, gate electrodes and flux bias coils in qubits, but is a very versatile instrument that can be used for many other purposes. Each of the 24 channels has five voltage generators working in parallel: One for DC, a sine generator, a triangle generator, a square wave generator, and an arbitrary waveform generator (1 million points/second). Additionally, each channel is equipped with a DC current sensor with a resolution down to a few tens of pA, typically used for gate leakage detection and with sample rates up to 3 kHz.

Qdac 2

Device Specification: here

Manufacturer card: QDEVIL

QDEVIL

Founded in 2016, QDevil is an international quantum technology company focused on developing and manufacturing auxiliary electronics and specialized components, operating from mK to room temperature. The mission is to accelerate research and development in quantum electronics labs. To fulfill the mission QDevil helps customers around the world by supplying world-class auxiliary electronics.

  • Headquarters: COPENHAGEN, DENMARK
  • Yearly Revenue (millions, USD): 2
  • Vendor Website: here

Connect to the Qdac 2 in Python

PROTOCOLS > SCPI

To connect to a Qdac 2 Power Supply using Qcodes Community, you can follow these steps:

  1. Import the necessary modules:
from qcodes.instrument.visa import VisaInstrument
from qcodes.instrument.channel import ChannelList
from qcodes.instrument.parameter import Parameter
  1. Create a class for the Qdac 2 Power Supply:
class QDac2(VisaInstrument):
def __init__(self, name, address):
super().__init__(name, address)
# Add channels to the instrument
self.channels = ChannelList(self, "Channels", QDac2Channel, snapshotable=False)
for i in range(1, 9):
channel = QDac2Channel(self, f"ch{i}", i)
self.channels.append(channel)
self.add_submodule(f"ch{i}", channel)
  1. Create a class for the Qdac 2 Power Supply channel:
class QDac2Channel(Parameter):
def __init__(self, parent, name, channum):
super().__init__(name, label=f"Channel {channum}", unit="V", parent=parent)
self.channum = channum
def get_raw(self):
return self.instrument.ask(f"get_voltage {self.channum}")
def set_raw(self, value):
self.instrument.write(f"set_voltage {self.channum} {value}")
  1. Connect to the Qdac 2 Power Supply:
qdac = QDac2("qdac", "TCPIP::192.168.1.1::INSTR")
qdac.connect()
  1. Access and control the channels of the Qdac 2 Power Supply:
channel1 = qdac.channels[0]
channel1.set(1.0)
voltage = channel1.get()
print(voltage)

Note: Replace β€œTCPIP::192.168.1.1::INSTR” with the actual IP address of your Qdac 2 Power Supply.

This code provides a basic example of how to connect to and control a Qdac 2 Power Supply using Qcodes Community. You can modify and expand upon this code to suit your specific needs.