CTN-005

Shutter Timing and Motion Profiles#

Abstract

A description of how the shutter timing and motion profiles are calculated, along with the corresponding events that are recording in the raw data FITS headers.

Shutter Hardware/Firmware/Software Overview#

Shutter Timing Diagram#

Shutter timing diagram

This diagram assumes a single snap visit. (Multi snap visits have not been tested, and should be assumed to be non functional.) The timing of the shutter blade motions, including the time between them (the exposure time), are controlled by the shutter PLC. The timing of the readout is under control of the DAQ/sequencer. All other timings are under the control of the CCS software.

The following events appear along the time axis

Table 1 Shutter timing events#

Event

Type

Description

takeImages

command

The takeImages command is received from the observatory

CLEARING

stateChange

The state change event issued by the camera to indicate it has started clearing the CCDs.

INTEGRATING

stateChange

The state change event issued by the camera to indicate the CCDs have started integrating.

OPENING

stateChange

The shutter has started to open

OPEN

stateChange

The shutter is fully open

ShutterMotionProfileOpen

LFA

The shutter motion profile event for the shutter opening is published (and sent to the Large File Annex (LFA))

CLOSING

stateChange

The shutter has started to close

CLOSED

stateChange

The shutter is fully closed

READING_OUT

stateChange

The CCDs have started reading out

ShutterMotionProfileClose

LFA

The shutter motion profile event for the shutter closing is published (and sent to the Large File Annex (LFA))

takeImages done

command

the takeImages command complete

QUIESCENT

stateChange

The readout is complete

Shutter Motion Profile#

For every shutter motion (open or close) the camera publishes a ShutterMotionProfile file. This file is a json file sent to the summit Large File Annex (LFA). The file consists of the following major sections.

  1. A header which includes, the OBSID, the motion start time, which blade is moving (PLUSX or MINUSX), the beginning and end position, and whether this is an open or close motion.

  2. Raw position/time measurements of the leading edge of the shutter blade, derived from the motor encoder (encodeSamples).

  3. Raw position/time measurements of the leading edge of the shutter blade, derived from the hall sensors and magnets on the shutter blades (hallTransitions). Each measurement in this set also includes the hall sensor triggered (each sensor will be triggered multiple times during a single motion since there are multiple magnets on each shutter blade), and whether the sensor switched on or off.

  4. The result of fits to each set of raw measurements (fitResults)

Selected lines from a typical json file is shown below.

 1{
 2  "fileName" : "MC_O_20250603_000104_shutterMotionProfileOpen.json",
 3  "fileType" : "shutterMotionProfile",
 4  "obsId" : "MC_O_20250603_000104",
 5  "version" : 1.0,
 6  "motionProfile" : {
 7    "startTime" : {
 8      "tai" : "2025-06-04T04:34:49.622",
 9      "mjd" : 60830.190852100495
10    },
11    "startPosition" : -0.04982454087312493,
12    "targetPosition" : 750.76,
13    "endPosition" : 751.478014768,
14    "targetDuration" : 900,
15    "actionDuration" : 1009,
16    "side" : "MINUSX",
17    "isOpen" : true,
18    "encodeSamples" : [ {
19      "time" : {
20        "tai" : "2025-06-04T04:34:49.685",
21        "mjd" : 60830.190852835774
22      },
23      "position" : 1.3804746111211152
24    }, {
25      "time" : {
26        "tai" : "2025-06-04T04:34:49.716",
27        "mjd" : 60830.190853188746
28      },
29      "position" : 4.479532949104306
30    }, {
31      "time" : {
32        "tai" : "2025-06-04T04:34:49.734",
33        "mjd" : 60830.19085340295
34      },
35      "position" : 7.795028114670976
36    } ],
37    "hallTransitions" : [ {
38      "time" : {
39        "tai" : "2025-06-04T04:34:49.685",
40        "mjd" : 60830.190852833446
41      },
42      "position" : 1.5496924696847336,
43      "sensorId" : 3,
44      "isOn" : true
45    }, {
46      "time" : {
47        "tai" : "2025-06-04T04:34:49.715",
48        "mjd" : 60830.19085318735
49      },
50      "position" : 4.334842463490579,
51      "sensorId" : 2,
52      "isOn" : false
53    }, {
54      "time" : {
55        "tai" : "2025-06-04T04:34:49.734",
56        "mjd" : 60830.190853399225
57      },
58      "position" : 7.6250811804,
59      "sensorId" : 3,
60      "isOn" : false
61    } ],
62    "fitResults" : {
63      "Model" : "ThreeJerksModelv1",
64      "hallSensorFit" : {
65        "ModelStartTime" : -0.30787086189118956,
66        "PivotPoint1" : 0.715728522962684,
67        "PivotPoint2" : 0.7276974082294309,
68        "Jerk0" : 3149.6282341651336,
69        "Jerk1" : 406856.53191779216,
70        "Jerk2" : -36818.075110723454
71      },
72      "motorEncoderFit" : {
73        "ModelStartTime" : -0.3085662579551603,
74        "PivotPoint1" : 0.7124202518598863,
75        "PivotPoint2" : 0.7242879532337521,
76        "Jerk0" : 3111.9506064113784,
77        "Jerk1" : 421036.09928319475,
78        "Jerk2" : -36688.921589064106
79      }
80    }
81  }
82}

Measured Shutter Time (SHUTTIME)#

The measured shutter time (SHUTTIME) written to the FITS header is derived from the fits to the hall sensors for the cossesponding open and close motion profiles.