{composition-setup}
{toc:maxLevel=5}
h2. New Features in ScanImage 3.7
* Compatibility with latest Matlab (2010b) and [DAQmx (9.2.2)|http://joule.ni.com/nidu/cds/view/p/id/2215/lang/en].
* Compatibility with X series boards, for the second DAQ board (for Pockels and/or more clock signals)
* DAQ Toolbox no longer required
* Automatic power adjustment during stack collection
* Exports line/frame/pixel clock signals
* _Next Triggering_ feature
* Continuous file streaming supported for stacks
* Enhanced _User Functions_ capability
* Enhanced _Fast Configurations_
h2. Upgrading from ScanImage 3.5 or 3.6
* 3.7 has a [new model INI file|http://openwiki.janelia.org/wiki/display/ephus/ScanImage+INI+File+Overview] , which is quite thoroughly documented. You should make a new standard.INI file based on this model, following the comments.
(/) It is recommended to create a separate folder(s) for your INI/CFG/USR files under 3.7, to keep them separate from data files for any older version you may also maintain installed.
* The _Shift_ and _Scan Amplitude_ values that previously referred to X/Y now refer to Fast/Slow. A new control in *Configuration* dialog indicates mapping from X/Y to Fast/Slow axes. Adjusting this allows you to rotate the image 90 degrees.
(i) The INI file contains the separate mapping of X/Y to DA Channels 0 & 1, which is fixed on initialization.
* The _Scan Amplitude_ values are replaced by _Scan Angular Range_ values, in the *Configuration* dialog. It now represents the _full_ (peak-peak) angle of the scan range, specified in optical degrees, rather than _half_ angle as in 3.6 (and earlier verisions). Therefore new values will generally be _twice_ the _Scan Amplitude_ values in ScanImage 3.6/3.5.
(i) The model INI file has improved/expanded the explanation of the _voltsPerOpticalDegree_ variable. Please read carefully, and provide feedback if this is not clear!
(!) If the _voltsPerOpticalDegree_ value in 3.7 differs compared to your setting in 3.6 (i.e. because it's clearer now and therefore set correctly), you will need to further adjust your _Scan Angular Range_ values compared to previous _Scan Amplitude_ values.
(/) In general, the new default _Scan Angular Range_ value of 15 should not often require modification by most users. If you see the field-of-view is different (smaller) than you're used to, look closely at the _voltsPerOpticalDegree_ value/notes in the INI file.
* It is recommended to copy your old CFG files to a separate folder for 3.7, and then load and re-save each of them individually. This will make your CFG files 3.7 compatible.
(!) Note the _ScanAmplitude_ values will not be applied in 3.7. The _Scan Angular Range_ values should be adjusted before saving each CFG file.
* 3.7 requires the [clock synchronization|http://openwiki.janelia.org/wiki/display/ephus/Wiring+Your+System+%28r3.6%29#WiringYourSystem%28r3.6%29-ClockSync] between boards (main board and Pockels) be on *RTSI 7*, not *RTSI 6* as with ScanImage 3.6.
(/) If running both 3.6 & 3.7, you should connect both *RTSI 6* and *RTSI 7*(or connect all, with a ribbon cable).
(/) If running both 3.5 & 3.7, no change is required
* You *can* run 3.7 on same machine that is running 3.6 or older version
(/) Typically, your newer Matlab will set path to 3.7 and older Matlab will set path to older version
(/) If running both 3.5/3.6 & 3.7 on same machine, [DAQmx 8.8|http://joule.ni.com/nidu/cds/view/p/id/1085/lang/en] is required. This is earliest version of DAQmx supported by 3.7, while 3.5/3.6 doesn't run on 8.9 or higher.
(i) Note that X series boards are only supported from 9.0 forward.
h2. Guide to New Features
h4. Frame/Line/Pixel Clock Export
{center}!ExportedClocks.bmp!{center}
{tip}This feature is most powerful with new [X series boards|http://www.ni.com/xseries/]. Future ScanImage versions may be able to get more functionality out of other/earlier board families, but this maycannot be notguaranteed beas a top development priority.{tip}
* Each clock output requires a National Instruments [counter/timer channel|http://zone.ni.com/devzone/cda/tut/p/id/9376#toc3]. These must be specified in the INI file -- _frameClockBoardID_, _frameClockCtrID_, _lineClockBoardID_, etc.
(i) Note that Ctr0 on the primary board (_acquisitionBoardID_) is reserved by ScanImage, and not available for frame/line/pixel clocks
(/) [X series boards|http://www.ni.com/xseries/] have 4 counter/timer channels, while other board families have only 2 counter/timer channels
* Finite clock generation is only possible with [X series boards|http://www.ni.com/xseries/]. When using a non-X series board, additional clock 'ticks' may appear after acquisition is finished, because the counter output is actually stopped in software.
* Consequently, pixel clock generation -- which requires finite clock generation -- is only possible with [X series boards|http://www.ni.com/xseries/] at this time.
* For Frame/Line clocks, the edge _not_ specified by *Polarity* signifies the end of Frame/Line. For Pixel clock, the edge _not_ specified by *Polarity* is controlled by *Pixel Fraction*.
(i) The 'end' of Frame/Line indicates that acquisition has ended for current line/frame, and acquisition for new line/frame has not begun. This occurs at the scanner flyback or turnaround time at end of line, or end of last line in frame.
(i) The Pixel clock handling is different because there are no gaps between pixel periods; thus the location of the 'stop' edge must be user specified (via *Pixel Fraction*).
{center}!ExportedClocks.bmp!{center}
* *Enable*: Each clock can be enabled/disabled. (*CFG* setting)
* *Phase Shift (us)*: Each clock signal can be phase shifted relative to the true start of frame/line/pixel. Only a positive phase shift (delay) is supported at this time. (*CFG* setting)
* *Polarity*: Specifies if rising or falling edge signals the start of frame/line/pixel.
* *Pixel Fraction*: Specifies at what fraction of the pixel period to generate the edge _not_ specified by the *Polarity*. Value must be < 1, to allow edge specified by *Polarity* at start of subsequent pixel period. (*CFG* setting)
* *Export Clocks on FOCUS*: If false, the clock signals are only generated during *GRAB/LOOP* acquisitions, not *FOCUS* acquisitions. (*USR* setting)
(/) Settings labeled as *CFG* settings are saved as part of ScanImage [Configuration|http://openwiki.janelia.org/wiki/pages/viewpage.action?pageId=8684238]. Different configuration files can save different values of this setting. This is useful, for instance, if you want the frame clock to be exported only for certain experiments, but not others.
* The pixel clock capability is only available with [X series boards|http://www.ni.com/xseries/] support finite output
*
h4. _Next Triggering_ Feature
*& _Next Triggering_ allows external trigger (e.g. from behavior apparatus) to stop an acquisition, or to start a new file with advanced number without stopping acquisition
h4. Power Adjustment During Stacks
* based on configurable/measurable length constant
h4. Continuous File Streaming Improvements
* Continuous file streaming is now supported for stacks
* Continuous file streaming is now the only mode. A configurable running data buffer is maintained still, for online processing needs.
h4. Enhanced User Functions capability
* Numerous events to which user functions, with optional modulating arguments, can be bound.
h4. DAQ Toolbox No Longer Required
* - instead uses a Matlab class which wraps the NI DAQmx library. This approach is faster and more comprehensive (e.g. allows access to [counter/timer|http://zone.ni.com/devzone/cda/tut/p/id/9376#toc3] features)
|