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.