}

The Echelle ICC commands

This is a reverse-engineered command set for the Echelle ICC. The only sources of information are what one sees from Remark commands and from some stubs in the old MC hub. I include example return keys seen from one unrepresentative command attempt.

This is not complete, but represents what I have tested and partially understand on 2003-10-09. (R. Owen added tcheck keywords 2007-06-28)

auto: x y
I haven't tried this command. RFL states that it is for generating test images. X images of Y milliseconds, maybe?

Example keywords:

bias:
Take a bias.
closeshutter:
Close the shutter.

Example keywords: ECHELLETXT="shutter closed"

dark: n
Take an n millisecond dark exposure.
integrate: n
Integrate for n milliseconds.
getx: $h $x
Read out some rows? Never used.
gety: $w $y
Read out some columns? Never used.
getxy: $x $y
XXXX
lampoff: n
Turn off one of the calibration lamps. See lampon
lampon: n
Turn on one of the calibration lamps. There are currently two lamps installed, for which n is:
  1. The ThAr lamp. The LampT keyword gives the state.
  2. The Quartz lamp. The LampW keyword gives the state.
ln2stat:
Queries the autofill system on the saddlebag.

Example keywords: ECHELLETXT="LN2STAT LN2_FILL ON FILLTIME 240_MINUTES NEXT_FILL 115 NORM_RETRIG 1 FILL_MODE COLD WARM_FILLTIME 30_MINUTES WARM_FILLS 2 WARM_RETRIG 6 # AUTOFILL SETUP EMPTY DEWAR_0 1 0 DEWAR_1 1 0 ok "

move: mirror [efilter [gcfilter [grating [slitFocus [CCDtip [CCDtilt [CCDFocus]]]]]]] N
Move one or more of the instrument motors. All motor positions are integers whose ranges are given below. Only the leftmost motors need to be specified, but the command needs to be constructed very carefully. If a motor is specified but is not to be moved, the corresponding argument must be 1000000 (one million). At the end of the specified motor positions, the correct number of motors that were specified must be appended -- that is the N argument. If N is not appended, the ICC might crash. If an incorrect value is given for N, unpredictable and potentially harmful moves might occur.
A perhaps safer scheme is to always specify all eight motor positions. You still must append '8' for the last argument. e.g. move: N 2 N N N N N N 8 to
The motors are:
mirror
Move the calibration mirror in (1) or out (0). If the mirror is in, it directs light from the calibration lamps onto the slit.

The Mirror keyword gives the motor state.

efilter
Select one of the filters between the calibration lamps and the slit. There are six positions (1..6); all but one are Open. Position 2 is a Blue filter.
The calibration filter wheel has never been reconfigured.

The EFilter keyword gives the motor state.

gcfilter
Select one of the filters between the slit and the slitview camera. There are six positions (1..6):
  1. Clear
  2. ND1
  3. ND2
  4. ND3
  5. Red
  6. Blue

The slitviewer filter wheel has never been reconfigured.

The GCFilter keyword gives the motor state.

grating
I don't know just what this moves and am not even sure that there is a motor to control. But it is an internal motor, and should never be moved by a remote observer. The range is -1000000 .. 999999.

The Grating keyword gives the motor state.

slitFocus
Piston the slitmask in and out. This is an internal motor, and should never be moved by a remote observer. The range is -1000000 .. 999999.

The SlitFcs keyword gives the motor state.

CCDTip
Tip the CCD. This is an internal motor, and should never be moved by a remote observer. The range is -1000000 .. 999999.

The TipMtr keyword gives the motor state.

CCDTilt
Tilt the CCD. This is an internal motor, and should never be moved by a remote observer. The range is -1000000 .. 999999.

The TiltMtr keyword gives the motor state.

CCDFocus
Piston the CCD. This is an internal motor, and should never be moved by a remote observer. The range is -1000000 .. 999999.

The CCDFcs keyword gives the motor state.

openshutter:
Opens the shutter.

Example keywords: ECHELLETXT="shutter open"

pause:
Pauses an integration.
Warning: If no integration is running, pauses something and evidently confuses the exposure logic.
readccd:
XXXX
resume:
Resumes a paused integration.
Warning: If no integration is running, resumes something and evidently wedges the ICC.
setuttime: $t
For debugging? Surely NTP takes care of this.
status:
Request all available status keywords.

Example keywords: CAMERA="idle" NROWS=2068 NCOLS=2128 INTMODE="idle" INTSTATUS="idle" IMAGETYP="" Mirror=1 EFilter=1 GCFilter=3 Grating=-1 SlitFcs=3200 TipMtr=7000 TiltMtr=5000 CCDFcs=-1000 LampT=0 LampF=0 LampW=0

stop:
Stops an integration and immediately reads out the CCD.
tcheck:
Queries the state of the temperature control loop.

Example keywords: ccdTemps=-121,-118; ccdHeaterVoltage=3.1
where the temperatures are the set point and measured temperature (in C, I assume).

time:
XXXX
version:
XXXX
where:
Return motor and lamp status keywords. See the documentation for move: and lampon: for some info about the keywords.

Example keywords: IMAGETYP="" Mirror=1 EFilter=1 GCFilter=3 Grating=-1 SlitFcs=3200 TipMtr=7000 TiltMtr=5000 CCDFcs=-1000 LampT=0 LampF=0 LampW=0