State of the art time-to-digital converter
- Overview
- quTAG HR
- quTAG MC
- Software
- Jitter Measurement
- Applications
- Use cases
- Coding Examples
- Videos
- Downloads
The quTAG is a high-end, easy-to-use time-to-digital converter and time tagging device designed for time correlated single photon counting (TCSPC).
The quTAG detects events with a digital resolution of 1 picosecond and a jitter down to 2.3 ps RMS. The trigger threshold is adjustable between -5V up to +3 V, including the widely used LVTTL or NIM. It allows capturing up to 100 million time tags per second and uses a USB 3.0 connection to transfer the extensive data.
It is delivered with software for Windows and Linux with an easy-to-use graphical user interface. It can also be integrated in custom software. Examples for LabView, C/C++ and Python are included.
The quTAG family expands with the two devices quTAG HR – High Resolution and quTAG MC – Multi Channel with a variety of variants and additional hardware and software features.

Number of inputs | 8 – 32 |
Connectors | SMA |
Edge | rising, falling |
Signal levels | -5.0 … + 3.5 V |
Number of inputs | 1 |
Connectors | SMA |
Edge | rising, falling |
Signal levels | -5.0 … + 3.5 V |
Connectors | SMA |
Signal levels | -5.0 … + 5.0 V |
Connectors | SMA |
Signal levels | LVTTL |

Number of outputs | 2 |
Connectors | D-SUB |
Signal levels | LVTTL |
Delay resolution | 10 ps |

Number of inputs | 4 |
Connectors | D-SUB |
Delay resolution | 5 ns |
quTAG HR – High Resolution Variants
The quTAG HR is designed for high resolution measurements with up to 16 channels. These time taggers of the quTAG family are available with a wide range of timing resolution and channel numbers. Enhanced timing jitter values can be achieved by interconnecting input channels via software.
The table below shows all quTAG HR 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 |
Timing jitter down to 2.3 ps RMS / 5.4 ps FWHM |
Sustained event rate 100 M tags/second |
Up to 16 high resolution stop channels |
Cost-sensitive, modular versions available |
quTAG HR Variants
Variants | Jitter RMS |
8 Input Channels | 6 ps |
8 Input Channels | 4 ps |
16 Input Channels | 6 ps |
quTAG HR Features
Included 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 160 equal stop channels of HR version are offered – all sharing the same clock.
|
|
+ Start-channel as input | |
The start channel can be converted to another stop channel, allowing one more equal input channel.
|
|
+ Virtual channels & filters | |
+ Marker inputs | |
+ Divider for stop channels | |
This option allows you to enable the divider on all stop channels. This allows higher frequency periodic signals to be recorded.
|
|
+ Output channels | |
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
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 | |
+ Marker inputs – optional | |
+ Output channels – optional | |
Software features for quTAG HR & 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 σ.
Publications
- Performance Optimization and Real-Time Security Monitoring for Single-Photon Quantum Key Distribution
T. Kupko et al., arXiv preprint (2019) - Hong-Ou-Mandel interference between independent III-V on silicon waveguide integrated lasers
C. Agnesi, et al., arXiv preprint (2019) - Sub-ns timing accuracy for satellite quantum communications
C. Agnesi et al., arXiv preprint (2019) - Experimental demonstration of quantum advantage for one-waycommunication complexity
N. Kumar et al., arXiv preprint (2018) - A photonic quantum walk with a four-dimensional Coin
L. Lorz et al., arXiv preprint (2018) - Towards quantum communication from global navigation satellite system
L. Calderaro et al., IOP Publishing (2018)
General Applications
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..
Results:
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.
Results:
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 | 01/2021 | 0.4 MB | zip |
quTAG software manual V1.5.0 – Example explanation | 10/2019 | 0.3 MB |
First Coding Example: How to retrieve Countrates
The following codes show how to quickly connect to the quTAG via Python. The quTAG.py file wraps all DLL functions to get simple access via your own code.
In the first example qutag-GetCoincCounter-starter_example.py 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'. try: import QuTAG except: print('Time Tagger wrapper QuTAG.py 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)
Videos
Datasheets
quTAG HR datasheet | 01/2021 | 0.3 MB | |
quTAG MC datasheet | 01/2021 | 0.3 MB |
Manuals
quTAG brochure | 03/2019 | 2.4 MB | |
quTAG MC manual V1.0.0 | 01/2021 | 0.9 MB | |
quTAG MC quickstart manual V1.0.0 | 05/2019 | 0.2 MB | |
quTAG software manual V1.5.0 | 10/2019 | 0.3 MB | |
quTAG & Matlab technical note | 01/2021 | 0.3 MB |
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 | 01/2021 | 0.4 MB | zip |