LDSS3/FNAL Commands


2017-04-11: added "ABORT" command (Exposure Control).
2014-06-03: initial version

This document describes the commands necessary to replace the current CCD-server/DSP with the LabView/FNAL system.

  • Exposure Parameters
  • Readout Parameters
  • Exposure Control
  • Readout Control
  • Housekeeping
  • Engineering and Troubleshooting

    Protocol

    A simple client (LDSS3-GUI) / server (LabView module) protocol:
  • All communications are initiated by the LDSS3-GUI.
  • Commands are terminated by a (0x0a) character.
  • Responses are terminated by a (0x0a) character.
    (Exception: raw data transfer will be in binary format with a known length and does not require a terminating character).
  • All commands will be immediately answered by a response from the LabView server, ie. there are no blocking commands.
    Exception: 'SKIP_LINE'.
    Unless otherwise noted below, the response to commands should be one of
    "OK" (eg. after START, if the exposure was successfully started)
    "ERROR some text" (eg. after START, if the was a problem)

  • Exposure Parameters

    EXPTIME #
    sets the exposure time '#' in milli-seconds [0-8200000].
    Note: It is currently not possible to change the exposure time during an exposure.

    EXPTYPE {light,dark}
    light/dark exposures (shutter open/closed during the exposure).

    Readout Parameters

    OVERSCAN #
    sets the number of overscan pixels at the end of each readout line.
    Note: The overscan pixels are binned, ie. the ldss3gui must double the number of 'overscan' pixels when the binning factor is '2' in the x-direction.

    BIASLINES #
    sets the number of bias lines after the last line of pixel data. The number of bias lines is independent of the binning in the y-direction.

    BINNING {1,2} {1,2}
    sets the binning in the x- and y-direction.
    Note: The x-binning affects the number of prescan- and overscan-pixels. The y-binning does not affect the number of biaslines. The 'ldss3gui' will hide this behaviour, by stripping the prescan pixels from the output (FITS) files and requesting double the number of overscan pixels when binning in the x-direction is '2'.

    GAIN {low,high}
    sets the readout gain.

    SPEED {slow,fast,turbo}
    sets the readout speed.

    Exposure Control

    WIPE {yes,no}
    yes: clean the array when a "START" is received (default).
    no: don't clean (this is only required for modes like Nod&Shuffle).
    The cleaning takes about 2 seconds.

    START
    starts an exposure. The LabView system opens the shutter (if used), waits the desired exposure time and closes the shutter. The readout is not started automatically; this is necessary for exposure modes (eg. Nod&shuffle) that require multiple exposures without reading the CCD.

    PAUSE
    closes the shutter and halts the exposure timer.

    RESUME
    opens the shutter (if in 'light' mode) and re-starts the exposure timer.

    STOP
    Stop current exposure, ie. close the shutter and stop the exposure timer.
    The data may be readout or wiped.

    ABORT
    Abort a "stopped" exposure.
    Note: must be sent after "STOP" if no readout is desired.

    STATUS
    Return: # {open,closed} {idle,exposing,paused}
    #: the current exposure time in milli-seconds
    {open,close}: the shutter status
    {idle,exposing,paused}: the FNAL system status

    SHUFFLE {+,-}#
    clock the array '#' lines (in either direction) without reading. This allows to take 'Nod&Shuffle' exposures.
    Note: This command blocks until all lines have been processed and then returns "OK" (?.? ms per line).

    Readout Control

    READ_LINE #
    initiates the CCD readout of '#' lines and transfers the raw data as 16-bit unsigned integers (little endian).
    The data is multiplexed by interleaving the 2 amplifiers. Each line starts with 6/BINX prescan pixels per amplifier.
    Example (BINX=1, 'n' image data pixels [D] per amplifier [A] and 'm' pixels overscan):
      P1A1 P2A2 .. P6A1 P6A2 D1A1 D1A2 .. DnA1 DnA2 O1A1 O1A2 .. OmA1 OmA2
    
    Each line takes about 7 ms. (TODO: depends on 'SPEED' parameter)

    SKIP_LINE #
    clocks the vertical register without reading the pixels.
    Note: This command blocks until all lines have been processed and then returns "OK". (0.5 ms per line). TODO: depends on SPEED ?

    READ_FRAME
    readout the entire array (including bias lines) and send the data after wards. Note: This command blocks while the readout is going on.

    READOUTPROGRESS
    returns the 'percent' of data that is already read out during the READ_FRAME command.
    Must be sent on a separate socket.

    Housekeeping

    TEMPERATURE
    returns 2 temperatures from the LakeShore controller
  • TEMPSTGE // CCD stage temperature [C]
  • TEMPNECK // Getter temperature [C]
  • HEATER
    returns the LakeShore heater load [%]. The full range is 2.5 Watts.
  • HEATER // Heater output [%]
  • SETPOINT
    returns the LakeShore setpoint [Celsius].
  • CCDSETP // CCD temperature setpoint [C]
  • ETEMPS
    returns 3 electronic board temperatures
  • TEMPL1 // temperature of master control board in slot 1 [C]
  • TEMPL3 // temperature of clock board in slot 3 [C]
  • TEMPL5 // temperature of video board in slot 5 [C]
  • CCDTEMP
    returns the CCD temperature
  • TEMPCCD // CCD temperature [C]
  • VSUB {?,ON,OFF}
    Switch the substrate voltage on or off. When used with the ? parameter the current state is returned, otherwise "OK".
  • TEMPCCD // CCD temperature [C]
  • Engineering and Troubleshooting

    SHUTTER {open,close}
    open/closes shutter for testing.

    * RESET
      reset the internal state of the LabView server
    
    * FLUSH
      clean array. This runs the same procedure that cleans the array before
      and exposure if the WIPE command is active.