Kermit Software
[ Overview | Hardware Setup
| Software Setup | GUI: Main Window
| GUI: Motor Control | GUI: Other
Windows | Troubleshooting ]
Overview
Kermit relies on several interoperating programs to operate:
- kermitui is a graphical user interface written in Tcl/Tk
- leachd handles the low-level communications with the Leach
box electronics and thence the detector
- soundserver plays sounds in response to various system
events.
- traffic is a back-end communications server used to link
the various components of the system together.
- ds9, from SAO
R&D, is used for quick-look image display.
These all run on the computer sauron, a Sun Ultra10. The file
~/kermit.conf in the operator account
is used to configure Kermit.
The GUI provides automatic electronic
logging of all exposures, motor
moves, and other important events, including support for free-form
user comments. This is meant to completely replace the need for taking
a paper logfile during the night.
The electronics rack supports hardware coadding, in which multiple
images are read from the chip and added together in hardware before
being transferred to the computer. The detector can be read out into the Leach electronics at up to 32 Mpix/s
(i.e. 1 MHz per channel times 32 channels). However, data can only be
transferred from the Leach electronics over the fiber into the
computer at 1.5 Mpix/s. A full-frame CDS image is 8 megapixels, and
thus takes about 5 seconds to read into the computer. For this reason
it is highly recommended to use the hardware coadding feature rather
than reading many exposures to disk, particularly for shorter exposure
times.
Starting the Kermit Software
On sauron, log in as operator. In an xterm, run
starttraffic. This will start the traffic and leachd
servers, if they are not already running. If they're already running,
it will just print an error and exit without screwing anything up, so
feel free to type this without worry. These programs will print
diagnostic output to this xterm as they run, so leave this window open
somewhere.
In a different xterm, run kermitui. This will start
the graphical user interface and initialize the camera hardware.
Also start ds9. New images will be automatically displayed
in ds9 as they are taken.
Note: Sometimes the ds9 process hangs. If this
happens, run fixds9 to kill the hung one and start a new ds9.
GUI: Main Window

The controls in the main window are grouped loosely as follows. At
the bottom of the window are text entry boxes for the FITS file
headers and log files. At the top left of the window are the most
frequently used settings and the actual Expose button, while to the
top right are less frequently changed settings relating to array
readout.
Each entry field in the GUI is associated with one of the [Set]
buttons, usually adjacent to it.
When you make changes to any of the values in the GUI, the appropriate
set button will change color to indiate that changes have been made
but not yet taken effect.
Press the [Set] buttons to apply changes. The two large
[Set] buttons are equivalent; both apply all array readout
configuration settings - there are two just for convenience. A button
or field will turn red to get your attention if it is critical that a
parameter be set, or if there is a problem with the selected options.
Exposures are controlled by four buttons, as follows:
- [Expose]: Initiate an exposure (or a series of exposures if
NExpose > 1). A
countdown on screen will indicate exposure progress.
- [Abort Exp]: Stop the current exposure, even in the middle
of things. Warning! There is some chance this may crash things; it's
not fully debugged yet.
- [Stop Series]: If NExpose is > 1 (see below), then this
button will allow the current exposure to finish but will stop the
system from continuing to take more exposures. Unlike Abort, this
one's guaranteed safe.
- [Reset DSPs]: This will completely reset the DSPs in the
readout electronics. If things get hosed, this is your best bet for
fixing them.
- In addition there is a checkbox marked "display". If this is
checked, and a copy of ds9 is open, then each new image file will be
automatically loaded into that ds9.
The exposure settings you can control are as follows:
- Exposure Time: This sets the integration time that the
detector will pause for. WARNING: Currently the
actual integration time for CDS reads is the Exposure Time plus the
time it takes to read out the array. I'll fix this once we've
stabilized what the pixel readout time is. The software records in the
FITS header both the Exposure Time and what it thinks the true
integration time was.
The Exposure Time can be input in either milliseconds or seconds. To toggle between these options, just click
on the Exposure Time label and the label will change to reflect the
exposure time units and convert the current input time to the new
units.
- NReads: Number of CDS reads
- NCoadds: Number of hardware coadds to take per image
- NExpose: Number of separate exposures to take and write to
disk.
- Exposure Number: Kermit files are named ker0000.fits
through ker9999.fits. This parameter is the number for the next file to be
written to disk. This sets itself automatically on startup and should
rarely need to be changed by the user.
- OBJECT: Name of target. Written to FITS header.
- COMMENT: Arbitrary comment for FITS header.
- PROGRAM: Title of observing program for FITS header.
- Log: Any message entered here will be recorded into the
electronic logfile.
- nresets: Number of times to reset the chip between frames.
- nframes: Number of separate frames to read out at once. Can
only be set to values greater than 1 for subarrays <=512 in size.
- subarray:size: Size of sub-array to read out, in pixels.
Must be a power of two between 64 and 2048. For configuring subarrays,
the blue region on the chip map (just to the right of the "Set"
button") will indicate the exact portion of the detector that will be
used with the current settings.
- subarray:coadder: Which coadder to read the subarray from.
The 32 readout channels are read out by 8 coadder boards (4 adjacent channels
each). This architecture places certain restrictions on the subarray
position such that you cannot position a subarray completely
arbitrarily.
- subarray:offset: The number of rows into the selected coadder
that the subarray region should start.
- Pixel readout rate: 4 microseconds vs. 2 microseconds per
pixel. Right now only 4 microsecond mode is known to work properly.
Right now the actual pixel time is something else,
probably around 8 us or so. Changes and tweaks to this await the
detector being cold for testing.
There is also a "4 us RESET" mode. This mode acts like the 4 us mode,
except the RESET line is asserted throughout. While completely useless
for actual observations, this mode allows detector read noise tests
while the detector is at room temperature.
- Readout Mode: The algorithm used for reading the chip out,
as follows:
- Single Read: Reset, integrate, read Nreads times.
- CDS (Correlated Double Sampling): Reset, read Nreads times,
integrate, read a second Nreads times. Subtract the total of the first reads
from the second.
- CDS, no subtraction: Same as CDS, except the subtraction is
not performed and both sets of reads are written to disk. The file
written is saved as a FITS file of dimension [N,N,2].
The data disk status (space available, usage, etc.) is shown at the
bottom of the window. You can update this information by pressing the
Update button.
Note: All data are automatically logged to a file called
logsheetYYMMDD (e.g. logsheet010816). A new logsheet is created with a
new date only when kermitui is stopped and restarted.
The kermitui File menu contains only two items:
Source... and Quit.
- File | Source... allows a Tcl file to be loaded into kermitui. This is
not normally an option used by observers, but is a way to load new
dithering scripts into kermitui.
- File | Quit is the option to quit
kermitui. When you click on Quit, a dialog box (see below) will appear
asking if you wish to save the state of kermitui. It is highly
recommended that you respond Yes, so that information contained in the
kermitui, Exposure Palette, and Motor windows is saved.
The Config menu contains a number of options for kermitui:
AO Communication, Sound, Set exptime sets readoutmode,
Set exptime resets ncoadds/nexps, Show array power,
Show Readout/Subarray Config.
- Config | Play Sounds on (checkbox red) connects kermitui to the soundserver
software. Default is for Sound to be on, however it should be turned off if
you do not want the sound effects or if the sound server is not running.
- Config | Set exptime resets ncoadds/nexps If this option is
checked, then changing the exposure time will reset NCoadds and
NResets to their default values of 1.
- Config | Abort saves partial exposure data. If checked, then when an
exposure is aborted, the chip will be read out anyway and the data
from the partial exposure saved to disk. If unchecked, then the
aborted frame is just silently discarded.
- Config | Show Reset DSPs button. If checked, this enables the Reset
DSPs command. Checked by default.
- Config | Show Readout/Subarray Config. If checked, this
enables the various subarray and readout mode commands. Checked by
default.
GUI: Motor Control

The Motor Control window controls the filter wheel, pupil and M2
mirror slides, and detector focus stage.
For each motor, the current position and a desired new position are
displayed.
You move the the motors to the Desired positions by pressing the Move
button; one motor at a time will move into position. Stop will
instantly stop all motion, but will leave the motor controller in a
confused state and will require re-homing the motors before moving
again. Update refreshes the display of status for each motor.
This will usually happen automatically but feel free to press Update
if for some reason you suspect the display is outdated.
The Filter, Pupil, M2 and Focus
labels are grey
when the Current and Desired filter wheel positions are the same. The labels
are pink when the Current and Desired filter wheel positions are different.
The Current positions (or last recorded positions, if
Status unknown) is listed for each wheel.
The Desired or next position is specified using the
drop-down lists or the first three motors, and by entering a number
between -8700 and 0 for the focus motor.
You can home the first three motors by selecting Home from the list.
To home the focus stage, choose "HomeFocus" from the Config menu (see
below).
The Config menu has a few additional motor-related commands and
settings.
- Config | Dark moves the motors to the proper filter positions
for taking dark exposures.
- Config | HomeFocus homes the focus stage.
-
Config | Enable motorname Jog enables the Jog
functionality for motor motorname. The jog command lets you
move each motor an arbitrary number of counts in either direction. It is
disabled by default for all motors to prevent accidental jogging.
- Config | Advanced | Stop Motors allows you to stop the motors if
you experience a problem with motor motion.
- Config | Advanced | Enable Move allows to to make the Move
button active if it has been disabled (usually it gets disabled if there was
a problem moving motors or homing motors). It is best to make sure any
problems are fixed before clicking Enable Move.
GUI: Exposure Palette
The Exposure Palette lists a number of standard exposure times in
milliseconds and number of reads. When you click on an exposure time
it updates the information in the main ircalui window. The numbers to
the right of each button are the number of images (including number of
coadds) taken with that
exposure time and number of reads. When you input a custom exposure
mode, it will be added to the exposure palette automatically after its
first use.
The buttons are labelled using a unique identifying string for each
exposure mode, known as the "mode string". The format of a Kermit mode
string is as follows:
- T_ms for an T millisecond exposure using the full detector
and default read and reset settings.
- subX-Y-Z:T_ms for a T millisecond exposure using a
subarray X by X pixels in size starting on coadder
Y, row Z.
- subX-Y-Z:T_ms:N:R for a T millisecond exposure, with
N CDS reads and R resets, using a
subarray X by X pixels in size starting on coadder
Y, row Z.
If NReads and NResets are their default values of 1, they are not
shown in the exposure palette.
The exposure palette is sorted by subarray size then exposure time.
- File | Take Darks brings up the Dark
Widget
for taking dark exposures.
-
Config | Rebuild adds exposure times and configurations that
have
been used to the Exposure Palette.
-
Config | Edit brings up a separate Edit window
listing all the current entries in the Exposure Palette. Checked (red)
checkboxes indicate that the exposure will be included in the Exposure
Palette, unchecked exposure times will be deleted. When finished
editing, click OK button. If you remove an exposure time from
the Exposure Palette, there are a few ways to re|insert it into the
Palette. Easiest is to take an exposure of that type and
Rebuild the Exposure Palette. If the desired exposure is in one
of the default lists (see commands below), you can reload the list.
If you have already taken an expousre of the desired exposure time,
just
Rebuild the Palette and it should reappear.
-
The following three commands import a list of exposure times into the
Exposure Palette. Exposure times that you have used that aren't on
the default list are retained in the Exposure Palette.
-
Config | Add default Short Exps loads a default set of short
exposure times into the Exposure Palette.
-
Config | Add default Long Exps loads a default set of long
exposure
times into the Exposure Palette.
-
Config | Add default All B loads the list of all exposure times
for which Reference Biases are available.
-
Config | Zero sets the number of exposures taken for each
exposure time to zero. This is advisable at the beginning of every
night (or observing run) so that when running the Dark Widget at the
end of the night (or run) will only try to take darks of the exposures
that were actually used during the night.
GUI: Dark Widget
The Dark Widget looks at what exposures have been taken on the Exposure
Palette and calculates how long it will take to do 10 darks of 10 coadds
of each exposure type. You can modify the number of darks and number of coadds
until you reach an acceptible total time for the darks (most observers try
to pare down the list of dark exposures so they take less than three hours
of darks).
Make sure the filter wheels are in the Dark position
(motor - Config - Dark). Then press Go
and it will start a script for taking the specified dark images.
GUI: Analog Offsets
The readout electronics apply an offset to the voltage read from the
detector before digitizing that voltage. The purpose of this is to
ensure that the voltage swing is located within the bounds of the -10
V to 0 V input range of the ADCs. The necessary offset to achieve this
depends on detector readout mode, pixel clocking time, and detector
temperature. The Analog offsets window allows you to set these
offsets.
Once you've set the offsets as desired, press the Set button to
apply the changes to the detector.
You can load one of three default sets of offsets by pressing the
"Fast", "Slow", or "Warm" buttons. These load offsets appropriate for
readouts at 4 us, 2 us, and 4us with the detector at room temperature.
The offsets for each of the 32 readout channels can be
edited individually. You can also set all the offsets to one value
using the Change All
button. Enter a value in the input field next to the button and then
press it.
The best way to determine reasonable offsets is to put the detector in
single read exposure mode. Take an exposure and examine it in ds9. If
the exposure is uniformly 0, the offsets need to be raised. If the
exposure is uniformly 65535, the offsets need to be lowered.
This page last modified by Marshall on 2004 March 03.