Getting Started


Downloads

Below are the links to the latest software versions for both Windows and Linux. Both software versions should run standalone and feature the same functionalities. The Windows version has been tested on Windows 10 and 11. The Linux version is tested on Ubuntu 20.04 and 22.04.


Installation

Windows:

  1. Unzip the downloaded package. It contains the following folders:
    • Drivers
    • SPAD23_standalone_win64
  2. Install the drivers and the Visual C++ Redistributables from the Drivers folder.
  3. Connect the USB-C cable to the detector.
  4. Connect the 5V power plug to the detector.
  5. Run the software by double clicking the SPAD23.exe in the SPAD23_standalone_win64 folder.
  6. You should now be able to see the live view with the photon counts in each detector.

Linux:

  1. Unzip the downloaded package. It contains the following folders:
    • Install
    • SPAD23_standalone_linux64
  2. Open a terminal in the Install folder and execute the following command: sudo ./install.sh. You might be prompted for your administrator password to proceed with the installation. The installation file might require execution permissions, set this with sudo chmod +x install.sh
  3. Connect the USB-C cable to the detector.
  4. Connect the 5V power plug to the detector.
  5. Run the software by double clicking the SPAD23 executable in the SPAD23_standalone_linux64 folder. Alternatively, open a terminal in the SPAD23_standalone_linux64 folder and execute: ./SPAD23. The application might require execution permissions, set this with sudo chmod +x SPAD23
  6. You should now be able to see the live view with the photon counts in each detector.

Setting up

Now that the detector is connected and the software is running, we recommend to check if the basic measurement routines in the tabs photoncounting and timestamping are operational. For some of these functions to operate correctly, additional clock synchronization signals need to be connected to the four SMA connectors on the system.

The settings tab provides easy access to the main configuration parameters. It also shows a real-time reading of the temperatures and the detected frequencies of the signals connected to the SMAs on the system.

The software will regularly check for updates and prompt in case new updates are available. One can force an update check from the dropdown menu in the top left corner of the software interface. To use the new software, remove the old software from the PC and extract the files from the new package as described in Installation.


Hardware


Sensor

The SPAD23 system contains a sensor with 23 SPAD pixels arranged in a hexagonal configuration. The spacings and dimensions of the pixels are highlighted in the drawing on the right. Pixel 0 is oriented towards the top left corner of the system (towards the USB-C connector).

Hexagonal grid arrangement

System

The system is housed in a small aluminium enclosure measuring 58×91×39.5 mm. The mechanical drawing below shows the different connectors together with relevant mounting information.

Mechanical drawing

It is powered from a single 5V adapter and data can be read from the USB-C port. The SMA connectors on the top of the package have the following functionality:

  • Dwell clock input
    High impedance, maximum input voltage: 3.3V.
  • Laser clock input
    Frequency: 1—99MHz, high impedance, maximum input voltage: 3.3V.
  • Line clock input
    High impedance, maximum input voltage: 3.3V.
  • Frame clock input
    High impedance, maximum input voltage: 3.3V.

Acceptable input voltage ranges: 0—2.5V, 0—3.3V, and 0—5V (5V only when terminated with a 50Ω load to make it effectively 2.5V). The minimum detectable pulse width for the frame/line/dwell clocks is 12ns.

For systems generating negative pulses (such as the NIM synchronization output on several laser drivers), we recommend the use of an active NIM to TTL inverter. We have obtained good results with the following two active inverters:

The system, FPGA + sensor, consumes in idle operation mode around 1.8W. This is mainly static power consumed by the FPGA resources. Under measurement operation, the power consumption increases to maximum 2W. For optimal thermal performance, the system can be shutdown when unused for an elongated period of time. A proper metal support on the box can help to absorb part of the heat in the large thermal mass of an optical table. Alternatively, a fan can be placed adjacent to the system, in order to actively cool the detector.


Graphical user interface


Menu

The options menu is available in the top left corner of the user interface. There are the following options:

  • Set save path
    Changes the folder in which the software is saving the data to a user selected one.
  • Toggle live view to linear/log
    Switch between the display of the count rate in the live views in a linear or logarithmic fashion.
  • Toggle histogram to linear/log
    [TDC version] Switch the histogram displayed on the timestamping tab to have either a linear or logarithmic y-axis.
  • Calibrate breakdown
    Measures the breakdown point of the SPADs. This ensures each detector will always be biased at the same excess bias voltage with respect to the breakdown point. The breakdown voltage is stored and loaded on startup.
  • Change clock SMA mapping
    Opens a secondary window in which the user can reassign the SMA ports to a different frame/line/dwell clock.
    Clock mapping example
    Example mapping for the default configuration.
  • Disable/enable VOP
    Turn on and off the detectors high-voltage supply.
  • Disable/enable dummy clock markers
    By default the firmware will not generate dummy clock markers for frame/line/dwell clocks. However, for debugging purposes, the internal generation of dummy markers can be activated with this toggle.
  • Check for updates
    Forces an online check for a new software version.
  • Help
    Opens this online documentation portal.
  • Quit
    Closes the software and reduces the SPAD operating voltage to a save condition.

Live view

Live view

The live view tab shows a graphical representation of the current photon counts on the 23 SPAD pixels. The view is adjusted proportionally to the brightest pixel, which is completely white. A black—red—yellow—white colour scale shows the intensity variation over the array. Clicking on one of the pixels in the live view will disable the pixel's visual output. Hovering over any of the pixels will reveal its current count rate in counts per second (cps) in the bottom status bar. Otherwise the integrated photon count rate over the whole array will be displayed.

A small version of the live view is also available on the photoncounting and timestamping tabs in the bottom left corners.


Photoncounting

Live view Live view

The second tab provides the photoncounting capabilities of the system. On the left is a control panel to setup the parameters for the measurements that are printed in the window on the right. The measurement progression is indicated in the bottom status bar. The following options are available:

  • Classical button
    Set the measurement window for classical single-shot intensity measurements.
  • Scanning button
    Set to scanning mode, this mode allows to continuously measure with the help of the provided line / dwell clocks on the systems SMA connectors. This mode does not function without a line clock!
  • Integration time
    Set the measurement integration time either in milliseconds for classical operation mode, or microseconds for scanning operation mode.
  • The following options are only available in scanning operation mode:
    • Frames
      Set the number of frames.
    • X
      Set the number of pixels or dwells in a single line.
    • Y
      Set the number of lines.
    • Ext. dwell clk checkbox
      Enable the use of the external dwell clock provided through the SMA connector and override the internal integration time.
    • Ext. frame clk checkbox
      Enable the use of the external frame clock provided through the SMA connector. The scan will wait at the beginning of each frame for the rising edge of the frame clock.
    • Live view checkbox
      Enables the live view. In this mode, the system will continuously take a new scan and display the image, until the stop button is pressed.
    • Image checkbox
      Enable the conversion of the raw data to a set of images.
    • Raw data checkbox
      Process and print/save the raw data in text format.
  • Save checkbox
    Saves the measurements to a file or an image. A folder data/counters is created in the run directory and files are saved with the name Run_classicalXXX.txt, Run_scanningXXX.txt or IMGXXX-YY.png. XXX denotes the run iteration, YY is the pixel number 0—22 and 23 for the combined result. The combined result is always scaled to the highest intensity pixel in the image.
  • Start button
    Launches the chosen measurement.

The standard measurement data is formatted with the first column being the pixel number and the second being the measured counts in the given measurement time. The scanning measurement principle is shown below. If the external frame clock is used, the scan will halt at the beginning of each frame, until the rising edge of the frame clock. The rising edge of the next line clock starts the integration of the first dwell of that line, each consecutive rising edge of the dwell clock increments the dwell counter by one. The final dwell in the line is finished at the rising edge of the dwell clock. At the end of the line, the dwell counter is reset to zero and the system waits until the next rising edge of the line clock. Once the system has integrated the requested number of lines, the frame counter is incremented and the system will wait for the next rising edge of the frame clock (if external frame clock is used) or proceed directly to wait for the next rising edge of the line clock.

Live view

The scanning data is formatted as (Frame number Z, Line number Y, Dwell number X), 23 pixel count values. See below for an example with Z*=2, Y*=64, X*=128.

(0,0,0),1,2,2,3,4,2,3,3,0,0,3,0,1,3,1,2,3,3,0,1,4,3,2
(0,0,1),6,1,1,1,3,3,7,1,1,0,1,1,3,2,2,2,2,3,4,1,3,1,5
(0,0,2),2,2,2,2,3,0,3,5,4,0,1,3,1,2,2,0,2,3,0,0,6,1,4

(1,63,126),0,2,0,4,2,3,2,4,2,0,2,0,2,0,2,1,1,2,1,4,0,2,1
(1,63,127),0,2,1,2,1,3,1,1,1,0,1,3,2,0,1,5,2,1,1,3,6,1,1

The generated image with a size of X* × Y* is displayed on the right hand side of the screen. One can scroll through the frames with the slider on top of the image or play the sequence with the play button. By default, a scaled image with the summation of the pixel counts from all 23 detectors is shown. The generated image for each individual SPAD detector can be displayed by clicking on the pixel in the mini-live view in the left side of the window. When saving, all 23+1 images will be generated in the data/counters folder for each frame.


Timestamping

The third tab gives access to the timestamping capabilities. This interface is adapted according to the detected firmware version. The first system version features coarse (10ns) timestamping. The second has time-to-digital converters (TDCs) with a fine resolution (~10ps).

Coarse counting

Coarse system

The control panel on the left has the following options:

  • Integration time
    Set the measurement integration time in milliseconds. Setting a time equal to zero will start an unlimited time measurement. The measurement can be stopped with a click on the stop button.
  • Pixels to mask
    Set the pixels that are not required, separated with a comma or semicolon: 0,1,2,...,22.
  • Sort data checkbox
    Sorts the timestamps from the detector on the fly to create a time-wise chronological output. The algorithm sorts by both coarse time and fine time (if available) and prioritizes marker data.
  • Image checkbox
    Generate an image for each of the 23 pixels + the combined results (currently the images contain just the intensity information). The 24 images for each frame are written into a new folder data/timers/RunXXX. The combined result is always scaled to the highest intensity pixel in the image. Note that this mode requires a dwell, line and frame trigger to operate successfully. The number of frames will be automatically generated according to the number of detected frame triggers, whereas the following image parameters have to be set:
    • X
      Set the number of pixels or dwells in a single line.
    • Y
      Set the number of lines.
  • Raw data checkbox
    Save the raw data directly in a new folder data/timers/RunXXX.
  • Start button
    Launches the chosen measurement.

The progress of the measurement and the processing of the data is shown in the bottom status bar. The measurements are saved to separate files, split per roughly 50MB file sizes. A folder data/timers/RunXXX is created in the run directory and files are saved with the name dataXXX.txt.

The data is formatted as two columns with the first column being the pixel/marker address, followed by the value of the coarse clock counter. The real-time streaming data is formatted the same.

The pixel/marker addresses have the following meanings:

  • 59 — File header
  • 56 — Reset of the coarse clock counter, only the wraparound data is printed (when the clock starts at zero again)
  • 32 to 54 — Pixel number + 32
  • 18 — USB FIFO overflow, significant loss of data
  • 17 — USB FIFO almost full, send only markers
  • 16 — USB FIFO reasonably empty, resume normal operation
  • 15 — Frame + line + dwell marker
  • 14 — Frame + line marker
  • 13 — Frame + dwell marker
  • 12 — Frame marker
  • 11 — Line + dwell marker
  • 10 — Line marker
  • 9 — Dwell marker

The second column is the value of the coarse clock counter running at 100.8MHz, i.e. this allows to determine the arrival time down to 10ns.

TDC system

The TDC version features additional options compared to the coarse timing version. Main differences are highlighted in this section.

TDC histogram

Additional options in the control panel:

  • TDC setting dropdown box
    The operation of the TDC can be selected here, there are three modes.
    • Calibrate, runs the calibration of the TDCs. Measures the length of the TDC channels and stores them for further measurements.
    • SPAD input, normal operation.
    • Align pixels, requires a synchronous light source, measures the histograms of all pixels and calculates the rising edge offsets in each TDC channel for alignment of further measurements. The table is stored and loaded on startup.
  • Histogram checkbox
    Generate and save a histogram from the measurement data for each pixel (the histogram will update at real-time). The data is saved directly in a new folder data/tdc_hist/RunXXX per pixel as pixXX.txt and the histogram is plotted in the right window. Other pixels can be selected by clicking in the mini-live view on the left. The data is formatted with the first row being the number of counts in that time window. The time axis is saved separately in data/tdc_hist/RunXXX/pixtimeaxis.txt to save space.
  • The following options are only available in histogramming mode:
    • Bin width
      One can set the histogram bin widths to a value different than the default of 10ps.
    • Split dwells checkbox
      Split the histograms for each new dwell. Instead of saving the complete histogram per dwell, only limited information is saved. In the output, the following data is saved per pixel/dwell: total counts, time of the peak in ps, height of the peak, time of the center of mass in ps
  • Image checkbox
    The only difference with respect to coarse timestamping is that the data is now saved in data/tdc/RunXXX.
  • Raw data checkbox
    Save the raw data directly in a new folder data/tdc/RunXXX.

Before the first measurement, the TDC needs to be calibrated. The software is already setup in calibration mode, which can be run by simply clicking the play button.

The data is formatted very similar to that of the coarse counter system, with the following two exceptions:

  • The coarse counter value is now synchronous with the supplied laser clock (instead of being synchronous to the internal 100.8MHz clock).
  • The pixel data has an additional column with the converted TDC result (in picoseconds) with respect to the laser clock.

Settings

Settings Pulsers

The last tab shows the system settings. The top half is divided in 7 boxes:

  • Top left
    Status indication of the USB connection. This is indicated green when the system is connected by USB3. The system can be reinitialized by clicking the reset button. The software gives a warning when the system is not connected with USB3.
  • Top middle
    Speed test for the USB connection. The transfer speed is calculated by transferring the set number of MBs and dividing by the elapsed time.
  • Top right
    Pulse width (i.e. the SPAD dead-time) and pulse distance measurements. On the FPGA, a histogram is generated during the set integration time for the selected SPAD pixel. The data is formatted with the first column being the time in nanoseconds, the second being the number of counts in that time window. The data can be saved with the save button into a file RunXXX.txt in a new data/debug folder. With the default operating voltages, the average pulse width should be in the order of 50ns.
  • Bottom left
    Current operating voltages. The operating voltages can be changed on the fly. Vq will automatically be calculated upon changes in Vex to tune the pixel dead-time to a value in the order of 50ns.
  • Bottom middle (I)
    Current operating temperatures of the FPGA and the PCB on which the sensor is located. Therefore, the PCB temperature should be a good indication of the sensors current operating temperature. Ideally, the sensor temperature should be kept as low as possible. Without air flow, the PCB temperature should be below 40°C.
  • Bottom middle (II)
    Current SMA input frequencies. Shows the current running frequency for the SMA inputs: laser, frame, line, dwell clock.
  • Bottom right
    Status of the remote communication server. The software can be programmed from any capable TCP/IP software package, see the command guide for instructions. The listening port on the localhost can be changed through the dropdown menu.

Remote command interface

The software can be started with the following optional command line arguments. The command line syntax is either SPAD23.exe arg1 arg2 arg3 on Windows or ./SPAD23 arg1 arg2 arg3 on Linux.

  • arg1 is GUI
    Launches the software with the GUI shown (default).
  • arg1 is headless
    Launches the software without the GUI shown. A tray icon is visible in the taskbar.
  • arg2 is options
    Displays the following options in the tray icons context menu: show, hide, quit (default in headless mode).
  • arg2 is no-options
    No context menu available for the tray icon.
  • arg3 is the user defined TCP/IP port
    Select a port of free choice. The software will confirm that it is listening on the chosen port. This value will default to 9999 when unused (or the value stored from a previous run).

For example to start the software without a GUI and with a context-menu in the tray icon on windows, execute in the command line: SPAD23.exe headless options

To also specify a custom TCP/IP port, e.g. 2500, we execute on windows, in the command line: SPAD23.exe headless options 2500

The software can be operated over TCP/IP with a simple command protocol. The software is listening for new remote users on the PCs localhost port 9999 by default. This port can be changed on the settings tab. The following sections list the available commands and show some programming examples.


Command guide

All commands start with capital characters, followed by its parameters. Parameters indicated in triangle brackets <> should be replaced by a numerical value, parameters in square brackets [] should be replaced by a string. Commands can be separated by a line feed \n, so multiple commands can be send at the same time.

  • Classical intensity measurement
    I,<measurement time in ms>
    Command returns the intensity data from the 23~pixels. It is a list of 23 lines with on each line <pixel nr.>,<pixel counts>.
  • Scanning intensity measurement
    C,<measurement time in us>,<frames>,<X-elements>,<Y-elements>,<external frame clock>
    CI,<measurement time in us>,<frames>,<X-elements>,<Y-elements>,<external frame clock>
    CS,<measurement time in us>,<frames>,<X-elements>,<Y-elements>,<external frame clock>
    If <measurement time>=0, the external dwell clock is used.
    <external frame clock> 0 for no use of external clock, 1 to wait for external frame clock.
    Command C returns a stream of the pixel counts for each position in the scan.
    Command CI returns the paths to the stored images. The software will store 23 non-scaled images for each pixel and the combined result for each measured frame.
    Command CS returns a stream of the images. Each dwell will be represented by a single byte in the returned stream. 22 non-scaled images will be returned per scanned frame.
  • Timestamping measurement
    T,<measurement time in ms>
    Command returns the path to the stored data files.
  • Additional timestamping and TDC commands:
    • Set pixels to mask
      T,m,[pixels]
      [pixels] is a semicolon separated string with the pixel numbers to mask, e.g. 2;10;18.
    • Enable or disable the data sorting
      T,s,<enable>
      <enable> 0 for disable, 1 for enable.
    • Enable or disable the raw data saving functionality
      T,r,<enable>
      <enable> 0 for disable, 1 for enable.
    • Enable or disable the image generation functionality
      T,i,<enable>
      <enable> 0 for disable, 1 for enable.
    • [TDC version] Enable or disable the histogram functionality
      T,h,<enable>
      <enable> 0 for disable, 1 for enable.
    • [TDC version] Set the bin widths of the histogram
      T,hx,<bin width in ps>
    • [TDC version] Split the histogram by dwells
      T,hs,<enable>
      <enable> 0 for no splitting, 1 for splitting enabled.
    • [TDC version] Perform pixel alignment
      T,a,<measurement time in ms>
      Command returns the alignment values.
    • [TDC version] Perform a new calibration
      T,c,1
      Command returns when calibration completed.
    • [TDC version] Check if the TDC is calibrated
      T,v,1
      Command returns the state of the system's calibration.
  • Timestamping measurement in real-time streaming mode
    S,<measurement time in ms>
    Command returns a list of the timestamps in real-time. Format is string-based:
    [TDC version] <pixel nr.+32 / marker nr.>,<coarse counter value>,<TDC value>
    [Base version] <pixel nr.+32 / marker nr.>,<coarse counter value>
    SB,<measurement time in ms>
    Command returns a list of the timestamps in real-time. Format is binary-based:
    [TDC version] 1-byte for pixel nr.+32 / marker nr. | 2-bytes (forming a 16-bit integer) for the coarse counter value | 3-bytes (forming a 24-bit integer) for the TDC value
    [Base version] 1-byte for pixel nr.+32 / marker nr. | 4-bytes (forming a 32-bit integer) for the coarse counter value
    SH,<measurement time in ms>,<histogram bin width in ps>,<split dwells>
    <split dwells> 0 for no splitting, 1 for splitting the histogram at each dwell.
    Command returns the histograms; time-axis on the first line, followed by each pixel histogram on a new line.
  • Pulse width or distance measurement
    P,<measurement time in ms>,<pixel>,<pulse mode>
    <pixel> is the SPAD pixel number from 0 to 22.
    <pulse mode> is either 0 for pulse width, or 1 for pulse distance.
    Command returns the histogram data.
  • Calibrate the system
    CALIB,<mode>
    <mode> is 0 for breakdown voltage calibration.
    Command returns when the measurement has completed.
  • Get current operating temperatures and running frequencies
    R
    Command returns the temperatures of the FPGA and PCB in °C. It also returns the measured frequency of the laser, frame, line and dwell clocks. Format is <FPGA temperature>,<PCB temperature>,<laser clock frequency>,<frame clock frequency>,<line clock frequency>,<dwell clock frequency>
  • Get system information
    D
    Command returns information about the FPGA, the software, firmware and hardware versions and enabled features.
  • Set the path for the software to save data and images
    D,[dir]
    Command returns the folder path if it exists.
  • Set voltages V,<Vq>,<Vex>
    <Vq> range is 0.4 to 0.9V. This value will be ignored in case the automatic tuning of Vq is active.
    <Vex> range is 4 to 9V.
    Command returns a confirmation if changes are successful.
  • Get current operating voltages V
    Command returns the voltages in V. Format is <Vq>,<Vex>

Programming examples

Some simple programming examples are available for download below. The following files are available:

  • octave_tcp_count.m
    Octave / Matlab script to show the basic measurement principle of classical counting. The script will execute multiple measurements with different SPAD operating voltage VOP and create a plot of voltage versus counts.
  • octave_tcp_pulsewidth.m
    Octave / Matlab script to calculate the pulse width from the histogram send through TCP/IP.
  • python_tcp_count.py
    Python script to show the basic measurement principle of classical counting. The script will execute multiple measurements with different integration times and create a plot of integration time versus counts.
  • python_tcp_scanning.py
    Python script to stream out the scanning intensity data and reconstruct the combined image.
  • python_tcp_scanning_binary.py
    Python script to stream out the scanning images and reconstruct the combined image. This should be faster than the standard text stream, but the data is binary, so less intuitive.
  • python_tcp_stream.py
    Python script to stream out the timestamps and process them.
  • python_tcp_stream_binary.py
    Python script to stream out the timestamps in a binary format and process them. This should be faster than the standard stream, but the data is packed less intuitively.
  • python_tcp_stream_histogram.py
    Python script to stream out the histograms directly after the measurement is completed.

Support

If this documentation doesn't answer your questions, feel free to send us an e-mail.


Changelog

Version history with most notable changes.

Version 1.70

  • Added Dark theme (enable from the menu).
  • Added Option to sort timestamps on the fly.
  • Added Remote command to enable/disable timestamp sorting.

Version 1.67

  • Added Ability to select timestamping pixel images (like in scanning mode).
  • Improved Intensity shutdown triggering behaviour.
  • Improved Scanning image generation.
  • Improved Timestamping image generation.
  • Improved Error handling on scanning measurements through TCP/IP.

Version 1.66

  • Added Check if TCP/IP port is occupied and select next one in case.
  • Added Ability to start with custom TCP/IP port from the command line.
  • Added Ability to reset intensity shutdown through TCP/IP.
  • Added Ability to separate remote commands with line feed for improved reliability.
  • Improved Intensity shutdown information now also through TCP/IP.
  • Fixed New version pop-up overlapping with splash screen.
  • Fixed Crash on scanning image generation.
  • Fixed TCP/IP port selection.

Version 1.65

  • Added Indication of errors in the TCP/IP stream.
  • Improved Visual display during breakdown calibration.
  • Fixed Timestamping coarse/fine time generation.

Version 1.64

  • Added USB fifo overflow marker for timestamping.
  • Improved USB speed-test accuracy.
  • Fixed Non-default path setting ignored.
  • Fixed Coarse timestamping jumps.

Version 1.63

  • Fixed Timestamping bug generating improper markers.
  • Fixed TDC data in binary streaming mode consists of 7 bytes instead of 9.
  • Fixed Minor bugfixes.

Version 1.62

  • Added Headless mode for the GUI.
  • Fixed Minor bugfixes.

Version 1.61

  • Added Remote command for breakdown calibration.
  • Added Remote command to stream histograms through TCP/IP.
  • Added Reporting if the timestamping measurement loses the sync with the laser clock. This could lead to incorrect TDC data.
  • Added Ability to change the histogram time bin widths.
  • Improved Processing performance of timestamping data.
  • Changed Split dwells on histogram generation to just report the maximum and CMM values.
  • Changed Raw output of timestamping data to be formatted like streaming data.

Version 1.60

  • Added Breakdown calibration.
  • Added Remote command for system information.
  • Added Remote command to read current operating voltages.
  • Improved Handling of high intensity shutdown.
  • Improved Behaviour when new measurements are requested.
  • Added Ability to stop ongoing acquisitions by sending the remote command again.

Version 1.57

  • Increased Buffer size for timestamping measurements.
  • Added Ability to stop the timestamping measurements at any time.

Version 1.56

  • Fixed TDCs not calibrating properly on some systems.

Version 1.55

  • Fixed Systems not properly starting.

Version 1.54

  • Improved Performance of scanned imaging.
  • Fixed Minor bugfixes for new hardware flavoured devices.

Version 1.53

  • Changed Online documentation platform.
  • Fixed Intensity shutdown.
  • Fixed Set save path crashes.

Version 1.52

  • Added Live view ability to scanning mode.
  • Added Stop acquisition possibility to scanning mode.
  • Added Stream images capability for scanning mode (see CS command).
  • Disabled Dummy marker generation by default.
  • Fixed Minor bugfixes for new hardware flavoured devices.

Version 1.51

  • Added Frame sync clock ability to scanned acquisitions.
  • Fixed Scanning read-out.
  • Fixed Minor bugfixes.

Version 1.5

  • Improved Updated the core system for better support on modern systems and high-DPI displays.
  • Improved FPGA compatibility detection.
  • Fixed Minor bugfixes.

Version 1.46

  • Improved Behaviour of VOP disable.
  • Improved Behaviour of timestamping mode without trigger.
  • Added Support for new hardware flavour devices.
  • Added Command to change the saving directory.
  • Fixed Minor bugfixes.

Version 1.45

  • Changed Scanning intensity measurement streams data to TCP/IP.
  • Changed Pulse width measurements stream data to TCP/IP.
  • Fixed Improved saving speed of images/large text files.
  • Fixed Minor bugfixes.

Version 1.44

  • Added Option to disable VOP.
  • Added Option to disable the internal clock markers.
  • Added Option to reroute clock markers from different SMAs.
  • Added Option to align the 23 TDC channels.
  • Added Command to check TDC calibration status.
  • Changed TDC coarse counter to be in sync with laser clock.
  • Fixed Minor bugfixes, changed continuous intensity measurements to scanning measurements.

Version 1.43

  • Added Scrollbars to control panels.

Version 1.42

  • Added Binary streaming of timestamps through TCP/IP.

Version 1.41

  • Fixed Bug in the image generation.
  • Fixed Bug in the timestamp streaming.

Version 1.4

  • Changed Dummy save behaviour to only record overflows.
  • Changed Remote commands and their returns.
  • Fixed Tweaked timestamping memory consumption.
  • Fixed Small tweaks to the output of continuous counting measurements and image per frame generation.
  • Added Basic image generation in timestamping mode. Needs dwell/line/frame clocks.

Version 1.34

  • Changed Default VOP operating voltage.
  • Fixed Bug in the timestamp streaming through TCP/IP.

Version 1.33

  • Changed TDC histogram time-axis saved separately to save space.
  • Added TDC timing diagram examples.
  • Added Possibility to switch the remote interface port.

Version 1.32

  • Changed Marker representation as being a negative value.
  • Fixed Fine timestamp value printed as absolute instead of relative to laser clock.

Version 1.31

  • Fixed Regression in timestamping marker generation.

Version 1.3

  • Added Support for the new TDC method.
  • Added Support for firmwares with new headers.
  • Added Image per pixel generation in continuous counting mode.

Version 1.23

  • Fixed Regression of setting automatic Vq.
  • Fixed Check for TDC calibration validity.

Version 1.22

  • Added Real-time streaming of timestamps through TCP/IP.
  • Added Automatic setting of Vq dependent on operating voltage VOP
  • Added Frequency detection of the SMA inputs (firmware versions newer than 20201209 only).
  • Fixed General bugfixes and performance tweaks.

Version 1.21

  • Added Continuous timestamping mode (if measurement time = 0).

Version 1.2

  • Improved Improvements to the continuous counting mode.
  • Added TDC laser frequency selection.

Version 1.1

  • Improved GUI handling and DPI scaling.
  • Improved General TDC system enhancements.
  • Added High light intensity shutdown.
  • Added Histogram per dwell generation.
  • Added Restore settings on restart.
  • Added Daily check for a new version.
  • Fixed Continuous counting mode image generation.

Version 1.0

First full release with multithreading support and a remote control option:

  • Updated All USB communication is executed in a separate thread, as well as the data processing.
  • Fixed Timestamping data is saved directly to file.
  • Fixed Timestamping data is separated per pixel.
  • Fixed Timestamping module features a dummy count to keep a high datarate and allow to detect coarse counter overruns.
  • Improved Timestamping with improved read-out scheme to process events up to 90Mcps.
  • Fixed Voltage control in firmware with range safeguarding and default startup values.
  • Added Remote command interface allows for easy control from external software.
  • Added Features TDC readout options in the timestamping tab in case a TDC system is detected.
  • Fixed General bugfixes and GUI improvements.

Windows 64-bit + Linux 64-bit.

Version 0.1

Initial release with basic functionalities:

  • Live view of the current SPAD photon count rates.
  • Photon counting, both single shot/continuous.
  • Coarse timestamping with 10ns time separation.
  • Pulse width measurements.
  • Voltage control.
  • Temperature reading.

Windows 64-bit only.