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
    • SPADlambda_standalone_win64
  2. Install the drivers and the Visual C++ Redistributables from the Drivers folder.
  3. Connect the two USB-B cables to the detector and the PC. Ideally to separate USB host controllers for the best performance.
  4. Connect the 5V power plug to the detector's master power jack. Always use only one power supply for the detector.
  5. Run the software by double clicking the SPADlambda.exe in the SPADlambda_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
    • SPADlambda_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 two USB-B cables to the detector and the PC. Ideally to separate USB host controllers for the best performance.
  4. Connect the 5V power plug to the detector's master power jack. Always use only one power supply for the detector.
  5. Run the software by double clicking the SPADlambda executable in the SPADlambda_standalone_linux64 folder. Alternatively, open a terminal in the SPADlambda_standalone_linux64 folder and execute: ./SPADlambda. The application might require execution permissions, set this with sudo chmod +x SPADlambda
  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 SPADλ system contains a sensor with 320 SPAD pixels arranged in a single line. The spacings and dimensions of the pixels are highlighted in the drawings below for both the linoSPAD and spectroSPAD chips. Pixel0 is oriented towards the top of the box (towards the connectors). The linoSPAD chip is partly unconnected on the bottom and top halves (96 pixels on each side).

SPADlambda's linear grid arrangement

System

The system is housed in a solid aluminium enclosure measuring 147×105×50mm. It is powered from a single 5V adapters and data can be read from the two USB-B ports. The SMA connectors on the top of the package are shown in the figure below. They have the following functionality:

  • Laser clock input
    Frequency: 1—120MHz (10—80MHz for gating operation), high impedance, maximum input voltage: 5.0V.
  • Dwell clock input
    High impedance, maximum input voltage: 5.0V.
  • Line clock input
    High impedance, maximum input voltage: 5.0V.
  • Frame clock input
    High impedance, maximum input voltage: 5.0V.

Acceptable input voltage ranges: 0—2.5V, 0—3.3V and 0—5.0V (LVTTL/TTL). The minimum detectable pulse width for the frame trigger is 12ns and for the gate trigger roughly 3ns.

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:

SPADlambda mechanical drawing

The system, FPGAs + sensor, consumes in idle operation mode around 8.5W. This is mainly static power consumed by the FPGA resources. Under measurement operation, the power consumption increases to maximum 10W. 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. There are two fans installed inside the system to cool down the sensor.


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 GUI to standard/dark theme
    Switch between a dark themed interface and the classical theming.
  • Toggle live view to linear/log scale
    Switch between the display of the count rate in the live views in a linear or logarithmic fashion.
  • Toggle live view to a line/adjustable size
    Switch between the display of the live view as a single line (reality) or an adjustable snake to fill the screen.
  • Toggle histogram to linear/log
    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.
  • Disable/enable VDD
    Turn on and off the detectors power supplies.
  • Disable/enable fans
    Turn on and off the fans inside the enclosure.
  • 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 manual.
  • Quit.
    Closes the software.

Live view

SPADlambda live view

The live view tab shows a graphical representation of the current photon counts on the 320 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. If no pixel is hovered over, 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

SPADlambda classical (single-shot) counting SPADlambda scanning (imaging) counting

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.
  • 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--319 and 320 for the combined result.
  • Start button
    Launches the chosen measurement.

The standard measurement data is formatted with the first and third column being the pixel number and the second and fourth 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. 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.

SPADlambda principle of executing a scanned measurement

The scanning data is formatted as (Frame number Z, Line number Y, Dwell number X), 320 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 non-scaled image with the summation of the pixel counts from all 320 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 320+1 images will be generated in the data/counters folder for each frame.


Timestamping

The third tab gives access to the timestamping capabilities. The system has time-to-digital converters (TDCs) with a fine resolution (~10ps).

SPADlambda picosecond fine timestamping for time-resolved detection

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.
  • 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.
    • 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.
    • SPAD input
      Normal operation.
  • 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.
  • 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
  • Raw data checkbox
    Save the raw data directly in a new folder data/tdc/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/tdc/RunXXX is created in the run directory and files are saved with the names data_masterXXX.txt and data_slaveXXX.txt.

The pixel data is formatted in 3 columns. From left to right they represent:

  • The pixel/marker address.
  • The coarse counter value, synchronous with the supplied laser clock.
  • The converted TDC result (in picoseconds) with respect to the laser clock.

The pixel/marker addresses have the following meanings:

  • 239 — File header
  • 234 — Reset of the coarse clock counter, only the wraparound data is printed (when the clock starts at zero again)
  • 0 to 170 — Pixel number
  • 247 — USB FIFO almost full, send only markers
  • 253 — USB FIFO reasonably empty, resume normal operation
  • 231 — Frame + line + dwell marker
  • 230 — Frame + line marker
  • 229 — Frame + dwell marker
  • 228 — Frame marker
  • 227 — Line + dwell marker
  • 226 — Line marker
  • 225 — Dwell marker

The real-time streaming data is formatted very similar (addition of master/slave identification), see the Command guide.
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.


Settings

SPADlambda settings SPADlambda pulse width measurement for dead-time estimation

The fourth 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 master or slave reset buttons. The software gives a warning when the system is not connected with USB3.
  • Top middle (I)
    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 middle (II)
    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 10ns.
  • Top 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.
  • Bottom left
    Current operating voltages. The operating voltages can be changed on the fly. However, one should be careful with high values of Vq and Vex. We recommend to keep them equal or below 0.8V and 9V, respectively. Vhold and Vrecharge control the SPAD dead-time and duration of the active recharge pulses, respectively. We set them to be default 0.8V and 0.3V. Vmono shortens the SPAD recharge pulse, with a lower value shortening more, default at 1.0V. Vdiode controls the maximum amplitude of the SPAD pulse, this should be kept to around 1.6V. Vctrl creates an RC-filter to shorten the SPAD pulse, this value can be kept around 0.2V.
  • Bottom middle
    Current operating temperatures of the FPGA, the interposer (main) PCB and the chip PCB on which the sensor is located. Therefore, the chip 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 50°C.
  • Bottom right
    Current SMA input frequencies. Shows the current running frequency for the SMA inputs: laser, frame, line, dwell clock.

Gate configurator

SPADlambda gating settings to reduce sensitivity window

[only available for the spectroSPAD-based systems] The gate configurator allows the gating to be set up. By default, the gate is always open, allowing photons to be processed by the electronics and read-out. The gate can be enabled by checking the gate enable box. The gate width and offset can be changed with the sliders under the gate settings. A visual display of the gating shape is shown in the bottom part of the screen. A gate sequence starts at the rising edge of the laser clock by generating a recharge pulse to reset the detector and enable it for new photons to be detectable. After the recharge pulse, the gate is opened, allowing photons impinched on the detector to be processed by the logic. Gating requires an input frequency anywhere in between 10 and 80MHz.


Mask configurator

SPADlambda masking to disable certain pixels

[only available for the spectroSPAD-based systems] The mask configurator allows pixels in the array to be physically disconnected. This is useful for the elimination of for example very noisy pixels.
To assign a pixel to be masked, either click on the pixel, or enter the pixel number in the box. To enable the mask, one clicks the program button to save the configuration, after which it is loaded onto the FPGA automatically. An old configuration can be loaded with the load from file button. The final button on the right resets the current mask. The masking might not always work perfectly when the gating is enabled.


Remote command interface

The software can be started with the following optional command line arguments. The command line syntax is either SPADlambda.exe arg1 arg2 arg3 on Windows or ./SPADlambda 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: SPADlambda.exe headless options

To also specify a custom TCP/IP port, e.g. 2500, we execute on windows, in the command line: SPADlambda.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 320 pixels. It is a list of 160 lines with on each line <pixel nr.>,<pixel counts>,<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>
    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 the path to the stored raw data file.
    Command CI returns the paths to the stored images. The software will store 320 non-scaled images for each pixel and the combined result for each measured frame.
  • Timestamping measurement
    T,<measurement time in ms>
    Command returns the path to the stored data files.
  • Additional timestamping and TDC commands:
    • 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.
    • Enable or disable the histogram functionality
      T,h,<enable>
      <enable> 0 for disable, 1 for enable.
    • Set the bin widths of the histogram
      T,hx,<bin width in ps>
    • Split the histogram by dwells
      T,hs,<enable>
      <enable> 0 for no splitting, 1 for splitting enabled.
    • Perform a new pixel alignment measurement.
      T,a,<measurement time in ms>
      Command returns when the pixel alignment has been completed.
    • Perform a new calibration
      T,c,1
      Command returns when calibration completed.
    • 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:
    <master/slave boolean>,<pixel nr. / marker nr.>,<coarse counter value>,<TDC value>
    SB,<measurement time in ms>
    Command returns a list of the timestamps in real-time. Format is binary-based:
    1-byte for master/slave boolean | 1-byte for pixel nr. / 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
    Please also see the look-up table for the conversion of the master/slave pixel number to the actual pixel number for S/SB modes.
    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 for both master/slave parts; master/slave time-axis on the first line, followed by each pixel histogram on a new line, second part follows with again master/slave time-axis and the remaining pixels.
  • Pulse width or distance measurement
    P,<measurement time in ms>,<pixel>,<pulse mode>
    <pixel> is the SPAD pixel number from 0 to 319.
    <pulse mode> is either 0 for pulse width, or 1 for pulse distance.
    Command returns the path to the stored data file.
  • 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 master temperature>,<FPGA slave temperature>,<main PCB temperature>,<chip PCB temperature>,<laser clock frequency>,<frame clock frequency>,<line clock frequency>,<dwell clock frequency>. For systems with a humidity sensor, the format is: <FPGA master temperature>,<FPGA slave temperature>,<main PCB temperature>,<main PCB temperature 2>,<chip PCB temperature>,<relative humidity in %>,<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 the fan speed
    F,<speed>
    <speed> is 0 for disabled fans, 1 for enabled fans at full-speed.
    Command returns a confirmation if fan speed change is successful.
  • Enable/disable dummy clock markers
    N,<enable>
    <enable> is 1 for activating dummy markers, 0 for disabling dummy markers.
    Command returns a confirmation that markers are enabled or not.
  • Enable/disable systems power
    POW,<enable>
    <enable> is 1 for activating VDD, 0 for disabling VDD.
    Command returns a confirmation of the new power state.
  • Set voltages V,<Vq>,<Vhold>,<Vrecharge>,<Vmono/Vdiode>,<Vctrl>,<Vex>
    <Vq> range is 0.2 to 0.9V.
    <Vhold> range is 0 to 1.2V.
    <Vrecharge> range is 0.2 to 0.3V.
    <Vmono/Vdiode> range is 0 to 1.9V.
    <Vctrl> range is 0 to 0.6V.
    <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>,<Vhold>,<Vrecharge>,<Vmono/Vdiode>,<Vctrl>,<Vex>
  • Program the gate G,<gate enable>,<gate width>,<gate offset>
    <gate enable> 1 to enable gating, 0 to disable gating.
    Command returns a confirmation if the new gate parameters are set.
  • Program the mask from a file M,[full path to file]
    Command returns a confirmation if mask programming is complete.
  • Close the software QUIT
    Closes the software and brings the detector in a safe operating regime.

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.
  • 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_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 0.61

  • Fixed Double TDC peaks at low frequencies.
  • Fixed Minor bugfixes.

Version 0.60

  • Added Support for humidity sensing (only new devices).
  • Added Dark theme (enable from the menu).
  • Added POW command to enable / disable VDD.
  • Added N command to enable / disable dummy clock markers.
  • Fixed Sync between master/slave for TDC measurements.
  • Fixed Missing histograms through TCP/IP.
  • Fixed Intensity shutdown changing certain parameters.

Version 0.53

  • Added Ability to select timestamping pixel images (like in scanning mode).
  • Improved Intensity shutdown triggering behaviour.
  • Improved Scanning image generation.
  • Improved Timestamping image generation.
  • Increased Range of gate width.
  • Fixed TCP/IP port selection.

Version 0.52

  • 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.
  • Improved Detection of master/slave FPGAs.
  • Fixed Gating at low frequencies (below 18MHz).
  • Fixed Crash on start-up for certain laser frequencies.

Version 0.51

  • Improved USB speed-test accuracy.

Version 0.50

  • Added Headless mode for the GUI.
  • Added Remote command for breakdown calibration.
  • Added Remote command for system information.
  • Added Remote command to stream histograms through TCP/IP.
  • Added Remote command to read current operating voltages.
  • 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.
  • Added Split dwells on histogram generation, this reports the maximum and CMM values.
  • Added Ability to stop ongoing acquisitions by sending the remote command again.
  • Improved Processing performance of timestamping data.
  • Changed Raw output of timestamping data to be formatted like streaming data.
  • Fixed spectroSPAD gating.

Version 0.40

  • Added Breakdown calibration.
  • Improved Startup behaviour and device handling.
  • Improved Handling of spectroSPAD.
  • Improved TDC allocation for spectroSPAD.
  • Fixed TDC channel multiplexing.
  • Fixed Gated functionality for spectroSPAD.
  • Fixed Masking functionality for spectroSPAD.

Version 0.36

  • Fixed Summed image in scanning mode.
  • Improved Performance of scanned liveview acquisitions.

Version 0.35

  • Increased Light intensity shutdown threshold to 11 Mcps.

Version 0.34

  • Fixed Performance issues in scanning read-out.

Version 0.33

  • Improved Intensity scanning read-out.
  • Fixed Inaccessible timestamping tab.

Version 0.32

  • Changed Online documentation platform.
  • Fixed Scanning measurements multi-frame.
  • Fixed Set save path crashes.

Version 0.31

  • Changed Disabled dummy marker generation by default.
  • Added Frame sync clock ability to scanned acquisitions.
  • Added Live view ability to scanning mode.
  • Added Stop acquisition possibility to scanning mode.
  • Fixed Scanning read-out.
  • Fixed Intensity shutdown recovery.
  • Fixed TDC malfunctioning.

Version 0.3

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

Version 0.22

  • Added Store custom save path for the data.
  • Fixed Minor bugfixes.

Windows 64-bit + Linux 64-bit.

Version 0.21

  • Fixed Small fixes for scanning intensity mode.

Version 0.2

  • Added Compatibility modes for both linoSPAD and spectroSPAD ICs.
  • Fixed Minor bugfixes.

Version 0.1

Initial release with basic functionalities:

  • Live view of the current SPAD photon count rates.
  • Photon counting, both single shot/scanning.
  • Fine timestamping with 10ps time resolution.
  • Pulse width measurements.
  • Gating configuration.
  • Mask configuration.
  • Voltage control.
  • Temperature reading.
  • Frequency on SMA reading.
  • Over-exposure protection.
  • Remote command interface.

Windows 64-bit only.