Sequencer Parameters

(to be finished)

Diego Venegas-Vargas, Cinyu Zhu - July 2025

Where and how to change sequencer parameters

in config file:

in _config.py, we setup master, sequencer parameters for each image

(not sure I like this here since we can technically change all the seq variables which are more than the ones listed here)

"Image_Name": {
    "EXPOSURE": int(500* 1E8),   # Exposure time in seconds
    "NROW":    1600,   # Active rows
    "NCOL":    6300,   # Active columns
    "NPBIN":      1,   # Parallel binning
    "NSBIN":      1,   # Serial binning
    "NDCM":       1,   # Single-skip count
    "NVWAIT":     0,   # Extra wait cycles
     # "NVWAIT":     400, # extra wait before readout
    "BOOLCLR":    1,    # Clear between frames
    "NCOLPRE": 0   # columns to skip over
},

the sequencer file (where?)

if edit deeper in the sequencer file, to apply the changes

change_sequencer.py

send out specific commands via terminal:

python sendrun.py --to ccd106 "daq.daemon.send_command('CEX')"

python sendrun.py --to ccd110 "daq['TG_L'] = 7.9"

These commands are used to acknowledge any of the flags if set to true:

python sendrun.py --to ccdpool "daq.command('ALC')"

python sendrun.py --to ccdpool "daq.command('ARF')"

python sendrun.py --to ccdpool "daq.command('ASR')"

send of commands in python scripts

Send('daq["TG_L"] = 7.9')

(both TG_A_L and TG_B_L would be changed)

(see environment and dependent libs in examples like erase_epurge_180K.py)

(note that apostrophes are formatted differently in terminal and in python)

What does each parameter mean?

Note that when using the numbers to specify the pixels/rows/columns, sometimes they are referring the physical pixels on CCD, other times the pixels in the image. And they could have different meanings: i.e. if the binning = 10, 300 physical ccd pixels = 30 image pixels.

Parameters for readout

  • "EXPOSURE": int(180* 1E8) $Exposure time in seconds, here is 180s. The clock frequency is 100MHz, therefore * 1E8

  • "NROW": 30, # Active rows. Number of rows (rows in the image) you wanted to take after the pixels you skip (row1-300, but since npbin = 10, so only 30 rows in image

  • "NCOL": 200, # Active columns. Number of columns (in image) you wanted to take after the pixels you skips, here is 6001-6200, as no horizontal binning and NCOLPRE = 6000)
  • "NPBIN": 10, # vertical binning , P=Parallel, 1 pixel in data = 10
  • "NSBIN": 1 # horizonal binning, S=Series
  • "NDCM": 500, # number of skips in readout
  • "NVWAIT": 400, # extra wait cycles before readout
  • "BOOLCLR": 1, # Clear between frames
  • "NCOLPRE": 6000, # don't read the first 6000 rows (the pixels in CCD)
  • "delaySWL": 350 # ?

parameters for clockings

  • 'CEX' = external clock # This makes the board run on external clock, left orange LED light on ACM off
  • 'CIN' = internal clock # This makes the board run on internal clock,left orange LED light on ACM on
  • 'GSS' = get system status
  • 'GSF' = get system flag # there are three flags that must be set to false unless there is an issue.

  • TG_A(B)_H(L): high and low voltage for transfer gate (what does A or B means?). When high = low, no clocking at the transfer gate.

// NOT SURE IF MY MEMORY WORKS BUT: - V3(2, 1)_A(B)_L(H)  =  vertical clocks - H3(2, 1)_A(B)_L(H)  =  horizontal clocks

// some flags that I don't know - 'ALC' = ? - 'ARF' = ? - 'ASR' = ?