#
# CAMERA_MODEL 	"Hamamatsu ORCA-flash4.0"
#

# camera description, for camera selection GUI and apps
# camera_class should be the manufacturer's name
#
camera_class:                  "Hamamatsu"
camera_model:                  "ORCA-flash4.0, 16-bit, 5-tap"
camera_info:                   "2048x2048 (freerun)"

# actual width/height (total pixels) and depth of data from camera
# to only grab high 8-bits, set depth to 8 but leave extdepth set
# to actual depth, and adjust shift and mask accordingly
#
width:                         2048
height:                        2048
depth:                         16
extdepth:                      16

# camera link data path register bits (argument is a 2-digit hex value):
# sets the expected input data size and #taps
# bits 0-3: number of bits per pixel minus 1
# bits 4-7: number of taps minus 1
#
CL_DATA_PATH_NORM:              4f

# camera link config register bits
# (arg is a 2-digit hex value, hexval shown in parens):
# 0 (01): RGB (set for RGB (except bayer). Applies to older/PCI, ignored on newer/PCIe)
# 1 (02): ignore data valid (on for most cameras though not all)
# 2 (04): generate an FVAL on every LVAL or vactv lines if bit 4 is set, for line scan cameras
# 3 (08): disable ROI (rarely set)
# 4 (10): generate an FVAL after every vactv lines if bit 2 is also set, for line scan cameras
# 5 (20): data valid invert (rare)
# 6 (40): RGB swap -- swap red/blue
# 7 (80): enable roi pad: if ROI > img output, will pad missing bytes
#
CL_CFG_NORM:                   02

#fast re-arm of acquisition. auto re-arm board when FVAL detected low
CL_CFG2_NORM: 40

# htaps/vtaps: if multiple taps, set either htaps or vtaps to match the number
# of taps and whether they represent horizontal or vertical. Most common it's
# htaps (that is, pixels in parallel taps are from pixels next to each other on
# the same line) For example with a 2-tap 8-bit camera (CL_DATA_PATH_NORM: 17)
# where the two taps are from adjacent pixels on the same line, you would uncomment
# htaps and leave it at 2.
#
htaps:		5
#vtaps:		2

# interlace method
# only for interleaved and some dual tap cameras
# determines how image is deinterleaved for display -- WORD_INTLV is only
# one of many available methods -- see *_INTLV in pdv_dependent.h and
# camera configuration guide for more
#
method_interlace:	WORD_INTLV_MIDTOP_LINE

# the following directives can be used to send us any serial commands
# necessary to put the camera to put it into the expected state.
# serial_init takes a colon-separated list of ASCII commands, and should
# be used for cameras that use an ASCII serial command set. serial_binit
# takes space-separated groups of hex bytes, for cameras that use binary
# serial instead of ASCII; each group gets send as a separate command with
# a serial_read of the response (thrown away) between each.  Examples of
# commands that should be sent include those that put the camera into the
# desired trigger mode (e.g. continuous, triggered, controlled), #bits and
# taps, etc. The idea is to set the camera mode to match how the rest
# of the config directives are setting up the FG board.
#
#serial_init: "CMD 1:CMD 2:CMD 3"
#serial_binit: "00 11 aa bb" or "001122 aabbccddeeff"

serial_init: "AMD N:SMD N:ACT I:SPX 1:PEC O"

# Serial termination Character
# defines the termination character(s) that will be sent after each
# serial command sent by the library subroutine pdv_serial_command, including
# those sent by serial_init (above).  If no serial_term is specified, the
# default, carriage return character (0d hex) will be sent. If some other
# sequence is needed, uncomment serial_term and insert the appropriate hex
# byte(s) separated by spaces.  serial_term only applies to EDT's
# ASCII-specific serial directives (e.g. serial_init) and library subroutines
# (pdv_serial_command),
# NOT binary ones (serial_binit, pdv_serial_binary_command).  To specify no
# serial terminator, call serial_term with an empty list <>
#
serial_term: <0d>

# Serial wait character
# The pdv_serial_wait() subroutine in EDT API normally waits for a fixed period
# of time before returning, to make sure it has received all of the characters
# in a given respnse. If the camera has a unique character that terminates every
# response, serial_waitc can be used to tell pdv_serial_wait to return immediately
# when that character is seen, speeding up serial initialization and the serial
# command/response sequence in general. The argument to this directive is hexidecimal
# value; therefore if the last character of every response is a newline, specify 0a ;
# if it is a carriage return, specify 0d and so on.
#
#serial_waitc:  0a

#Serial baud rate
serial_baud: 38400

# Mode Control register (hex)
# Hex value -- the left-most nibble determines which CC line is toggled for
# the EXPOSE pulse (if method_camera_shutter_timing is other than AIA_SERIAL).
# The right-most nibble determines which of the CC lines are held permanently
# high or low.  Typically this is set automatically by merthod_camera_timing
# (to 10 hex for triggered and MCL modes, 00 otherwise).  However if your
# camera needs it set otherwise, use this directive to do so.
#
# MODE_CNTL_NORM: 10

# Region of Interest start and area (decimal)
# vskip/hskip is how many pixels to skip before ROI, vert and horiz
# vactv/hactv is how many pixels to DMA to memory after skip, vert and horiz
# if full frame is desired, you can leave these commented out or make them the
# same as the camera width/height. hskip/hactv can also be used to trim columns
# for cameras that output non-4-byte-aligned data to multiple of 4 bytes (in
# width) to ensure proper operation of windows applications that depend on
# 4-byte alignment, e.g. pdvshow
#
#hskip: 0
#hactv: 2048
#vskip: 0
#vactv: 2048

Need a custom hardware solution?

EDT engineers work directly with customers to design, prototype, and deliver custom computing hardware for mission-critical applications.