DT5550W Readout Software

The DT5550W Readout Software is the Windows application to control the Nuclear Instruments DT5550W SiPM readout board and acquire data from it. It supports boards with PETIROC 2A or CITIROC ASICs, one board or several boards together.

With the software you can:

  • configure the ASICs (thresholds, gains, shaping, trigger, hold delay, channel mask);
  • switch the SiPM bias (HV) on and off, set the voltage and read back voltage, current and temperature, with optional temperature compensation;
  • look at the data in real time: energy spectra (Low Gain and High Gain on CITIROC), hits per channel, analog monitor, ASIC monitor and a map of the detector (real-time and cumulative);
  • scan a parameter (threshold S-curves, HV, gain, input DAC, delays) and plot the count rate of every channel;
  • record the events to file for offline analysis;
  • export spectra, hit maps, channel mapping and scan results.

Requirements

  • A PC with Windows 10 or Windows 11, 64-bit
  • A USB 3.0 port for each board
  • Administrator rights to install the software

Installation

  1. Download the latest installer, dt5550w-setup.exe, from the Nuclear Instruments download portal: https://downloads.nuclearinstruments.eu/packages/dt5550w-readout-software/
  2. Run the installer and follow the wizard. It installs any missing component the software needs:
    • Microsoft .NET Framework 4.8;
    • Microsoft Visual C++ 2022 runtime (64-bit).
  3. At the end of the installation, leave "Install DT5550X Drivers (FTDI D3XX)" checked the first time you install the software on a PC. This installs the USB 3.0 driver of the board. You can skip it when you update the software on a PC where the driver is already installed.
  4. Connect the board to a USB 3.0 port and switch it on.

The software is installed in C:\OpenHardware\DT5550W\ by default and is started from the Start menu: DT5550W → DT5550W Readout.

To update, run the new installer: it replaces the previous version. Your configuration files are not removed.

Getting started

  1. Start DT5550W Readout.
  2. In the connection window select the connected board(s), the board type (Petiroc 2A or Citiroc) and the number of ASICs of your board. These must match the hardware.
  3. Load a configuration (File → Load Configuration) or adjust the parameters in the Settings tab. Save your configuration with File → Save Configuration to reuse it later.
  4. Switch on the SiPM bias with the HV button in the toolbar, if your detector needs it.
  5. Start the acquisition:
    • Free Running (No Save) shows the data in real time without saving them;
    • Run (Save event list) opens the Start Run window, where you choose the folder, the run number and the run information, and then records the events to file.
  6. Stop the acquisition with the stop button.

The status bar at the bottom shows run time, number of events, file size, free disk space and the board temperature.

Spectrum plots

In the energy spectrum tabs, tick the channels you want to display in the list on the left. With the mouse over the plot:

KeyAction
Mouse dragZoom
AUndo zoom
H / V / ZZoom horizontally / vertically / both
LToggle linear / logarithmic scale
OChange the plot style (step, line, bars, points...)

Data files

A recorded run produces two files in the folder chosen in the Start Run window:

  • <run>.data — the event list, in binary format;
  • <run>.json — the run information entered in the Start Run window (run number, type, bias, notes, date and time).

Reading CITIROC data with Python

The installation includes a Python script that decodes the .data files recorded with CITIROC boards:

C:\OpenHardware\DT5550W\decode_script\citiroc_decode.py

It requires Python 3 with the numpy and pandas packages:

pip install numpy pandas

The script provides the function read_citiroc_binfile(filename, verbose=False), which reads a file and returns, for every event:

FieldContent
AsicIDASIC that produced the event
EventTimecode, EventTimecode_nsEvent timestamp (clock ticks and nanoseconds)
RunEventTimecode, RunEventTimecode_nsTimestamp from the start of the run (clock ticks and nanoseconds)
EventCounterEvent counter
chargeHG, chargeLGHigh Gain and Low Gain charge of the 32 channels of the ASIC
hitHit flag of the 32 channels
TriggerID, ValidationIDTrigger and validation identifiers
fakeEvent flag

Corrupted events are detected and removed; with verbose=True the script prints how many there were.

To use it in your own analysis, copy the script next to your code and import the function:

from citiroc_decode import read_citiroc_binfile

events = read_citiroc_binfile(r"C:\data\run_1.data", verbose=True)
print(events["chargeLG"][0])   # Low Gain charges of the first event

Running the script directly decodes the example path written at the end of the file (c:\temp\4.data): change that path to your own file before running it.

If something goes wrong

If the software stops with an unexpected error, it saves a crash report in:

%LOCALAPPDATA%\DT5550W\CrashLogs

(paste this path in the Windows Explorer address bar). The error window lets you continue, quit or open that folder directly. When you contact Nuclear Instruments technical support, please attach the report file and describe what you were doing when the error occurred.

Release notes

The changes of each version are listed on the download portal, on the page of each version of the package.