Menu Home


Multi channel time-to-digital converter

  • The new quTAGs come in a High Resolution and a Multi Channel version. Each version is available in a variety of variants to meet exactly your needs!

  • Overview
  • Software
  • Jitter Measurement
  • Applications
  • Use cases
  • Coding Examples
  • Videos
  • Downloads

quTAG MC – Multi Channel Variants


The quTAG MC is designed for a high number of simultaneous measurements with up to 32 channels in one device and the ability of synchronizing multiple devices.

These time taggers of the quTAG family are available with a wide range of channel numbers and timing resolution. Enhanced timing jitter values can be achieved by interconnecting input channels via software.

The table below shows all quTAG MC variants with number of input channels and varying timing RMS jitter by interconnectiong channels in picoseconds.

Key Features
Time correlated single photon counting
Digital resolution 1 ps
Up to 32 stop channels in one device
Synchronization of multiple devices
Timing jitter <20 ps RMS
Cost-sensitive, modular versions available
quTAG MC Variants
8 Input Channels
16 Input Channels
32 Input Channels

quTAG MC Features

Available Features
+ Clock Input
The quTAG can be synchronized to an external clock to allow more precise long-term accuracy.
+ Synchronization of devices
This extension allows to synchronize up to 10 quTAGs. Up to 320 equal stop channels of MC version are offered – all sharing the same clock.
+ Virtual channels & filters
The device allows to enable virtual channels or userdefined filters. The filtering is based on hardware and happens inside the device to save USB bandwidth.

+ Marker inputs – optional
The device features marker inputs, inserting timestamps in the timeline. Marker inputs are needed e.g. to read a pixel or line clock in a FLIM setup.
+ Output channels – optional
The two programmable outputs enable conditional measurements, state preparation, gating of detectors, control of shutters and more to synchronize events.
– included
– upgradeable

Software features for quTAG MC

Histograms Create start-stop & start-multistop histograms
Lifetime The software enables analyzing lifetime measurements on the fly.
It calculates histograms and fits exponential decreases.
Correlations This software extension is intended for calculating the correlation function, as needed for example in Hanbury Brown-Twiss experiments or FCS.
Virtual channels & filters The device allows to enable virtual channels or user-defined filters. The filtering is based on hardware and happens inside the device to save USB bandwidth.
GUI Web-application on the PC or via WIFI from quTAG,
Daisy – generic Data Analysis and Imaging System
User interfaces command line & libraries in C, Python, Matlab, LabVIEW

Jitter Measurement

In order to measure the jitter, we generate an electrical pulse with steep edges. This pulse gets split into two by a power splitter and sent into two different inputs of the quTAG (i.e. start and stop-X or stop-X and stop-Y).

Then we use the quTAG software to generate a startstop-histogram. We fit a Gaussian function to this histogram and determine RMS and FWHM. The single channel jitter corresponds to σ / √2 from this two-channel measurement, assuming equal Gaussian contributions from both signals. The FWHM can be obtained by the standard deviation with the relation FWHM = 2 √2 ln 2 σ ≈ 2.35 σ.


General Applications

Time-Correlated Single Photon Counting (TCSPC)
Fluorescence/Phosphorescence Lifetime Measurements / Imaging (FLT / FLIM)
Fluorescence (Lifetime) Correlation Spectroscopy (FCS / FLCS)
Foerster Resonance Energy Transfer (FRET)
Single Photon Emitter Characterisation
We used the quTAG for two experiments together with the superconducting nanowire single photon detector (SNSPD) from our long-time collaborators at Single Quantum. The results proved the efficiency and speed that we expected as we engineered the quTAG.

Laser trigger as Start, Single Quantum SNSPD as Stop

We measured a time difference histogram between the trigger pulse from the laser as start and the SQ detector signal as stop.
This is basically the setup for a Fluorescence Lifetime Imaging (FLIM) measurement..

Whole system response function (blue, measured with quTAG): Timing jitter 17.8 ps RMS, 35.9 ps FWHM
For comparison: Detector response function (red, measured with fast oscilloscope): Timing jitter 14.5 ps RMS, 26.1 ps FWHM.


One SQ Detector as Start, another one as Stop

Here, we measured the time difference histogram between one of the two SQ SNSPDs as Start and the other one as Stop pulse.

Timing jitter of 2 SQ SNSPDs measured with the quTAG (blue): 21.6 ps RMS, 45.6 ps FWHM.

Overview of quick and easy Python Coding Examples

Python is a popular coding language for labs and institutes. Therefore, qutools created a Python file to wrap all the DLL or SO (Win/Linux) functions to gain quick and easy control of the hardware.

The following list shows the different examples using this wrapper. An explanation is added to each code.

  • Retrieve Countrates and Coincidences
  • Live Plotting of Countrates with matplotlib
  • Create and retrieve a histogram of two channels
  • Live Plotting of the histogram with a changing channel delay
  • Retrieve timestamps
  • Write timestamps to a file on the PC
  • Change different settings of the quTAG
Download quTAG MC Python Examples 04/2021 0.4 MB zip
quTAG software manual V1.5.0 – Example explanation 10/2019 0.3 MB pdf

First Coding Example: How to retrieve Countrates

The following codes show how to quickly connect to the quTAG via Python. The file wraps all DLL functions to get simple access via your own code.

In the first example we are retrieving countrates and coincidences of the quTAG and its input channels.

# quTAG Python example codes based on the quTAG Python wrapper.
# Run with Python 3.7.3 (32bit), numpy-1.13.3 and Windows 7 (64bit)

# Import the python wrapper which wraps the DLL functions.
# The wrapper should be in the same directory like this code in the folder '../QUTAG-V1.5.0/userlib/src'.
	import QuTAG
	print('Time Tagger wrapper is not in the search path.')
#Initialize the quTAG device
qutag = QuTAG.QuTAG()
# Set the exposure time (or integration time) of the internal coincidence counters in milliseconds, range = 0...65535
qutag.setExposureTime(1000) # 1000 ms exposure time
# Give some time to accumulate data
time.sleep(1) # 1 second sleep time with 100ms exposure time would give ~10 times data we don't get

# Now let's retrieve the most recent values of the built-in coincidence counters from quTAG.
# The array contains count rates for all 5 channels and rates for coincidences of events detected on different channels. Events are coincident if they happen within the coincidence window (qutag.setCoincidenceWindow).
# The coincidence counters are not accumulated, i.e. the counter values for the last exposure (see setExposureTime ) are returned.
data,updates = qutag.getCoincCounters()
print('Updates since last call: ', updates, '| latest Data: ', data)
# updates	Output: Number of data updates by the device since the last call. Pointer may be NULL.
# data	        Output: Counter Values. The array must have at least 31 elements.
#                       The Counters come in the following channel order with single counts and coincidences:
#                       0(5), 1, 2, 3, 4, 1/2, 1/3, 2/3, 1/4, 2/4, 3/4, 1/5, 2/5, 3/5, 4/5, 1/2/3, 1/2/4, 1/3/4, 2/3/4, 1/2/5, 1/3/5, 2/3/5, 1/4/5, 2/4/5, 3/4/5, 1/2/3/4, 1/2/3/5, 1/2/4/5, 1/3/4/5, 2/3/4/5, 1/2/3/4/5 
### see 'tdcbase.h' file reference for more info: function TDC_getCoincCounters(Int32 *data, Int32 *updates)


Datasheet & Manuals

quTAG MC datasheet 01/2021 0.3 MB pdf
quTAG MC quickstart manual V1.0.0 05/2019 0.2 MB pdf
quTAG MC manual V1.0.0 01/2021 0.9 MB pdf
quTAG software manual V1.5.0 10/2019 0.3 MB pdf


quTAG brochure 03/2019 2.4 MB pdf
quTAG & Matlab technical note 01/2021 0.3 MB pdf

Software quTAG MC

quTAG MC software V1.0.5 02/2021 20.0 MB exe
quTAG MC software V1.0.5 02/2021 15.8 MB zip
quTAG MC 64bit library win V1.0.5 02/2021 0.4 MB zip
quTAG MC 64bit software linux V1.0.5 02/2021 5.5 MB tgz
Python examples 04/2021 0.4 MB zip