Host tools for manipulating timetagger data
C++ Python Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
systemd
ui
.gitignore
COPYING
Makefile
README.mkd
photon_generator.cpp
record.cpp
record.h
record_format.h
timetag-acquire.conf
timetag-acquire.rules
timetag-cat
timetag-cli
timetag_acquire.cpp
timetag_bin.cpp
timetag_cut.cpp
timetag_dump.cpp
timetag_elide.cpp
timetag_extract.cpp
timetagger.cpp
timetagger.h

README.mkd

timetag-tools — FPGA Time-tagger tools

These are a set of tools for operating the FPGA timetagger. These include a set of Python-based applications for data acquisition and low-level tools for manipulation, filtering, and extraction of photon data.

More details on the FPGA timetagger system can be found in the [Usage manual][usage].

[usage]: https://goldnerlab.physics.umass.edu/wiki/FpgaTimeTagger?action=AttachFile&do=get&target=construction.pdf)

Installation

Before timetag-tools can be started one must install the timetag-fx2 package. After this is installed simply run (on Ubuntu Vivid),

$ sudo apt-get install libusb-1.0-0-dev libboost-all-dev libzmq3-dev
$ make
$ sudo make install

The timetag-acquire daemon should be started by systemd when the device is plugged in.

Installing timetag_ui

On Ubuntu Vivid,

$ sudo apt-get install python-matplotlib python-zmq
$ cd ui
$ sudo ./setup.py install

Data acquisition interface

timetag_ui (found in the ui/ directory) and timetag_seq_ui are Python-based applications wrapping the low-level utilities provided in this package in easy-to-use graphical interfaces.

Low-level utilities

Interacting with the hardware

The hardware is managed by a system-wide daemon, timetag_acquire. This daemon accepts commands and publishes events on a set of local ZeroMQ sockets.

  • /tmp/timetag-ctrl is a REP socket that allows users to submit control commands. The help command provides a full listing of available commands (see timetag-cli to conveniently work with this interface).

  • /tmp/timetag-data is a PUB socket to which records from the device are written. See timetag-cat to conveniently dump data from this interface.

  • /tmp/timetag-event is a PUB socket which publishes hardware events. The currently supported events are,

    capture start : The device has started capturing records.

    capture stop : The device has stopped capturing records.

timetag-cli provides an easy-to-use command-line interface to timetag_acquire. If command-line arguments are given they will be interpretted as a command and the result printed to standard output. Otherwise the command acts as a simple read-evaluate-print loop. For instance,

$ timetag-cli start_capture
$ timetag-cli
>>> capture?
1

timetag-cat prints incoming records from the device to stdout. For instance, to capture records to a file, one might use,

$ timetag-cli stop_capture
$ timetag-cli reset_counter
$ timetag-cat > my-records.timetag &
$ timetag-cli start_capture
$ sleep 10
$ timetag-cli stop_capture

Manipulating and extracting data

timetag_bin : Bin photons into temporal bins.

timetag_dump : Dump text representation of records in a file

timetag_cut : Extract subsets of a .timetag file.

timetag_extract : Extract binary timestamps