F20 User Manual
F20 User Manual
F20 User Manual
for the
FILMETRICS F20
Thin-Film Analyzer
Revision 7.9.9.0
Copyright 2014 by Filmetrics, Inc.
All Rights Reserved
Welcome
What is the F20 used for?
The Filmetrics F20 is used to measure the thickness and optical constants (n and k) of dielectric and
semiconductor thin films. Measured films must be optically smooth and within the thickness range set
by the system configuration requirements specified in Performance Specifications. Commonly
measured films include semiconductor process films such as oxides, nitrides, resists, and polysilicon,
optical coatings such as hardness and anti-reflection coatings, flat panel display films such as polyimides,
resist, and cell gaps, and the various coatings used in CD and DVD manufacture.
Warning: Accurate measurements require suitable recipe settings and a valid baseline. Improper system setup or
an aged lamp may also lead to errors. It is the users responsibility to ensure that this instrument is being used
properly for its intended purpose. Please contact Filmetrics support for assistance with any questions.
This symbol indicates information or instructions that must be read and carefully followed to prevent
hazards, injury to the operator, or damage to the instrument.
This symbol indicates a potential shock hazard. Areas marked with this symbol should be serviced by a
trained service technician.
This symbol indicates that the product conforms to the WEEE (Waste in Electrical and Electronic
Equipment) Directive 2002/96/EC.
This symbol indicates that the product meets the applicable EU safety, health and environmental
protection directive requirements.
This label indicates the Model Number and Serial Number of the instrument. This information may be
necessary when contacting Filmetrics for assistance.
Disclaimer: Use of this instrument in a manner inconsistent with the information and directions included
in this manual may impair the protections designed into the product resulting in danger to the operator
or damage to the instrument
Installation Location: When deciding on a location for the instrument, ensure that the instrument is
installed in a well-ventilated location. Enclosing the unit, or blocking the vent holes, may impair the
performance of the instrument or damage the internal components.
Cleaning: The need for periodic cleaning of the system is based on the cleanliness of the environment in
which the system is installed. Only the external surfaces are to be cleaned. Cleaning and maintenance of
all internal components is to be performed by a trained service technician. Do not use aerosol, or spray,
cleaners as they may contaminate the sensitive optical surfaces on the instrument.
Before performing any service on the instrument ensure that the main power is disconnected.
Cleanroom, or low lint, wipes should be used to wipe down the system. A mixture of Isopropyl Alcohol
(IPA) and De-ionized Water (DI H2O) at 70% DI H2O: 30% IPA is to be used for cleaning. Undiluted IPA may
be used, if the 70:30 DI and IPA mixture is not available, but extra care must be taken. Avoid using
stronger solvents, such as acetone, as these may compromise the surface finish.
Avoid excessive pressure on any surface when cleaning. Excessive force may bend a component, which
would damage the system, or cause the system to be out of alignment.
Start with the top of the system and work down. Use slow motions, in a straight line, from the back to
the front of the surface being cleaned. Change the cleaning wipe periodically to avoid re-depositing
material back onto the surface being cleaned. Allow all cleaned surfaces to dry completely before
restoring power to the system.
CE Mandated Warnings
Please read the following instructions carefully to prevent potential shock or fire hazards. This manual
should be retained for future use
Bitte lesen Sie die nachstehende Anleitung sorgfltig durch, um Stromschlag und Feuergefahr zu
vermeiden. Diese Betriebsanleitung soll fr spteren Gebrauch sorgfltig aufbewahrt werden.
Preghiamo di leggere accuratamente, le sequenti Instruzioni, per evitare Prossiomi Incendi e Correnti.
The front panels switch is not the power disconnect device. The power cord should be removed after
use.
Der Kippschalter an der Vorderseite unterbricht nicht die Stromzufhrung. Das Stromkabel soll nach
Gebrauch aus dem Gert herausgezogen werden.
Linterutore nella parete frontale non blocca le Corrente. La Corrente viene.
Connect unit only to a properly measured supply. Use only the three wire cord which is provided with
the unit.
Schlieen Sie das Gert nur an eine ordnungsgemss vermessene Stromsversorgung an. Verwenden Sie
nur ein dreiadriges Kabel, wie es auch mit dem Gert ausgeliefert wird.
Montare solo con misura normata. Adoperando solo 3 cavi elettrici cosi come e fornita la
Macchina.
Table of Contents
1. Software Overview
1.1 The Measure Tab
1.2 The History Tab
1.3 The Edit Recipe Window
1.4 Editing Film Recipes
1.5 Understanding and Evaluating Measurement Results
1.6 Window Menu Items
1.7 Taking a Baseline
2. Making Measurements
2.1 Focusing the Fiber
2.2 Measuring Thickness
2.3 Measuring Thickness and Refractive Index
2.4 Measurement Assumptions
2.5 Hints for Improved Accuracy
2.6 Troubleshooting
3. Advanced Features
3.1 Creating and Editing n and k Files
4. Theory of Operation
4.1 Measurement Theory
4.2 Thickness Measurement Details
4.3 F20 Hardware Operation
4.4 The Baseline Measurement
5. Appendices
5.1 Performance Specifications
5.2 System Configurations
5.3 Light Bulb Replacement
5.4 Software Automation
8
9
11
13
15
29
31
44
49
49
52
60
62
63
65
77
77
83
83
84
84
85
87
88
89
96
97
1. Software Overview
The way that light reflects off a thin film is determined by the characteristics of the film, such as its
thickness, optical constants, and roughness. The F20 is able to determine thin-film characteristics by first
carefully measuring the amount of light reflected from the thin film over a range of wavelengths (i.e., by
measuring the reflectance spectrum). It then analyzes this data by comparing it to a series of calculated
reflectance spectra. Most of the features of the FILMeasure software that runs the F20 can be divided
into reflectance acquisition and reflectance analysis functions. The following pages outline the main
features of the FILMeasure software.
1. Standard Windows menus, including; File, Edit, Setup, Acquire, and Help.
2. These tabs are used to select between the Measure and History windows.
3. Displays the thickness of the film being solved for, as well as whether a sample is good or bad based on
the settings selected in the Alarms tab.
4.Measure a sample, Baseline the system, or Analyze an already opened spectrum. If the Measure
button is grayed out, the system will require a baseline before further measurements may be taken.
5. Select saved recipes from the drop-down list, or open the Edit Recipe dialog box.
6. Details about the calculated thickness, as well as any additional parameters that were solved for,
including Roughness, n and k, and Nonuniformity, and the Goodness of Fit (GOF) are displayed here.
7. Graphical display for spectra. A click of the right mouse button while the cursor is within the graphical
display opens the menu below for easy reading of cursor values in the Measure Tab. Use the keyboard
up/down and right/left arrows to move the marker to a desired location.
10
The graph limits can be changed by double-clicking on the graph display. The text boxes along the
bottom of the graph control the wavelength range, in nanometers, displayed on the screen. The two on
the left represent the Reflectance (%) range, with the max being set in the upper box and the min being
set in the lower. The boxes on the right are for Transmittance (%)(requires the T-1 upgrade). Check the
Auto checkbox to activate y-axis autoscaling. The lower value is always 0 for autoscaling; the maximum yaxis upper limit is 5000. The axes can be set to display in percent or as a decimal value (100% = 1).
Graph Options can be accessed and edited by double-clicking on the main graph window.
11
1. Standard Windows menus, including; File, Edit, Setup, Acquire, and Help.
2. These tabs are used to select between the Measure and History windows.
3. Used to alternate between the Single Measurement and Measurement Trend tab. Selecting the
Measurement Trend tab will allow the user to see a plot of the measurement results versus
measurement number. A drop-down list allows the user to select between which parameter is graphed.
12
When the Measurement Trend tab is selected in the History window, the right side of the screens graphs the
results.
4. Shows the measurement results for the selected spectrum (must be in Single Measurement mode).
5. Displays the selected spectrum (in Single Measurement mode).
6. Displays statistics for all measurements included in the history file.
7. This list contains all spectra currently included in the history file. Left clicking on a column header will
resort the data in ascending or descending order based on the selected column. Right clicking anywhere
is this box will allow the user to open the EditColumns control panel.
13
14
5. The desired thickness units are chosen here. The choices include angstroms (, 10e-10 m), nanometers
(nm, 10e-9 m), kilo-angstroms (k, 10e-7 m), microns (m, 10e-6 m), microinches, mils, millimeters (mm,
10e-3 m), and Custom Units.
6. This is where the materials and parameters to be solved are defined.
15
Film Stack
The Film Stack tab is used to define the film structure and desired measurement units, as well as the
starting guesses and constraints for thickness, n, and k. This is also where you determine your analysis
method, Grid, FFT, or None, as well as any Nonuniformity that may be present in the sample. The [+]
and [-] above Composition, Thickness and Nonuniformity can be used to expand or hide solving
options.
16
Constraints
By setting constraints, the user can limit the possible values of the measured film properties. The
constraints are set in conjunction with the values entered in the Range dialog box for Thickness. For
example, if the initial guess of the measured thickness of a film is 100 nm and the thickness constraint is
set at 50%, FILMeasure will only consider possible thicknesses in the range 50 nm to 150 nm. The
constraints for n and k are set using the n and k dialog boxes under Composition. These boxes are only
visible when the Thickness or Composition options are expanded.
You can select between constraining by a percent of the thickness guess, or by absolute thickness units
by clicking on the % or measurement unit above the constraints dialog box. Constraining the
measurement range can speed up analysis and can also help exclude non-physical solutions.
17
Custom Units
The Custom Unit function allows you to create your own custom unit for measurements if the metric
you'd like isn't already available in the drop-down list.
To determine the correct coefficient to use, you must first know the relationship between your unit and
nanometers. For example, if your units are mg/ft2 and it's been determined that 1 mg/ft2 works out to a
film thickness of 150 nm, then you would calculate your coefficient as follows, where X is the coefficient.
Custom units can be saved as part of the Recipe file, and only one custom unit can be saved per recipe.
nk Model
When measuring the n and k of a film, the general dependence of these values upon wavelength must be
specified. This dependence is determined by the type of material to be measured. For example,
insulators, semiconductors, and metals all have a unique type of n and k wavelength dependence.
Dozens of models for these different dependencies have been proposed and used over the years.
FILMeasure uses a few of the most versatile and accepted models. For insulators the Cauchy model is
used, for semiconductors either the Amorphous or Bridge-Lorentzian model, and for metals the Drude
model.
18
There are also a number of special-purpose models for specific applications. These models, and starting
coefficients values, are selected automatically when a material is chosen from the Material lists in the
Edit Recipe dialog box. Other models may also be specified by selecting them from the nk Model dropdown menu under the Composition tab which is accessed by right clicking on the Meas checkbox when
solving for optical constants is enabled.
19
Nonuniformity
The Edit Recipe > FilmStack tab with the Nonuniformity option expanded.
Selecting this option enables modeling of thickness nonuniformity within the measurement spot. An
initial guess for Nonuniformity must first be made, and then solving can be enabled or disabled by
toggling the Meas box. If solving is not enabled, the software will assume the value provided for
nonuniformity.
Note: Solving for nonuniformity can greatly increase solving time.
20
Search
The Search Materials dialog box is accessible by left-clicking on a material name in the EditRecipe > Film
Stack tab, or by selecting Search... from the material selection drop-down list.
Note: When clicking on a generic index file, the software will instead provide you with a dialog to enter a
new index value.
This feature allows the user to search for materials by using either the material name, or a keyword for a
certain class of materials. The search function will also show a brief Description of the material selected,
as well as any Synonyms or Keywords related to the material file. When files have a Synonym, that
means they are referencing the same material file under different names. So for example, if Silicon is
selected the file that will be shown in the Film Stack is Si, not Silicon, as that is the file both names are
referencing. The Similar Materials box will list any materials that may have similar optical properties.
21
Analysis Options
Correct setting of the following options will help ensure accurate measurements. Many of the options
are set automatically when film information is supplied in the Edit Recipe dialog box, and all of them can
be saved so that subsequent measurements can be made as quickly and easily as possible. If Robust
(Adaptive; Thickness Only) or FFT (Thickness Only) is checked, only the Data Selection settings will be
accessible.
Data Selection
Wavelength Range
This sets the wavelength range that is to be analyzed. It may be set as either the entire range displayed
on the graph or a fixed range as defined by the user. Wavelength range may also be changed by clicking
and dragging the ends of the gray bar near the bottom of the graph area in the main FILMeasure
window. Moving the bar will cause the software to reanalyze the data in the newly selected wavelength
range.
Smoothing
This function performs wavelength-dependent boxcar averaging on the measured spectra. This can
improve signal-to-noise levels and can filter out oscillations that correspond to optical thicknesses
(defined as thickness * refractive index) equal or greater than the specified value. This value should be
lowered to increase smoothing, and raised to decrease smoothing. To eliminate smoothing, enter a very
high value (1000 m, for example).
22
Source Data
If more than one data set is present, this option tells the software whether to analyze the 0 degree
reflectance data, 0 degree transmittance data, 70 degree reflectance data, or some combination of the
three.
Note: While every Filmetrics system is capable of opening and analyzing spectra with 70 degree
reflectance data, only the F10-RTA is capable of collecting this data.
23
Convergence Criteria
This sets the minimum GOF between the measured and calculated spectra that is attained before the
measurement routines consider the solution final. In most cases a value of 0.999 is sufficient. For cases
where the desired GOF is not attainable, the value in the Maximum Iterations field limits the number of
iterations performed by the analysis routine.
Solver Cycles
This option will enable multiple solver cycles, with the number of cycles being defined by the number
entered in the text box. When using this option, the software will run through the model for a solution
once, and then try again starting from the solution previously found. This can help find the best solution
amongst a number of near-best solutions, which can be the case when solving for a large number of
parameters (several thicknesses and/or refractive index). A greater number of cycles will lead to a longer
solving time.
24
Display Details
This feature controls the wavelength at which n and k are displayed in the Measurement Details portion
of the main screen. These values are only displayed if solving for n or k is selected in the Film Stack tab.
If Optimize Size is selected, the solver will instead begin with a minimum window size as defined by the
user. It will then start at the center of the analysis range, and then extend equally in both directions six
times to find the best GOF. When Optimize Position and Size is selected, the software does both
functions, resulting in measuring thirty-one different combinations of location and analysis range.
25
Alarms
26
Acquisition Settings
This menu lets the user control Measurement Timing, Spectrometer Type (on EXR and UVX systems),
Optics Configuration, and Advanced Acquisition Settings.
Measurement Timing
Use Recommended Sampling Time
Selecting this option uses the sampling time that has been automatically calculated by the software
during the baseline procedure. The displayed value is the total sampling time and not necessarily the
integration time. To see the integration time and number of integration cycles go to the Help >
Diagnostics menu.
Use Maximum Sampling Time
Users can set a maximum sampling time by selecting this option. By increasing sampling time the user
may see a decrease in signal noise, but at the trade-off of a longer acquisition time. Integration time and
cycles will still be determined by the FILMeasure software.
27
Spectrometer Type
EXR and UVX systems have two spectrometers(VIS-NIR and UV/VIS-NIR respectively). Here the user can
choose to use only one or both spectrometers.
28
Optics Configuration
The Optics Configuration dialog box is accessible through the Acquisition Settings tab under the Edit
Recipe window. It is important to make sure that you remember to select the proper configuration for
your measurements in order to obtain the best possible results. Not all options are available with all
systems.
29
30
The quality and accuracy of the result is determined by how well the measured spectrum matches with
the calculated spectrum. In general, thickness information is determined by the number of oscillations,
and index information is determined by the amplitude of the oscillations. In the case of the Robust
(adaptive; thickness only) solver and Exact Spectrum Matching solver, a good result is one where the
minima and maxima of the measured and calculated spectrum align. For the FFT (thickness only) solver,
this is when the measured intensity peaks overlap. See the Goodness of Fit and Troubleshooting Thickness Modeling sections for more information.
Goodness of Fit
The accuracy of a calculation fit, and thus the reliability of the measurement, can be judged by the match
between the measured and calculated spectra, which is quantified by the GOF value. GOF is a number
between 0 and 1.
A perfect match between measured and theoretical spectra will result in a GOF of 1. To ensure accurate
results the user may set a minimum acceptable GOF value by entering a number between 0 and 1 into
GOF Error on the Alarms Tab in the Edit Recipe dialog box. A warning message will be displayed after
each measurement where the GOF falls below the user-specified GOF Error. If the GOF is less than 1 there
are several possible causes:
a) Nonuniformity Any variation of layer thickness, or presence of roughness, within the
measurement spot will result in a reduction in reflectance. In severe cases the interference peaks
may disappear entirely.
b) Incorrect Structure Definition If the refractive index of one or more layers in the structure is
different from what is described in the recipe, then there will be some mismatch between the blue
curve and the red curve.
c) Graded Interfaces The amplitude of the peaks in the spectrum depends on both the size of the
change in refractive index at each interface in the layer structure and the sharpness of the interface.
For example, in many hardcoat samples there is some degree of layer intermixing at the interface,
leading to a weaker than expected reflectance at that interface. In severe cases the peaks may
disappear entirely.
31
File Menu
32
Import: Material
Custom materials, either created by the user or provided by Filmetrics, can be imported using this
command.
Import: License
When the user purchases an upgrade for the system, Filmetrics will send a license file to the user. The
license must be imported into the software before upgrades are effective.
Save Measured Spectrum (Measure Tab only)
This command is used to save spectra for export or later analysis. All data is saved along with the
corresponding wavelength data in comma-delimited format. Files can be saved in four different formats:
*.fmspe: This file can only be opened in FILMeasure 5.0 or greater and is the preferred way to save
spectra. Additional information from data acquisition is stored in this file.
*.spe: This file can be opened in all versions of FILMeasure.
*.csv: This is a comma-delimited file that can be opened directly in Excel.
*.txt: This is a tab-delimited file, and can be opened with a text editor.
Save Screen to File (Measure Tab only)
This command takes a screenshot of the FILMeasure window.
Save n and k to files (Measure Tab only)
This command is used to save the calculated n and k data to its own material file for use in the Edit
Recipe>Material list boxes. All data is saved along with the corresponding wavelength data in commadelimited format.
Note: This option is only present when optical constants are being solved for.
Export: Recipe
Recipes can be exported for use on other computers running FILMeasure. The exported file will also
automatically include any material files required by the recipe. To duplicate an analysis, all that is needed
is the exported recipe and the spectrum being analyzed.
Export: Recipe for FILMeasure 4
This command will convert a recipe for use with FILMeasure 4. This will not include material files or recipe
features only available in FILMeasure 7.
Export: SystemInfo File
For certain upgrade purchases that can be done through software, the user will be required to send the
SystemInfo file to Filmetrics, which can be exported using this command.
33
Edit Menu
Material Library
The material library is used to display information about existing materials as well as create new ones.
Material files shipped with FILMeasure have the file extension .fibnk and will only display limited
information. User created material files, ".fitnk", can be plotted on a graph or viewed in table form.
A new material may be entered into the material library manually if refractive index (n) and extinction
coefficient (k) are known as a function of wavelength for the new material.
To create a new material file:
a. Select Edit>Material Library menu item. The Edit Material dialog box will appear.
b. Click New to create a new material.
34
c. Select the type of material you are ready to create (Dielectric, Photoresist, Semiconductor, Metal,
or Other).
d. Optimize the functionality of the file by entering index values over the entire wavelength range of
the system. The wavelength unit is nanometers. Enter index information every 20 to 50 nm,
depending on the complexity of the data. In areas where n or k is quickly changing, more densely
spaced points should be entered.
e. Alternatively, select the Model>Custom radio button and click the Details button. A Custom
Model Information dialog box will appear. Select the appropriate model. Enter in the known
coefficients and click OK. Cauchy coefficients are displayed in microns. If they are entered in ,
FILMeasure will automatically detect this and convert them to microns.
f. Click the save button to save the material. You will be asked for a file name, and you may select
one of two file types:
*.fitnk: Creates a unified file with both n and k information. Compatible with FILMeasure 5 and
beyond.
*.nnn: Creates a *.nnn file and, if there is k in the material, a *.kkk file to contain material data. For
files with both n and k, the two files must have the same filename, for example xmaterial.nnn and
xmaterial.kkk , in order for FILMeasure to properly indentify them. Compatible with all versions of
FILMeasure.
Setup Menu
This menu contains the settings for manually obtaining the Standard/Background information, Display
options, and the Raw Signal dialog. This is also where user access can be set through the Access Control
option, as well as modifying some system Options.
Standard/Background
This control is used when manually taking and enabling/disabling the Reflectance Standard and
Background compensation.
35
Take Standard
This button allows the reflectance standard portion of the baseline measurement to be taken without
having to re-take the background measurement.
Take Background
This button allows the background portion of the baseline measurement to be taken without having to
re-take the reference measurement.
Use Standard
This checkbox allows the reflectance standard portion of the baseline correction to be enabled or
disabled. This box is only available if a baseline has already been completed.
Subtract Background
This checkbox allows the background subtraction portion of the baseline correction to be enabled or
disabled. This box is only available if a baseline has already been completed.
36
Display
When a Color Space is selected, the color of the spectrum and the coordinates appear on the Measure Tab.
37
Spectrum colors of the same spectrum with fixed luminance of 10%, 40%, and 70%, respectively.
Number of Spectra
This sets the maximum number of spectra displayed simultaneously on the main FILMeasure screen. If
the maximum number of spectra is reduced to fewer than the number already on the screen, the most
recently selected spectra will remain.
Spectra Transformation
For spectra with both reflectance and transmittance information present, you can have the software
display them as separate spectra (none), added together (sum), or the absorptance (1-R-T).
Graph Options
The background of the graph can be set to white or black using this option, as well as allowing the
software to auto-position the legend box to avoid or minimize overlap with the displayed spectra.
Measurement Results: Significant Digits
The user can select the number of significant figures, from 1 to 7, that the results are displayed in. For
example with the units set to Angstroms, if a result of 7213 will be displayed for 4 significant digits, it will
be displayed as 7210 for 3 significant digits.
Displayed Controls
These checkboxes are used to determine which controls are listed on the right hand side of the
FILMeasure window.
Access Control
FILMeasure incorporates password protection to limit access to the measurement software and settings.
When the software is initially installed, access control is turned off. The software will automatically boot
up with Engineer level access that enables access to all features of the program except turning on and off
access control and adding and deleting users.
38
Turning on access control requires Supervisor level access. The software is delivered with one user, a
supervisor, in the list of authorized users as shown below:
UserID: filmsuper
Password: filmetricsfff
To turn on access control, log in as filmsuper using the password shown above. The Activate Access
Control checkbox should selected, enabling access control functions. User ID and Password are casesensitive.
To add an operator level user, select operator from the Access Level list box, type a user name and type
an initial password for that user. Then click the Add User button. To add an engineer or a supervisor user
follow the same procedure, but pick the appropriate access level from the list box before pressing the
Add User button.
To delete a user, enter the UserID and press the Delete User button.
Operator and Engineer level users can change their passwords when they are logged in by entering their
password into the password box and pressing the change button. Supervisor-level users can change
their password or the password of any other user by selecting the appropriate access level, entering the
appropriate UserID and the new password and pressing Add User. If the program finds that a user
already exists, it will delete the old entry for that user and create a new entry.
We recommend that you create a new supervisor level user and delete the filmsuper user for maximum
security. If all supervisor level users forget their passwords, it will be necessary to re-install the software
and add all the users again.
39
Raw Signal
Raw Signal
The Raw Signal dialog box allows the user to plot the raw (no baseline corrections applied) spectrometer
signal on the main graph. This is useful when adjusting the focus or when setting integration times
manually.
Active Spectrometer
For systems with multiple spectrometers (EXR andUVX) these radio buttons allow you to select between
collecting data from the short wavelength, long wavelength, or both spectrometers.
Integration
The user can set the integration time and the number of integration cycles for the spectrometer.
Increasing cycles can be used to help smooth the data being returned to FILMeasure. Clicking Update
Recipe transfers the listed integration time and cyclesto the current recipe.
40
Signal Corrections.
Spectrum Preprocessing allows the user to apply a smoothing function to the displayed spectra. See here
for more details.
Start/Stop
This button starts/stops the acquisition of the spectrometer signal.
Graph Limits
This allows the user to either manually set or autoscale the graph limits. Click Apply after any changes to
display them on the main FILMeasure window.
Options
The Options menu allows the user to enable, disable, or modify several different settings within
FILMeasure.
General Settings
Data Recording
General Settings
41
The General Settings tab is used to enable, disable, and modify various options in the software. Baseline
Reminder allows the user to set an interval at which the system will alert them to re-baseline the system.
It is set at one hour by default. The Selected Camera pull down menu allows the user to enable the
SampleCam on equipped systems, or choose between different cameras if there is more than one
connected to the computer. The Reference Signal Thresholds options are used by the software during
the Baseline process. If, during the Acquire Reference step of the Baseline, the intensity of the
reflectance standard goes above or below the percentages listed an error message will appear.
The Edit Columns button opens a dialog box that allows the user to select which columns are shown in
the history tab. This dialog box can also be accessed by right clicking anywhere in the spectrum list under
the history tab. Click on RestoreDefaults to remove all selections.
Data Recording
The Data Recording tab allows for automatic saving of all spectra and results to a central file. The user
can also select between having the software provide a prompt for which data to include in the history file
when using Acquire>Continuous Measure or to include all measurements to history.
Clicking the Contact Probe Template Mode enables the template function on the Measure Tab. For
more information on creating and using templates, see Contact Probe Template Mode in the Advanced
Features section. This check box is only accessible if contact probe is selected under Optics
Configuration.
42
Acquire Menu
Batch Acquire
The Batch functions allow you to act on groups of spectra, rather than each individual spectrum
43
Help Menu
Diagnostics
The diagnostics window gives information regarding the data taken during the baseline. Reference and
background counts are also shown (this is useful to see how much signal the system is getting; good
reference signals typically are between 2500-3500 counts).
44
Help>Diagnostics shows the user information regarding the data taken during the baseline routine.
45
46
The Measure Tab shows a split screen with the measured spectrum on the top graph and the FFT spectrum on the
bottom graph.
In FFT mode, instead of matching the measured reflectance spectrum with a calculated reflectance
spectrum, FILMeasure identifies the peaks in the FFT Spectrum and uses them to compute the layer
thicknesses. The number of possible FFT peaks is n*(n+1)/2 where n is the number of layers. Thus, for a
two layer structure, we expect to see three peaks in the FFT spectrum.
47
The image above shows the screen just after measurement of a two layer stack using FFT mode. The
upper graph shows a blue curve representing the reflectance spectrum of the sample. The lower graph
shows a blue and red FFT spectrum. The blue FFT spectrum is computed from the measured reflectance.
The red FFT spectrum is computed from the theoretical reflectance spectrum of a layer stack with the
measured layer thicknesses. The small side lobes visible on either side of the two tall peaks are artifacts of
the FFT process and can generally be ignored. The only time the side lobes will cause a problem is if a
weak peak from a multi-layer sample is very close to a much stronger peak. If this case occurs
FILMeasure may lock onto one of the side lobes by mistake and it may not be possible to measure the
layer thickness associated with the weak peak. Reducing the Constraint and/or increasing the guess for
the thickness for the layer with the weak peak may be helpful in getting FILMeasure to lock onto the
weak peak. If the peak is too weak to reliably measure it is best to change the layer structure definition so
that the layer corresponding to the weak peak is eliminated.
Along with the measured layer thicknesses, the Results text box displays important information about
the measurement. This important information includes the Goodness Of Fit (GOF) and a description of
which peaks were used to determine the measured layer thicknesses. In the figure above layer 1
thickness is determined based on the position of the peak located at 4.780 microns and layer 2 thickness
is determined using the peak corresponding to layers 1+2 (7.011 microns). Notice that the thickness of
layer 2 is not exactly equal to 7.011-4.780 = 2.231 microns. FILMeasure computes a thickness for layer 2 of
2.113 microns because it precisely accounts for the fact that layer 2 has a different refractive index than
layer 1.
Discussion of GOF:
A perfect match between measured and theoretical FFT spectra will result in a GOF of 1. To ensure
accurate results the user may set a minimum acceptable GOF value by entering a number between 0 and
1 into GOF Error on the Alarms settings in Edit Recipe. A warning message will be displayed after each
measurement where the GOF falls below the user-specified GOF Error. If the GOF is less than 1 there are
several possible causes as follows:
a) Nonuniformity Any variation of layer thickness within the measurement spot will result in a
reduction in the FFT peak heights. In order to permit easy visual interpretation of the FFT results
FILMeasure always scales the amplitude of the red curve so that it matches the blue curve.
However, if the scaling factor is not 1.0, FILMeasure reports a reduced GOF even if the red curve
appears to exactly match the blue curve on the screen.
b) Incorrect Structure Definition If the refractive index of one or more layers in the structure is
different from what is described in the layer structure, then the FFT peak amplitudes in the blue
curve will not match the peak heights in the red curve. The software will attempt to scale the red
curve, but if there is more than one FFT peak present, the scaling will only result in one correct peak
height. If you wish to view the impact of changing the refractive index of one or more layers, simply
change the refractive index in the Edit Recipe dialog box and click Analyze. If there is only a single
layer you will notice that the GOF will change, but the red curve should not change much. If there
are multiple layers in the structure you will notice that the relative peak heights in the red curve will
change when you click Analyze.
48
c) Graded Interfaces The amplitude of the peaks in the FFT spectrum depends on both the
difference in refractive index at each interface in the layer structure and the sharpness of the
interface. In many common samples you will find that there is some degree of layer intermixing at
the interface, leading to a weaker than expected reflectance at that interface. The FFT peak(s)
associated with the intermixed interface will suffer a reduced amplitude and in severe cases the
peaks may disappear entirely.
49
2. Making Measurements
Accurate measurements with the F20 rely on using the proper measurement setup. The basic steps for
any F20 measurement are:
1) Selecting and/or editing the film stack to be measured.
2) Taking a Baseline measurement.
3) Clicking on the Measure button to acquire and analyze the measured spectrum.
Each example below will take you through this sequence of steps. In each example it is assumed that the
hardware has been set up as described in the Quick Start Guide, and that you have first read through
the Software Overview section to familiarize yourself with the basic controls.
The Focusing the Fiber, Measurement Assumptions, Hints for Improved Accuracy, and
Troubleshooting sections describe techniques that should be followed for the most accurate
measurements.
50
The recessed set screw on the back of the lens tube is actually a spring-loaded ball plunger and does
not require tightening. Users should be aware that the fiber may slip out of focus if the stage or
cable is moved. If one focus height is often used, the set screw can be tightened to reduce the
chance of inadvertent slipping once an optimal focus position is found.
F. Close the Setup > Raw Signal dialog box. Focusing is now complete.
There is also a video demonstration of this procedure on YouTube, which can be found here. An active
internet connection will be needed to view the video.
51
52
53
For this example, we'll use 10000 angstroms as the Nominal thickness, with a constraint range of 100%.
Make sure that the SiO2 layer thickness is being solved for by clicking the checkbox to the right of the
nominal thickness field. The substrate should be set to Si. Underneath the Analysis Options tab, set the
Analysis Method to Exact, with nothing else enabled. Click OK to confirm the changes to the recipe.
Step 3: Take a Baseline Measurement
Take a baseline measurement by first clicking on the Baseline button on the main screen. A dialog box
will appear to step you through the process. Follow the steps on screen, and be sure to match the
material selected with the reflectance standard that will be used. For this example use the Si reflectance
standard.
Step 4: Make the Measurement
Make the measurement by placing your sample on the stage (or the contact probe on your sample) and
click on the Measure button. If you're finding it difficult to align the test spot under the light path, a
diffuse reflector like a piece of paper or business card can be used to help.
54
FILMeasure will then acquire the reflectance spectrum and calculate the corresponding thickness. If the
measurement was successful, the minima and the maxima of the calculated reflectance (the red line on
the graph) will coincide in wavelength with the minima and the maxima of the measured reflectance (the
blue line on the graph). In most cases they will not overlap, but will be separated in amplitude.
Measured and calculated reflectance spectra when measuring the thickness of SiO2 on silicon.
If the calculated (red) and measured (blue) minima and maxima do not coincide, then the measurement
was not successful. There are several possible causes of an unsuccessful measurement. The most
common for this type of measurement are described in Cases #1, #2, and #3 in the Troubleshooting
section.
55
Example Edit recipe>Film Stack window for measuring the VIS-AR Reflectance Standard.
56
Measured and calculated reflectance spectra when measuring the thickness of the VIS-AR Reflectance Standard.
If the calculated (red) and measured (blue) minima and maxima do not coincide, then the measurement
was not successful. There are several possible causes of an unsuccessful measurement. The most
common for this type of measurement are described in Cases #1 and #2 in the Troubleshooting section.
57
Example Edit Recipe>Film Stack window for measuring the thickness of a film on a transparent substrate
To edit the film stack, click the Edit Recipe... button to open the dialog box. Check to see that the film
stack matches that of the actual sample. If not, different films can be selected using either the drop-down
menu next to the material or the Search function. This is also where you can enter a starting guess for
thickness as well as the desired constraint range.
For this example, we'll assume the measurements are being taken on a SS-3 stage. Select HC Standard - 2
as your layer 1 under the composition settings. Materials may be selected using either the drop-down
list, or the Search function. Set the Nominal thickness at 6 microns, with a constraint range of 75%. Make
sure that the HC Standard - 2 layer thickness is being solved for by clicking the checkbox under to the
right of the nominal thickness field.
The second layer should be Acrylic - 2 with a thickness of 2000 m, or 2 mm, with Air as the substrate. Do
not enable solving for the Acrylic - 2 layer. This lets the software know that there is a finitely thick layer of
acrylic, so that it will accurately account for back reflections. If you're using the contact probe or contact
stage to take measurements, you can simply set the substrate Acrylic - 2 and enable account for backside
reflections under the Analysis Options tab. Click OK to confirm the changes to the recipe.
Step 3: Take a Baseline Measurement
Take a baseline measurement by first clicking on the Baseline button on the main screen. A dialog box
will appear to step you through the process. Follow the steps on screen, and be sure to match the
material selected with the reflectance standard that will be used. For this example use the BK7 reflectance
standard.
58
If the calculated (red) and measured (blue) minima and maxima do not coincide, then the measurement
was not successful. There are several possible causes of an unsuccessful measurement. The most
common for this type of measurement are described in Cases #1, #2, and #3, in the Troubleshooting
section.
59
60
Single Acquire collects the measured spectrum (blue curve) of the sample.
61
Example Edit Recipe>Film Stack window for measuring the thickness, n, and k of films on an opaque substrate.
For this example, we'll use 300 nanometers as the Nominal thickness, with a constraint range of 25%.
None should be selected underneath the Refine via drop-down list. Make sure that the Si3N4 layer
thickness is being solved for by left clicking the checkbox under Meas.
We'll also have to enable optical constants solving under the Composition options. These options
should be visible by default, but if they are not they can be accessed by clicking on the [+] underneath
Composition in the Film Stack tab. Left click on the Meas. button to enable optical constants solving,
and set the constraints for both n and k at 5. We'll also want to confirm that the correct model is
selected. Right click on the Meas. button to access the nk model drop-down list, and select the Si3N4
model. For more information on optical models, see nk Model.
The substrate should be set to Si. Underneath the Analysis Options tab, set the Analysis Method to
Exact, with nothing else enabled. Click OK to confirm the changes to the recipe.
Step 3: Take a Baseline Measurement
Take a baseline measurement by first clicking on the Baseline button on the main screen. A dialog box
will appear to step you through the process. Follow the steps on screen, and be sure to match the
material selected with the reflectance standard that will be used. For this example use the Si reflectance
standard.
62
Measured and calculated reflectance spectra when measuring the thickness, n, and k of Si3N4 on silicon
63
64
Roughness
Slight amounts of surface or interface roughness that may be present can decrease the GOF value of a
measurement. Entering a value or solving for roughness can partially account for this roughness so that
a better GOF may be achieved. Generally, roughness is only present when the sample surface looks hazy
at the measurement spot. The fact that haze can be seen means that there is scattered light. (A perfectly
smooth surface will scatter no light, and thus the measured spot will not be visible.) Usually roughness
less than 2.5 nm will not be visible, while roughness greater than about 25 nm will be extremely hazy.
FILMeasure assumes a Gaussian distribution of the surface height irregularities about the mean and it
assumes that the roughness is small compared to the wavelength. FILMeasure reports the rms
roughness value.
Example of a non-ideal film (spectrum with no oscillations at lower wavelengths) that requires reduced wavelength
range for accurate measurement.
65
2.6 Troubleshooting
For error messages or hardware problems encountered with your Filmetrics instrument, please use the
chart below to best diagnose your problem. For help with modeling, see Troubleshooting - Thickness
Modeling.
Question 1: Are you able to start FILMeasure without an error message?
No: Continue to Question 2.
Yes: Continue to Question 1-1.
Question 1-1: What sort of problem are you seeing?
1: The lamp doesn't turn on or the fan isn't working properly. See the Non-Operating Box, Lamp, or Fan
Troubleshooting Guide.
2: I get an error message when I click on something. Continue to Question 1-1-2.
3: Measurement results are wrong or unstable, after they had been good. See the Measurement Results
are Incorrect or Unstable Troubleshooting Guide.
4: Measurement and/or baseline takes longer than it used to. See the Slow Operation Troubleshooting
Guide.
66
Question 1-1-2: If you're still seeing an error after you've power cycled and installed new software,
then select the description which most closely describes your error.
1: The error occurs during the baseline. See the Error Message During Baseline Troubleshooting Guide.
2: Some other error. See the Error Messages -Miscellaneous Troubleshooting Guide.
Question 2: Are you able to launch FILMeasure but it shows an error?
Yes: Continue to Question 2-1.
No: Then you need to install the software that come with your new system, or you can request new
software. See the Software Reinstallation Guide.
Question 2-1: Does the error message start with "No Filmetrics instruments detected...."?
Yes: See the Non-Operating Box, Lamp, or Fan Guide.
No: See the Error Messages - Miscellaneous Troubleshooting Guide.
Power Cycling
Over the years we've found that about a third of support issues can be resolved by simply power cycling
the Filmetrics system and computer. Follow the simple steps below to power cycle your instrument.
Further assistance may be received by contacting us using the methods described in the Contact
Information section.
Step 1: Shut down FILMeasure (it's OK in the rare case that you can't).
Step 2: Unplug all electrical connectors from the back of your Filmetrics box.
Step 3: Restart your computer, giving it time to load all drivers.
Step 4: Reconnect the electrical connections to your Filmetrics box. (Make sure that the power cord is
getting power, and that any switch near the power connector is turned on.)
Step 1: Shut down FILMeasure (it's OK in the rare case that you can't).
Step 2: Unplug all electrical connectors from the back of your Filmetrics system.
67
Step 3: Are you installing this software on a computer which already has FILMeasure installed?
Yes: Go to Step 4.
No: Jump to Step 6.
Step 1: Does the green LED on the right side of the front panel illuminate?
Yes: Jump to Step 3.
No: Go to Step 2.
68
Step 2: Is the power cord fully inserted into the back of the unit and a powered wall outlet? If your unit
has a rear power switch, is it on?
Yes: Go to Step 3.
No: Plug into a powered outlet and/or switch on the unit.
Step 3: Does the LED light on the light source switch illuminate when switched on?
Yes: go to Step 4.
No: Possible faulty switch or faulty indicator lamp, contact Filmetrics.
Step 4: Is the cooling fan spinning? Determine this by listening to the cooling fan which is located
directly below the light source. (You'll need to get close to hear the fans on systems built after 2010.) For
F50 systems the chassis cooling fan is louder than the light source cooling fan. You'll need to get close to
the light source to hear the light source cooling fan.
Yes: Go to Step 5.
No: The cooling fan needs replacement, contact Filmetrics.
Note: a bad cooling fan can draw enough power to prevent the light source and box from
operating properly.
Step 6: The following steps are to troubleshoot a box that is not being detected by the FILMetrics
software. This could be a software driver or (rarely) a hardware problem. To see what hardware your
computer is detecting, look in the windows device manager. (instructions on how to access the Device
Manager are included at the end of this document.)
In the Device Manager, which device do you see?
"Filmetrics Measurement Instrument" or similar: In this case the system should be operation
correctly. If not, please contact Filmetrics.
"Unknown Device" or similar: The hardware appears to be operating properly, but the drivers for
the hardware are not installed. If you have already power cycled and installed the most current
Filmetrics software, please contact Filmetrics for further assistance.
Neither of the above: The hardware is not working properly. Go to Step 7
Step 7: Try a new USB cable and plug it into a different USB port. Does this fix the problem?
Yes: Either the USB cable or port was bad.
No: The USB controller inside the FILMetrics box may be bad. Please contact Filmetrics.
Accessing Device Manager in Windows 7/8:
69
Step 1: Which error message are you seeing while taking a baseline?
Received light signal is too bright: If you are manually setting the integration time (see
Measurement Timing) then you need to reduce the integration time. Otherwise you can reduce the
light source intensity by using a flattening or neutral density filter. Optical filters can be purchased
on our website, www.filmetrics.com.
Baseline Failure. Reference and background spectra are almost the same: This error is often
caused by using the reference sample during the background step or vice versa, and is easily
corrected by taking retaking the baseline while providing the proper material for the proper step. If
this is not the case, go to Step 2.
Spectrometer peak intensity is x% of previous reference intensity: This error is often caused by
using the incorrect reference sample and is easily corrected. Jump to Step 5.
Step 3: Check to see if there is a broken or misconnected fiber. With the light source on, confirm that
the illumination fiber is screwed into the light source securely, and that plenty of light is exiting the fiber
at the far end near where the sample is placed. The light can be seen by placing paper (e.g., business
card) near the sample location (do not look directly into the fiber if you are using a UV source). If plenty of
light is seen, next check the return fiber by removing it from the spectrometer input and connecting it to
the light source (removing the other fiber first). You should see light at the far end as before, but it may
be 3-4 times smaller and dimmer. Did you see light at the sample end using both fibers in the light
source?
70
Yes: The fiber appears to be good. Replace the fibers securely in their original positions (there will be
a white band on the light source fiber if the two ends are different) and go to Step 4.
No: The fiber optic may be broken. Replacements can be purchased on our website,
www.filmetrics.com
Step 4: Does your system have multiple spectrometers (i.e. EXR or UVX)
Yes: Check the Acquisition Settings tab under Edit Recipe to make sure that your fiber optic
configuration matches the enabled spectrometers. Do this by making sure that each enabled
spectrometer has a fiber attached to it (or disable a spectrometer that is not being used).
No: If you are still experience problems, please contact us using the Contact Information section.
Step 5: Was the correct reference selected from the drop-down list?
Yes: Go to Step 6.
No: Re-baseline using the correct reference.
Step 7: Has the optical configuration been altered (i.e. switching from standard spot size to small spot
optics or a contact probe)?
Yes: This error is an expected response, no further action required
No: If you are still experiencing problems, please contact us using the Contact Information section.
Step 1: First confirm that you have selected the correct recipe for the sample that you are measuring
(i.e., the same recipe that previously was giving good measurements). Note that this troubleshooting
guide does not cover instances where recipe parameters have been changed.
Step 2: Confirm that the light source is turned on and that the fibers are securely tightened into the
light source and the spectrometer input. Confirm that the fiber is properly inserted into the stage (See
System Configurations if you are uncertain how to do this). Place a piece of paper at the sample
measurement location and confirm that you can see a light beam. Can the light beam be seen?
Yes: Jump to Step 4
No: Go to Step 3
Step 3: Is there light coming out of the light source? (If you are checking a UV light source, put on the
goggles that were supplied with the light source before checking.)
71
Yes: It appears the fiber may be broken. Replacements can be purchased on our website
www.filmetrics.com
No: Replace the lamp following the instructions here. A spare lamp is included with most systems
and additional lamps may be purchased on our website www.filmetrics.comNote: users can
confirm a halogen bad lamp by removing it and checking it for electrical continuity.
Step 4: Perform a new baseline, paying particular attention to make sure that you are using the proper
reference and that it is clean with the correct side up.
Step 5: Put a sample that is known to be good on the stage and perform a measurement. If the
measurement is still not correct, go to Step 6.
Step 6: Your lamp may be weak and needs to be replaced. The best way to tell is to replace it with the
instructions found here. A spare lamp is included with most systems and additional lamps may be
purchased on our website www.filmetrics.com.
Step 7: It may be that the stage optics have become unfocused. Please refer to the Focusing The Fiber
section.
If you are still experiencing problems with an unstable or incorrect measurment after the preceding
steps, please contact us using the methods described in the Contact Information section.
Step 2: Slow baselines are generally caused by a low light level, which can have several causes. Does the
light source illuminate (be sure it is switched on, and that the shutter is open on UV systems)
Yes: Go to Step 3.
No: Check the Non-Operating Box, Light, or Fan Troubleshooting Guide.
Step 3: Check to see if there is a broken or misconnected fiber. With the light source on, confirm that
the illumination fiber is screwed into the light source securely, and that plenty of light is exiting the fiber
at the far end near where the sample is placed. The light can be seen by placing paper (e.g., business
card) near the sample location (do not look directly into the fiber if you are using a UV source). If plenty of
light is seen, next check the return fiber by removing it from the spectrometer input and connecting it to
the light source (removing the other fiber first). You should see light at the far end as before, but it may
be 3-4 times smaller and dimmer. Did you see light at the sample end using both fibers in the light
source?
72
Yes: The fiber appears to be good. Replace the fibers securely into their original positions on the
spectrometer box and light source (there will be a white band on the light source fiber if the two
ends are different) and go to Step 4.
No: The fiber optic may be broken. Replacements can be purchased on our website,
www.filmetrics.com
Step 4: Does your system have multiple spectrometers (i.e. EXR or UVX)
Yes: Check the Acquisition Settings tab under Edit Recipe to make sure that your fiber optic
configuration matches the enabled spectrometers. Do this by making sure that each enabled
spectrometer has a fiber attached to it (or disable a spectrometer that is not being used).
No: Go to Step 5.
Step 5: It may be that your lamp is old and needs to be replaced. The best way to tell is to replace it
with the instructions found here. A spare lamp is included with most systems and additional lamps may
be purchased on our website www.filmetrics.com.
Step 6: It may be that the stage optics have become unfocused. Please refer to the Focusing The Fiber
section. Otherwise, go to Step 7.
Step 7: Unless the slow operation during measurement is a new problem, please confirm that your
computer meets the minimum system requirements as listed in the system specifications. If it doesn't,
please upgrade your computer. Otherwise, go to Step 8.
Step 8: A measurement that takes a long time generally means that there is a large amount of
processing required to find a solution, which is usually caused by a non-optimal recipe setting. Please
first confirm that you have selected the correct recipe for the film stack you are measuring. Otherwise, go
to Step 9.
Step 9: Open the recipe and make sure that you are not solving for too many parameters. Solving for
one or two thicknesses or a thickness and index should only take a second or two, but in some
circumstances the solving time can be increased 5-10x for each additional parameter. Solving for
nonuniformity (or adding it to increase accuracy of other parameters) can be especially time consuming.
Step 10: If you are solving for more than one thick layer (i.e., >10 um), you can speed up the solving
process by reducing the thickness constraint range (which can be safely reduced even more by using an
accurate nominal thickness guess)or by switching from using the Grid solver to the FFT solver in the
recipe.
If you are still experiencing problems with a slow measurement after the preceding steps, please contact
us using the methods described in the Contact Information section.
73
74
75
Case 2: The measured reflectance spectrum has periodic oscillations across the
entire screen, but its minima and maxima do not match up with the calculated
reflectance.
The most common cause is that the initial thickness guess was considerably different than the actual film
thickness, and due to the constraints on possible thicknesses FILMeasure was unable to find the correct
answer.
To better understand this, it helps to know that the number of oscillations on the screen is proportional
to the film thickness. For example, if the measured spectrum has roughly twice the number of the
oscillations that the calculated spectrum has, then the measured film is roughly twice the thickness of
the calculated thickness. Using this information, the initial thickness guess and the thickness constraints
can be set more appropriately in the Edit Recipe dialog box. Another possible cause is found in Case #3
(incorrect dispersion).
Case 3: Two or more different, but nearly the same, thickness readings are
obtainable from the same measurement location.
When this occurs usually the measured and calculated spectra match somewhat, but not very well
across the entire spectra (i.e., the measured and calculated spectra match exactly only over a small
wavelength range and then gradually walk off one another outside this wavelength range). When
thickness is the only value being measured, this is normally caused by the refractive index of the
measured layer not matching that used by FILMeasure, especially when the film is greater than one
micron thick. Unless more accurate index values can be obtained, the best way to solve this problem is to
restrict the wavelength range used in the analysis.
Case 4: Poor matches between the measured and calculated reflectance spectra
when measuring thickness and optical constants.
There can be many causes of this problem, including those listed in Case #1 and Case #2 above. Most
commonly when a poor fit between the spectra occurs, it is because:
1) The components of the film structure are not all included in the Edit Recipe>Film Stack dialog
box. Adjust the recipe accordingly and reanalyze the spectrum.
2) Very inaccurate initial guesses for the film thickness(es) have been listed. Try a new nominal
starting guess, or expand the thickness constraint range.
3) The optical constants listed in the Edit Recipe>Film Stack dialog box are far from the actual
optical constants in the material. Try selecting a different but similar material file if one is present,
for exampleswitching from Acrylic to Acrylic - 2.
76
4) The film being measured has properties that are not taken into account by FILMeasure. Examples
of these properties are graded interfaces and non-uniform films. You can enable solving for these
conditions in the recipe.
Note: Enabling Nonuniformity solving will increase solving time.
Case 5: Several different answers, or one unreasonable answer, are found when
measuring thickness and optical constants, even though a good match is found
between the measured and calculated reflectance spectra.
This normally occurs when a large number of properties are being measured on a very thin film. In
general, the thinner a film is the less unique information that can be obtained from it. To understand
this, see Theory of Operation. To solve the problem, you can either:
A. Decrease the number of variables solved for.
B. Increase the amount of data provided to the solver (analyzing reflectance and transmittance at the
same time, or using the multi-spectral solver).
C. Enable multiple Solver Cycles under the Edit Recipe>Analysis Options>Advanced dialog.
77
3. Advanced Features
This section describes how to create and edit material files within Windows Excel, as well as how to use
the ContactProbe Template Mode.
Creating and Editing n and k Files
ContactProbe TemplateMode
78
79
80
Within the Template Structure dialog box there are several options to build your template file.
Template Name:
This drop-down list allows you to select between saved templates.
Recipe Name:
Shows the recipe currently associated with a given template. This drop-down list may also be used to
select a new recipe.
Insert BackgroundImage
This allows the user to select an image of the sample to be measured as a background image over which
the template will be displayed. Images must be in the JPEG, Bitmap, or GIF format.
Delete Background Image
For templates with a generic shape but no specific sample in mind (ie. a simple x,y grid), you can use this
option to remove a background image and set the template points against a gray field.
Add Points:
Allows the user to add points to the Template by left clicking anywhere on the image or field. These
points will automatically be numbered by the order they are added.
Remove:
Removes previously added points by clicking on them.
Move Points:
Click and drag points already included in the template to move them to a new location.
81
Clear Points:
Removes all points from the template at once.
Once you've finished editing the template file you can save the template file using one of the three
buttons at the bottom of the dialog box. The Save button will save the changes to the template selected
underneath the Template Name: box. The Save As button will prompt you to save the current template
under a new name. The OK button will save the changes for immediate use, however any changes not
saved with either the Save or Save As button will be lost if another template is selected, or the software is
shut down.
With a new template defined, you can now use the file you've created to make measurements. See Using
Contact Probe Template Mode for more information.
82
Step 4:
Save the output. By default the results will be placed in the history file. An image of the template with
thicknesses can also be saved with the Save To File button, or printed out using the Print button. A
working printer must be connected for the Print button to work. Clicking Accept will close the template
window.
83
4. Theory of Operation
This section describes how the instruments work and includes the theory the measurements are based
on, specifics about the hardware, and more detail about the baseline measurement.
Measurement Theory
Thickness Measurement Details
Hardware Operation
The Baseline Measurement
84
The amplitude of the oscillations is determined by the refractive index and extinction coefficient of the
films and substrate. Therefore, by analyzing the period and amplitude of these oscillations, our
instruments can determine thickness of multiple thin films.
85
86
How to Contact Us
We welcome suggestions from our users on ways to improve our software and hardware. Please send us
any suggestions you may have for improvements in the help file or new features you would like to see in
the software.
We may be reached by phone at +1-858-573-9300, by fax at +1-858-573-9400, by the Contact Us Now form
on our website, or by e-mail at support@filmetrics.com.
87
5. Appendices
This section contains information on various topics as listed below:
Performance Specifications
How to Replace the Light Bulb
Automation and Data
SoftwareLicense Agreement
88
Wavelength Range:
Thickness Measurement
Range*:
Min. Thickness to Measure n
and k*:
Accuracy*: The > of 0.2% or
Precision1:
Stability2:
Spot Size:
Sample Size:
Light Source Lamp MTBF:
F20-UV F20-UVX
F20
F20-EXR
200-1100 200-1700 380-1050 380-1700
nm
nm
nm
nm
1 nm-40 1 nm-250 15 nm-70 15 nmm
m
m
250 m
50 nm
100 nm
1 nm
2 nm
F20-NIR F20-XT
950-1700 1440-1690
nm
nm
100 nm- 0.2 m250 m 450 m
500
3 nm
0.02 nm
0.1 nm
0.05 nm
0.12 nm
Standard 1.5mm, Optional down to 20 m
From 1mm to 300 mm diameter and up
D2:2000hr,
Halogen: 1200 hr
Halogen: 1200 hr
* Material dependent.
1 1 of 100 measurements of 500 nm SiO -on-Si. Average of 1 over 20 successive days.
2
2 2 of daily average of 100 measurements
of 500 nm SiO -on-Si over 20 successive days.
2
Computer Requirements:
Operating System:
PC: Windows XP (SP2) - Windows 8
Mac: OS XLion/Mountain Lion running Parallels
Processor ClockSpeed: 1.4 Ghz
Interface: USB 2.0
Screen Resolution: 1024x768
2 m
5 nm
1 nm
1 nm
600 m
89
90
91
92
93
The first step to taking transmittance measurements from curved surfaces is to connect the fiber optics
to the SS-Trans-Curved. Begin by connecting the two side-by-side ends of the 605-0726 fiber to the two
External Light Source Input ports on the rear of the SS-Trans-Curved. The 605-0726 fiber is Y shaped,
with the side-by-side ends form the top of the Y. Next, connect the other end of the 605-0726 fiber to
the light source. On UV and UVX systems, connect to the UV light source. For all other systems (VIS, NIR,
EXR) connect to the light source on the front of the spectrometer box. Finally, connect the 605-0517 fiber
to the Measurement Signal to Spectrometer port on the rear of the SS-Trans-Curved box and to the
Spectrometer Input port on the front of the spectrometer box.
With the fibers connected, you can now connect the stage to power using the provided power cord, and
the SS-Trans-Curved to your computer using the provided USB cable. Flick the power switch on the back
panel to the on position.
94
With the hardware configured, you'll now need to configure FILMeasure to measure transmittance. This
can be achieved in the EditRecipe dialog, underneath Acquisition Settings >Optics. See Example #4 for
more information on transmittance measurements.
95
B. Go to the Setup>Raw Signal dialog box and set the integration time for 20 milliseconds.
C. Click Start on the Setup>Raw Signal dialog box.
D. The fiber-optic cable contains 7 fibers a single detection fiber surrounded by 6 illumination
fibers. Do a rough focus adjustment by placing a diffuse surface (a business card works well) at the
sample position and then focus the light beam on the sample position by sliding the fiber-optic
cable inside the lens tube. (The diffuse reflector will allow you to see the beam.) When 6 individual
spots can be seen, slide the fiber-optic cable farther into the KM-GL25 until the spots merge into the
center of the illuminated area.
E. Place a reflecting sample, such as a silicon wafer, on the sample stage, under the lens assembly.
You should now see a trace on the screen. Turn the tilt adjustment screws to maximize the signal. If
the signal saturates, reduce the integration time (see step B).
F. Optimize the focus to maximize the measured signal by adjusting the fiber-optic cable position in
the lens assembly. Ideally, the best focus adjustment is when the beam is just under focused. To
achieve this, focus the beam on the reflecting sample, and then move the fiber-optic cable slightly
down in the lens tube until maximum signal is obtained. To see the beam, it may be necessary to
place a diffuse surface, such as a business card, over the sample. When finished, tighten the flat
head set screw that secures the fiber. Once again, if saturation occurs, it may be necessary to
reduce the integration time.
G. Repeat steps e) and f) to make certain the adjustments are optimal.
H. The setup is now complete. Close the Setup>Raw Signal dialog box.
96
* * Warning: * * Hazardous voltages are present within the unit. Never attempt
any maintenance without disconnecting the power cord.
Step by step:
1. Exit FILMeasure and turn off your computer.
2. Disconnect the power cable from the back of the unit.
3. Disconnect the fiber optic cables from the front of the unit.
4. Remove the two captive screws on the back panel opening the two halves of the enclosure.
97
98
SetThickness
SetThicknessRange
SpectrometerDiagnostics
Less-Commonly-Used Methods
The following methods are only rarely used. Methods which refer to a System are used with the F32 and
F37 thin film monitoring systems. Many methods accept either a measSystem or a measChannel guid.
However, some methods are relevant only to a single channel. If you supply a measSystem guid as the
argument for one of these methods, an exception will be thrown.
ActivateMonitorDisplayTab
BaselineExistsAndIsAuthenticated
GeneralPurposeIOIsSupported
GeneralPurposeIOReadValue
GeneralPurposeIOSetValue
MeasSystemGuid
MeasSystemGuids
MeasSystemHWName
MeasSystemName
NumberOfSystems
SaveImage
SetAutoFocus
SetRecipeModeToSpectrumAnalysis
SetRecipeSpectrumAnalysis
ShutdownRequestedHandler
ShuttingDown
SystemAutoSave
SystemAutoSaveBaseFileNameAndPath
SystemMeasure
SystemStartMonitoring
SystemStopMonitoring
SystemMeasurementCompletedEventHandler
FIRemoteCOM dll
The dll is automatically included whenever FILMeasure or FILMapper is installed. Since the dll references
the corresponding .exe file it is located inside the FILMeasure or FILMapper folder in the Program Files (or
Program Files (x86) on 64-bit systems) path. The best way to learn how to use the dll is to examine the
example Excel workbook that is included with the software. The workbook has the same name as the dll,
but has the extension .xlsm and is located in the same folder as the dll. When you open the . xlsm file for
the first time, you will see a warning banner as shown below.
99
You must click the Enable Content button in order to allow the code associated with the buttons on the
worksheets to run. If you do not see the security warning when you open the spreadsheet, then you
may need to modify settings in Excel using the Trust Center. The exact procedure varies, depending on
which version of Excel you are using.
To see the example source code, click the Developer tab on the ribbon. Then click Visual Basic and
double-click the ThisWorkbook object.
Reference for FIRemote Class:
FIRemote Class
FIRemote is exposed as a public assembly and is accessible using the Microsoft .NET programming
environment. The best way to learn how to use the FIRemote class is to look at the example program
and source code which are automatically installed as part of the FILMeasure software. Assuming that the
FILMeasure program is installed in the default location, the example software can be found in
C:\Program Files\Filmetrics\FILMeasure\SourceCode\FIRemoteTest. Additionally, an executable,
FIRemoteTest.exe, is located in the FILMeasure folder. All of the available commands can be tested using
FIRemoteTest.exe.
100
In order to set up a development environment for running and debugging code, the file system must be
set up so that the FILMeasure.exe is located in the same folder as the client program that is being
developed. Since FILMeasure expects to find its dependent files in the same directory as the executable,
this means that the entire contents of the FILMeasure folder must be copied to the build output folder.
For example, if the software development environment output folder is located in
C:\SourceCode\TestSln\TestPrj\bin\Debug\, then all the files and subfolders from C:\Program
Files\Filmetrics\FILMeasure\ must be copied to C:\SourceCode\TestSln\TestPrj\bin\Debug\.
Some of the methods listed in the following reference a SystemGuid. In the terminology used in this
document, a Measurement System is an object comprising one or more measurement channels, but
with operations that can be performed simultaneously on all the channels in the system. The
SystemGuid is used to distinguish between multiple simultaneously connected measurement systems.
Examples of measurement systems with multiple measurement channels include the F32 and F37.
Documentation for methods applying only to such measurement systems can be found in the Less
Commonly Used Methods section. In addition, some methods will accept either a SystemGuid or a
ChannelGuid. Such methods thus will execute an operation either on a single channel, or simultaneously
on all channels of a system.
Note that the FIMeasResults object which is returned by the Measure and AnalyzeSpectrum methods
has a large number of member functions and properties. Since the names are all self-explanatory, we
have not attempted to list all of the members here. The reader should use the Object Browser which is
built into Microsoft Visual Studio in order to discover the available properties and methods.
New
Public Sub New(ByVal showFILMeasureGUI As Boolean) (deprecated)
Public Sub New(ByVal showFILMeasureGUI As Boolean, ByRef
theConstructorWarning As ConstructorWarning, ByRef warningMessage As
String)(deprecated)
Public Sub New(ByVal guiType AsGraphicalUserInterfaceType, ByVal
guiStartupState AsGraphicalUserInterfaceStartupState, ByVal
guiWindowStartupState AsFormWindowState, ByRef theConstructorWarning
AsConstructorWarning, ByRef warningMessage As String)
guiType Determines if the FIRemote user interface and associated objects will be constructed at
startup. If guiType is set to None, then the startup process is accelerated and memory usage is
minimized. However, the user interface cannot be displayed at a later time if it is not constructed during
the startup process. If guiType is set to Standard, then the normal graphical user interface is
constructed during the startup process.
101
guiStartupState Determines whether or not the FIRemote user interface is displayed at startup. Note
that this argument has no effect if guiType = None. If guiStartupState is set to Hidden, then
the user interface will not be visible on screen at the completion of the startup process. If the user
interface was constructed at startup, it can be displayed at a later time by setting GUIVisible =
True.
guiWindowStartupState If guiStartupState is set to Shown then the FIRemote User interface
window will appear on the screen at the completion of the startup process. Note that this argument has
no effect if guiType = None. The state of the window is controlled by
guiWindowStartupState. You can set the state to Maximized, Normal, or Minimized.
theConstructorWarning Returned value of type ConstructorWarning (None or
StartupRecipeLoadFailure).
warningMessage Returned warning message string. Empty if None.
Remarks: You can suppress the display of the FIRemote user interface by setting guiType
appropriately. Typically, you would show the user interface during software development in order to aid
in the testing and debugging process. However, there are some applications where it is useful to be able
to show and hide the user interface while the software is running. This is accomplished with the
GUIVisible Property. The constructor warns if the startup recipe has problems loading and a default
recipe is loaded instead.
Return to Index...
AcquireSpectrum
Public Sub AcquireSpectrum(ByRef spectrumWavelengths() As Single,
ByRef spectrumData() As Single)
Public Sub AcquireSpectrum(ByRef spectrumWavelengths() As Single,
ByRef spectrumData() As Single, ByVal flushPipeline As Boolean)
Public Sub AcquireSpectrum(ByRef spectrumWavelengths() As Single,
ByRef spectrumData() As Single, ByRef secondarySpecWavelengths() As
Single, ByRef secondarySpecData() As Single, ByRef
primarySpecIsReflectance As Boolean)
Public Sub AcquireSpectrum(ByRef spectrumWavelengths() As Single,
ByRef spectrumData() As Single, ByVal secondarySpecWavelengths() As
Single, ByRef secondarySpecData() As Single, ByVal flushPipeline As
Boolean, ByRef primarySpecIsReflectance As Boolean)
Public Sub AcquireSpectrum(ByVal measChannelGuid As Guid, ByRef
spectrumWavelengths() As Single, ByRef spectrumData() As Single)
Public Sub AcquireSpectrum(ByVal measChannelGuid As Guid, ByRef
spectrumWavelengths() As Single, ByRef spectrumData() As Single,
ByVal flushPipeline As Boolean)
Public Sub AcquireSpectrum(ByVal measChannelGuid As Guid, ByRef
primarySpecIsReflectance As BooleanByRef spectrumWavelengths() As
Single, ByRef spectrumData() As Single)
102
ActivateChannelDisplayTab
Public Sub ActivateChannelDisplayTab(ByVal measChannelGuid As Guid)
measChannelGuid The GUID of the measurement channel of the corresponding Measurement Tab to
be selected.
Remarks: After execution, the active tab in the FILMeasure GUI will be the specified Measurement Tab.
This method should only be executed if multiple measurement channels exist.
Return to Index...
103
AnalyzeSpectrum
Public Function AnalyzeSpectrum(ByVal formatSummaryAsRtf As Boolean)
As FIMeasResults
Public Function AnalyzeSpectrum(ByVal formatSummaryAsRtf As Boolean,
ByVal addToHistory As Boolean) As FIMeasResults
Public Function AnalyzeSpectrum(ByVal measChannelGuid As Guid, ByVal
formatSummaryAsRtf As Boolean) As FIMeasResults
Public Function AnalyzeSpectrum(ByVal measChannelGuid As Guid, ByVal
formatSummaryAsRtf As Boolean, ByVal addToHistory As Boolean) As
FIMeasResults
measChannelGuid The GUID of the measurement channel for which a spectrum should be analyzed
and optionally added to history. If multiple measurement channels exist, the measChannelGuid must be
specified.
formatSummaryAsRtf The measurement summary returned by the .ResultsSummary property of the
FIMeasResults object can be formatted as either plain text or as rtf. Formatting the summary as rtf is
advantageous if it will be displayed to the user because then the full set of information including bold
font and colors will be included.
addToHistory Normally, each analysis result is added to the collection of results displayed in the History
area of FILMeasure. In some cases, it may be advantageous to suppress the addition of a result to the
History area. One example where this may be needed is the case where you wish to analyze a spectrum
with two different measurement recipes and then add only the best result to the History.
Remarks: The most-recently acquired spectrum can be analyzed by calling this function.
Return to Index...
AuthenticateRefBac
Public Sub AuthenticateRefBac()
Public Sub AuthenticateRefBac(ByVal measChannelOrSystemGuid As Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a baseline should be
recovered. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: Calling this method is equivalent to clicking Baseline to display the Baseline dialog and then
clicking Recover Last Baseline to recover an old baseline spectrum. Note that there are many situations
where an exception may be generated by calling this method. See the example program for details.
Return to Index...
104
BaselineAcquireBackgroundAfterRef
Public Sub BaselineAcquireBackgroundAfterRef()
Public Sub BaselineAcquireBackgroundAfterRef(ByVal
measChannelOrSystemGuid As Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a background should be
acquired. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: This method provides a means to automate what is most commonly called step #3 of the
Baseline procedure (step #4 for F10-RT, Reflection Only or Reflection and Transmittance. step #2 for
F10RTTransmittance Only). As the name of this method implies, you must have previously acquired a
reference spectrum.
Return to Index...
BaselineAcquireReference
Public Sub BaselineAcquireReference()
Public Sub BaselineAcquireReference(ByVal measChannelOrSystemGuid As
Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a reference should be
acquired. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: This method provides a means to automate what is most commonly called step #2 of the
Baseline procedure. Calling BaselineAcquireReference may generate an exception. There are a number of
rules required for successful execution of this method. Unless the acquisition timing mode in the recipe is
set to Manual, you must first call BaselineAcquireSpectrumFromSample. Alternatively, you could call the
variant of this method which accepts a user-supplied reflectance value if you know the sample
reflectance and wish to skip step #1.
Return to Index...
BaselineAcquireReferenceT
Public Sub BaselineAcquireReferenceT()
Public Sub BaselineAcquireReferenceT(ByVal measChannelOrSystemGuid As
Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a Transmittance
reference should be acquired. If multiple measurement channels exist, the measChannelGuid must be
specified.
105
Remarks: This method should only be called for the F10-RT. It provides a means to automate step #3 of
the Baseline procedure for Reflectance Only or Reflectance and Transmittance modes, or step #1 of
the Baseline procedure for Transmittance Only mode. No sample should be positioned on stage when
called.
Return to Index...
BaselineAcquireReferenceUsingOldSampleReflectance
Public Sub BaselineAcquireReferenceUsingOldSampleReflectance()
Public Sub BaselineAcquireReferenceUsingOldSampleReflectance(ByVal
measChannelOrSystemGuid As Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a reference should be
acquired. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: This method provides a means to automate steps 1 and 2 of the Baseline procedure by
assuming that the sample reflectance is unchanged from what it was the last time a baseline procedure
was performed. Note that an exception may be thrown in some situations including the case where no
prior baseline spectrum exists.
Return to Index...
BaselineAcquireSpectrumFromSample
Public Sub BaselineAcquireSpectrumFromSample()
Public Sub BaselineAcquireSpectrumFromSample(ByVal
measChannelOrSystemGuid As Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a sample spectrum
should be acquired. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: This method provides a means to automate what is most commonly called step #1 of the
Baseline procedure.
Return to Index...
BaselineCommit
Public Sub BaselineCommit()
Public Sub BaselineCommit(ByVal measChannelOrSystemGuid As Guid)
measChannelOrSystemGuid The GUID of the measurement channel for which a new baseline should be
commited. If multiple measurement channels exist, the measChannelGuid must be specified.
106
Remarks: Call this method to finalize the baseline procedure and commit the acquired spectra for use as
a new baseline measurement.
Return to Index...
BaselineSetRefMat
Public Sub BaselineSetRefMat(ByVal theRefMat As String)
Public Sub BaselineSetRefMat(ByVal measChannelOrSystemGuid As Guid,
ByVal theRefMat As String)
measChannelOrSystemGuid The GUID of the measurement channel for which the reference material
should be assigned. If multiple measurement channels exist, the measChannelGuid must be specified.
theRefMat The reference material as it would normally appear in the list of reference materials shown
in the Baseline dialog.
Remarks: This method should be called prior to acquiring a reference spectrum
Return to Index...
BaselineShowDialog
Public Sub BaselineShowDialog(ByRef dialogCanceled As Boolean)
dialogCanceled True if user has canceled the dialog.
Remarks: Calling this method will cause the baseline dialog box to be displayed on the screen
Return to Index...
GUIVisible
Public Property GUIVisible As Boolean
Remarks: Setting this property to True will cause the FIRemote user interface to be displayed on the
screen. Note that this will normally cause the user interface window to appear on top of any other
windows. If you wish to keep another window on top of the FIRemote user interface window, it may be
necessary to call .BringToFront on that other window. If the FIRemote object is constructed with
guiType set to None then an exception will be thrown if GUIVisible is set to True.
Return to Index...
107
HistoryDeleteAllResults
Public Sub HistoryDeleteAllResults()
Remarks: All measurement results in the History tab are deleted. If the FIRemote object has no user
interface (guiType = None in New()), then there is no measurement history and this function has
no effect.
Return to Index...
MeasChannelGuid
Public ReadOnly Property MeasChannelGuid(ByVal measChannelIndex As
Integer) As Guid
Public ReadOnly Property MeasChannelGuid(ByVal measSystemGuid As
Guid, ByVal measChannelIndex As Integer) As Guid
measSystemGuid The GUID of a measurement system.
measChannelIndex The zero-based index of the measurement channel.
Remarks: Returns the GUID of the specified channel. Note this can be used to obtain the GUID used by all
methods requiring a measChannelGUID. Also note that the relationship between measChannelIndex and
MeasChannelGuid is not static. Future versions of FILMeasure will dynamically reorder this list in
response to an equipment connect/disconnect event. You should not rely on the order of the channels
in the list when attempting to perform a command on a certain channel.
Return to Index...
MeasChannelGuids
Public ReadOnly Property MeasChannelGuids() As Collection(Of Guid)
Remarks: Returns a collection of GUID for each measurement channel that exists.
Return to Index...
MeasChannelHWName
Public ReadOnly Property MeasChannelHWName(ByVal measChannelGuid As
Guid) As String
measChannelGuid The GUID of the measurement channel for which the channel hardware name
should be returned.
108
Remarks: The hardware name is composed of a system name string and a serial number string separated
by a colon. Example: F20:09A006.
Return to Index...
MeasChannelHWSerialNumber
Public ReadOnly Property MeasChannelHWSerialNumber(ByVal
measChannelGuid As Guid) As String
Public ReadOnly Property MeasChannelHWSerialNumber(ByVal
measChannelGuid As Guid, ByVal spectrometerIndex As Integer) As
String
Public ReadOnly Property MeasChannelHWSerialNumber(ByVal
measChannelGuid As Guid, ByVal subsystemIndex As Integer, ByVal
spectrometerIndex As Integer) As String
measChannelGuid The GUID of the measurement channel.
spectrometerIndex The spectrometer index (to specify which of multiple spectrometers in the channel).
subsystemIndex The subsystem index (to select among multiple subsystems in the channel).
Remarks: Returns the controller hardware serial number of the specified spectrometer. If the
spectrometer or subsystem are not specified, the default index = 0 will be used. If there are multiple
subsystems, a hyphen followed by the subsystem ID is appended to the hardware serial number.
Example for single subsystem: 09A006. Example for multiple subsystem: 09A007-1
Return to Index...
MeasChannelName
Public ReadOnly Property MeasChannelName(ByVal measChannelGuid As
Guid) As String
measChannelGuid The GUID of the measurement channel for which the channel name should be
returned.
Remarks: By default the channel name is the empty string.
Return to Index...
Measure
Public Function Measure(ByVal formatSummaryAsRtf As Boolean) As
FIMeasResults
109
NumberOfChannels
Public ReadOnly Property NumberOfChannels() As Integer
Remarks: Number of measurement channels that exist.
Return to Index...
NumberOfSpectrometers
Public ReadOnly Property NumberOfSpectrometers(ByVal measChannelGuid
As Guid) As Integer
Public ReadOnly Property NumberOfSpectrometers(ByVal measChannelGuid
As Guid, ByVal subsystemIndex As Integer) As Integer
measChannelGuid The GUID of the measurement channel.
subsystemIndex Thesubsystem index (to specify which of multiple subsystems in the channel).
110
Remarks: The number of spectrometers in the specified subsystem. If subsystemIndex is not provided,
the default index = 0 will be used.
Return to Index...
NumberOfSubSystems
Public ReadOnly Property NumberOfSubSystems(ByVal measChannelGuid As
Guid) As Integer
measChannelGuid The GUID of the measurement channel.
Remarks: The number of subsystems that compose the specified measurement channel.
Return to Index...
OpticsConfiguration
Public Property OpticsConfiguration() As OpticsConfigSystemTypes
[Get/Set]
Public Property OpticsConfiguration(ByVal measChannelGuid As Guid) As
OpticsConfigSystemTypes [Get/Set]
measChannelGuid The GUID of the measurement channel for which the OpticsConfiguration is to be
get/set. If multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: If the OpticsConfigSystemTypes is not be compatible with the hardware an exception will be
thrown.
Return to Index...
OpenSpectrum
Public Sub OpenSpectrum(ByVal filenameAndPath As String)
Public Sub OpenSpectrum(ByVal filenameAndPath As String, ByVal
measChannelGuid As Guid)
filenameAndPath The full path and filename (including extension) of the spectrum. If the file cannot be
opened, an exception will be thrown.
measChannelGuid The GUID of the measurement channel for a spectrum is to be opened. If multiple
measurement channels exist, the measChannelGuid must be specified.
Remarks: Unlike the behavior when a spectrum is opened in FILMeasure, the software will not
automatically analyze the spectrum after opening it. If analysis of the spectrum is desired, then the
Analyze function must be called.
111
Return to Index...
OpenSpectrumFromBuffer
Public Sub OpenSpectrumFromBuffer(ByVal theBuffer As Byte())
Public Sub OpenSpectrumFromBuffer(ByVal theBuffer As Byte(), ByVal
measChannelGuid As Guid)
theBuffer Byte array containing spectrum. Data in this array must have been created by
SaveSpectrumToBuffer method.
measChannelGuid The GUID of the measurement channel for a spectrum which is to be opened. If
multiple measurement channels exist, the measChannelGuid must be specified.
Remarks: See remarks after SaveSpectrumToBuffer
Return to Index...
RecipeInfo
Public ReadOnly Property RecipeInfo() As FIRecipeInfo
Public ReadOnly Property RecipeInfo(measChannelOrSystemGuid) As Guid)
As FIRecipeInfo
measChannelGuid - The GUID of the measurement channel associated with a measurement recipe. If
multiple measurement channels exist the measChannelOrSystemGuid must be specified.
Remarks: The FIRecipeInfo object contains an assortment of information about the recipe including
information about the film stack, if appropriate..
Return to Index...
SaveSpectrum
Public Sub SaveSpectrum(ByVal filenameAndPath As String)
Public Sub SaveSpectrum(ByVal filenameAndPath As String, ByVal
ifTextFormatWriteYDataAsPercent As Boolean)
filenameAndPath The full path and filename (including extension) of the spectrum. The file format is
determined by the extension. Valid file extensions are the same as the extensions listed in the Save
Spectrum dialog windows accessed via the File->Save Measured Spectrum menu item in FILMeasure.
112
SaveSpectrumToBuffer
Public Sub SaveSpectrumToBuffer( As Byte()
Remarks: This function allows the caller to rapidly retrieve the complete set of data contained in a
spectrum, thereby avoiding the time that would be consumed if the spectrum were saved to a file. This
may be useful in cases where the caller wishes to rapidly acquire a number of spectra and store them up
for later saving to file or analysis. The contents of the buffer should be considered opaque. Any changes
to the data in the buffer may render the data unusable and/or may not be compatible with future
versions of FILMeasure.
Return to Index.
SetAnalysisWavelengthRange
Public Sub SetRecipeSetAnalysisWavelengthRange(ByVal
measChannelGuidmeasChannelOrSystemGuid AsGuid, ByVal startWavelength_
nm As Single, ByVal endWavelength_nm As Single)
Public Sub SetAnalysisWavelengthRange(ByVal startWavelength_nm As
Single, ByVal endWavelength_nm As Single)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
startWavelength_nm Starting wavelength for spectrum analysis.
endWavelength_nm Ending wavelength for spectrum analysis.
Remarks: Setting the wavelength range will also switch the recipe into using a specified wavelength range
instead of using the entire wavelength range visible on the spectrum graph.
Return to Index.
113
SetMaterial
Public Sub SetMaterial(ByVal measChannelOrSystemGuid AsGuid, ByVal
layerNumber As Integer, ByVal materialName As String)
Public Sub SetMaterial(ByVal layerNumber As Integer, ByVal
materialName As String)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
layerNumber The layer number for which to modify the material.
materialName String containing name of the material.
Remarks: You can alter the material of a layer in the current recipe using the method. An exception will be
thrown if the layer number is out-of-bounds or the material does not exist.
Return to Index.
SetN
Public Sub SetN(ByVal measChannelOrSystemGuid AsGuid, ByVal
layerNumber As Integer, ByVal refractiveIndex As Single)
Public Sub SetN(ByVal layerNumber As Integer, ByVal refractiveIndex
As Single)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
layerNumber The layer number for which to set the refractive index.
refractiveIndex New refractive index value for layer.
Remarks: You can alter the material of a layer in the current recipe using the method. An exception will be
thrown if the layer number or refractive index are out-of-bounds.
Return to Index.
114
SetRecipe
Public Sub SetRecipe(ByVal measChannelOrSystemGuid As Guid, ByVal
recipeName As String)
Public Sub SetRecipe(ByVal recipeName As String)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
recipeName The recipe name to be selected must exist in the list of recipes. Note that you can select
recipes contained in subfolders by specifying the relative path, using the backslash character \ to
separate folder names as is conventional in path naming.
Remarks: The current spectrum will not be automatically reanalyzed when a new recipe is selected. To
reanalyze the spectrum you must call AnalyzeSpectrum.
Return to Index.
SetRoughness
Public Sub SetRoughness(ByVal measChannelOrSystemGuid As Guid, ByVal
layerNumber As Integer, ByVal roughness_nm As Single)
Public Sub SetRoughness(ByVal layerNumber As Integer, ByVal
roughness_nm As Single)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
layerNumber The layer number for which to modify the roughness.
roughness_nm Roughness value which will appear in the Layers tab of the recipe for the specified layer.
Units are nanometers.
Remarks: You can alter the roughness of a layer in the current recipe using the method. An exception will
be thrown if the layer number or roughness are out-of-bounds.
Return toIndex
115
SetThickness
Public Sub SetThickness(ByVal measChannelOrSystemGuid As Guid, ByVal
layerNumber As Integer , ByVal thickness_nm As Single)
Public Sub SetThickness(ByVal layerNumber As Integer, ByVal
thickness_nm As Single)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
layerNumber The layer number for which to modify the thickness.
thickness_nm Thickness value which will appear in the Layers tab of the recipe for the specified layer.
Units are nanometers.
Remarks: You can alter the thickness of a layer in the current recipe using the method. An exception will
be thrown if the layer number or thickness is out-of-bounds.
Return toIndex
SetThicknessRange
Public Sub SetThicknessRange(ByVal layerNumber As Integer, ByVal
layerNumber As Integer , ByVal thicknessRange As Double)
Public Sub SetThicknessRange(ByVal measChannelOrSystemGuid AsGuid,
ByVal layerNumber As Integer, ByVal thicknessRangePercent As Double)
measChannelOrSystemGuid The GUID of the measurement channel or system. If multiple
measurement channels exist, the measChannelOrSystemGuid must be specified (since each
measurement channel has its own active recipe).
layerNumber The layer number for which to modify the thickness.
thicknessRangePercent Thickness range which will appear in the Layers tab of the recipe for the
specified layer. Note that the value accepted by this function is always a percentage, regardless of the
setting in the recipe editor which shows the range as either a percentage or a thickness. Minimum value
is zero. There is no maximum value.
Remarks: You can alter the thickness range setting for a layer in the current recipe using the method. An
exception will be thrown if the layer number or thickness range are out-of-bounds.
Return toIndex
116
SpectrometerDiagnostics
Public ReadOnly Property SpectrometerDiagnostics()
AsFISpecDiagnosticsInfo()
Public ReadOnly Property SpectrometerDiagnostics(ByVal
measChannelGuid AsGuid)As FISpecDiagnosticsInfo()
Public ReadOnly Property SpectrometerDiagnostics(ByVal
measChannelGuid As Guid, ByVal subsystemIndex As Integer) As
FISpecDiagnosticsInfo()
measChannelGuid The GUID of the measurement channel.
subsystemIndex The subsystem index (to select among multiple subsystems in the channel).
Remarks: Returns an array of objects containing information about the spectrometers. Information
includes integration time, peak raw signal intensities of reference and background spectra, etc.
Return toIndex
ActivateMonitorDisplayTab
Public Sub ActivateMonitorDisplayTab()
Public Sub ActivateMonitorDisplayTab(ByVal measSystemGuid As Guid)
measSystemGuid The GUID of the measurement System. If multiple measurement channels exist, the
measChannelGuid must be specified (since each measurement channel has its own active recipe).
Remarks: This function is provided to permit synchronization of the FILMeasure user interface with the
user interface of a client program.
Return to Index...
BaselineExistsAndIsAuthenticated
Public Function BaselineExistsAndIsAuthenticated(ByRef
authenticationIsPossible As Boolean) As Boolean
Public Function
BaselineExistsAndIsAuthenticated(measChannelOrSystemGuid As Guid,
ByRef authenticationIsPossible As Boolean) As Boolean
117
Remarks: In some cases, it is desirable to check whether the baseline is already authenticated and if not
whether it is possible to authenticate it. The client software has the option of automatically
authenticating the baseline if that is desirable.
Return to Index...
GeneralPurposeIOIsSupported
Public ReadOnly Property GeneralPurposeIOIsSupported() As Boolean
Remarks: Primary purpose of this property is to permit the example program to hide or show the
General PurposeIO controls. This property will be True for equipment that has the GeneralPurpose IO
hardware.
Return to Index...
GeneralPurposeIOReadValue
Public Function GeneralPurposeIOReadValue() As Byte
Remarks: Returns a single byte containing the current values of the general purpose IO logic input
signals. Bit value of 1 means that the input voltage is in the logic high state. These input signals are only
available on certain types of equipment.
Return to Index...
GeneralPurposeIOSetValue
Public Sub GeneralPurposeIOSetValue(newValue As Byte)
newValue - New values for the output bits.
Remarks: Sets the output state of the general purpose IO logic output signals. Setting a bit to 1 will set
the corresponding output to the logic high state. These output signals are only available on certain types
of equipment.
Return to Index...
MeasSystemGuid
Public ReadOnly Property MeasSystemGuid(ByVal measSystemIndex As
Integer) As Guid
measSystemIndex The zero-based index of the system.
118
Remarks: Returns the GUID of the specified system. Note this can be used to obtain the GUID used by all
methods requiring a measSystem GUID. Also note that the relationship between measSystemIndex and
MeasSystemGuid is not static. Future versions of FILMeasure will dynamically reorder this list in
response to an equipment connect/disconnect event. You should not rely on the order of the systems in
the list when attempting to perform a command on a certain system.
Return to Index...
MeasSystemGuids
Public ReadOnly Property MeasSystemGuids() As Collection(Of Guid)
Remarks: Returns a collection of GUIDs containing one item for each measurement system that exists.
Return to Index...
MeasSystemHWName
Public ReadOnly Property MeasSystemHWName(ByVal systemGuid As Guid)
As String
systemGuid The GUID of a measurement system.
Remarks: The hardware name is composed of a system name string and a serial number string separated
by a colon. Example: F37:09A006
Return to Index...
MeasSystemName
Public ReadOnly Property MeasSystemName(ByVal systemGuid As Guid) As
String
systemGuid The GUID of a measurement system.
Remarks: The default system name is the empty string.
Return to Index...
NumberOfSystems
Public ReadOnly Property NumberOfSystems() As Integer
Remarks: Number of measurement systems that exist.
119
Return to Index...
SaveImage
Public Sub SaveImage(ByVal filenameAndPath As String)
Remarks: Save image from most-recently acquired spectrum as a separate file.
Return to Index...
SetAutoFocus
Public Property SetAutoFocus
As Boolean
Remarks: Get or set the state of the Use AutoFocus checkbox in the Acquisition Settings tab of the
current recipe.
Return to Index...
SetRecipeModeToSpectrumAnalysis
Public Sub SetRecipeModeToSpectrumAnalysis()
Public Sub SetRecipeModeToSpectrumAnalysis(ByVal
measChannelOrSystemGuid As Guid)
Public Sub SetRecipeModeToThickness()
Public Sub SetRecipeModeToThickness(ByVal measChannelOrSystemGuid As
Guid)
measChannelOrSystemGuid The GUID of one of the measurement channels in a muliple channel
system or the GUID of the system. If multiple measurement channels exist, the measChannelGuid must
be specified.
Remarks: If Spectrum Analysis recipes are supported by the hardware or add-on licenses, then the
Measure tab in the user interface will display a tab control that allows the user to switch modes. The tab
associated with the Spectrum Analysis recipe mode is labeled AR or Spectrum. The other tab is
labeled HC or Thickness or Thickness, n, k, r. Calling SetRecipeModeToSpectrumAnalysis or
SetRecipeModeToThickness is the same as clicking on the Spectrum or Thickness tab in the user
interface.
SetRecipeSpectrumAnalysis
Public Sub SetRecipeSpectrumAnalysis(ByVal recipeName As String)
Public Sub SetRecipeSpectrumAnalysis(ByVal measChannelOrSystemGuid As
Guid, ByVal recipeName As String)
Public Sub SetRecipeThickness()
120
ShutdownRequestedHandler
Public Delegate SubShutdownRequestedHandler(ByVal e As
Windows.Forms.FormClosingEventArgs)
Public Event ShutdownRequested As ShutdownRequestedHandler
ShuttingDown
Public Event ShuttingDown()
Remarks: Client software can add an event handler for this event in order to facilitate performing any
necessary shut-down actions. This event is primarily used in order to permit client software to react to
closing of the FIRemote user interface.
SystemAutoSave
Public Property SystemAutoSave() As Boolean
Public Property SystemAutoSave(ByVal systemGuid As Guid) As Boolean
systemGuid The GUID of a measurement system.
121
Remarks: You can set or get the state of the AutoSave setting using this property. Note that setting a
new state for SystemAutoSave will not affect an on-going monitor process, but will take effect the next
time a new set of data starts being collected.
Return to Index...
SystemAutoSaveBaseFileNameAndPath
Public Property SystemAutoSaveBaseFileNameAndPath() As String
Public Property SystemAutoSaveBaseFileNameAndPath(ByVal systemGuid As
Guid) As String
systemGuid The GUID of a measurement system.
Remarks: You can set or get the base filename and path for the AutoSave file using this property. The full
filename is generated by appending a date and time stamp to the base filename. Note that setting a new
filename will not affect an on-going monitor process, but will take effect the next time a new set of data
starts being collected.
Return to Index...
SystemMeasure
Public Function SystemMeasure() As FIMeasResultValuesOnly
Public Function SystemMeasure(ByVal
deleteAccumulatedDataBeforeMeasure As Boolean) As
FIMeasResultValuesOnly
Public Function SystemMeasure(ByVal systemGuid As Guid) As
FIMeasResultValuesOnly
Public Function SystemMeasure(ByVal systemGuid As Guid, ByVal
deleteAccumulatedDataBeforeMeasure As Boolean) As
FIMeasResultValuesOnly
deleteAccumulatedDataBeforeMeasure There is no analog for this parameter in the user interface.
Setting this parameter to True causes any existing accumulated data points to be deleted before the
measurement is performed.
systemGuid The GUID of a measurement system.
Remarks: Acquire and measure on all channels in a system. Measurement is performed simultaneously
on all channels. Measured results are contained in an FIMeasResultValuesOnly object.
Return to Index...
122
SystemStartMonitoring
Public Sub SystemStartMonitoring()
Public Sub SystemStartMonitoring(ByVal systemGuid As Guid)
systemGuid The GUID of a measurement system.
Remarks: This function starts a monitoring process
Return to Index...
SystemStopMonitoring
Public Sub SystemStopMonitoring()
Public Sub SystemStopMonitoring(ByVal systemGuid As Guid)
Remarks: This function stops a monitoring process.
Return to Index...
SystemMeasurementCompletedEventHandler
Public Delegate Sub SystemMeasurementCompletedEventHandler(ByVal
systemGuid As Guid, ByVal theResults As FIMeasResultValuesOnly)
Public Event SystemMeasurementCompleted As
SystemMeasurementCompletedEventHandler
systemGuid The GUID of a measurement system.
Remarks: This event is raised upon completion of a SystemMeasure task and after each measurement
during a SystemMonitor process. You should avoid performing lengthy operations (such as writing data
to a file) in the handler for this event because the monitor process will be halted until the handler
function exits. If execution of a lengthy operation is needed, you should invoke a different thread to
perform the operation. If the event is raised as a result of completing a SystemMeasure task, then you
will need to exercise care to avoid creating a threading deadlock. A deadlock will occur if you invoke the
thread which called SystemMeasure in the handler for this event because that thread will not return
from SystemMeasure until all the event handlers have finished executing. See the FIRemoteTest example
program to see one way to avoid the deadlock problem.
Return to Index...
123
124
SOURCE CODE
If source code to the Software was supplied to you, then you may modify and use that source code in
place of the executable version of the Software, but no further rights to distribution or use are granted.
You acknowledge that you have no obligation to create modifications of the Software source code
(Licensed Revisions) nor to disclose such Licensed Revisions to Licensor. You acknowledge that by
making Licensed Revisions, the underlying Software may not be compatible with any future versions of
the Software that Licensor might offer (in Licensors sole discretion), and you agree to assume such risk.
Continuing for the term of this Agreement, you hereby grant to Licensor and its affiliates a limited nontransferable, non-exclusive, worldwide, fully paid-up, royalty-free license (with the right to sublicense) to
make, use, sell, offer to sell, import, export and otherwise distribute such Licensed Revisions under any
of your patents that, if not authorized, would be directly or indirectly infringed by the manufacture, use,
sale, offer to sell or other distribution of the Licensed Revisions. You may not combine or distribute the
Software or Licensed Revisions with Open Source Software (as defined below) or with software developed
using Open Source Software (e.g., tools) in a manner that subjects the Software and Licensed Revisions
or any portion thereof to any license obligations of such Open Source Software. "Open Source Software"
means any software licensed under terms requiring that other software combined or distributed with
such software: (i) be disclosed or distributed in source code form; (ii) be licensed on terms inconsistent
with the terms of this Agreement.
TERM
This Agreement is effective until terminated. You may terminate it at any time by destroying the Software
together with all copies, modifications and merged portions in any form. This Agreement will
immediately and automatically terminate without notice if you fail to comply with any term or condition
of this Agreement. You agree upon termination to cease using and promptly destroy the Software and
Licensed Revisions together with all copies in any form.
GOVERNMENT LICENSEE
If you are acquiring the Software on behalf of any unit or agency of the United States Government, the
following provisions apply:
The Government acknowledges the licensors representation that the Software and its documentation
were developed at private expense and no part of them is in the public domain. The Software is a
"commercial item," as that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting of "commercial
computer software" and "commercial computer software documentation," as such terms are used in 48
C.F.R. 12.212 (SEPT 1995). All U.S. Government licensees and end users acquire the Software with only
those rights set forth herein.
EXPORT LAW ASSURANCES
You acknowledge and agree that the Software is subject to restrictions and controls imposed by the
United States Export Administration Act (the Act) and the regulations thereunder. You agree and certify
that neither the Software nor any direct product thereof is being or will be acquired, shipped, transferred
or re-exported, directly or indirectly, into any country prohibited by the Act and the regulations
thereunder or will be used for any purpose prohibited by the same.
125
DISCLAIMER OF WARRANTIES. EXCEPT TO THE EXTENT OF ANY LIMITED WARRANTY PROVIDED BY THE
SELLER, THE SOFTWARE IS FURNISHED "AS-IS", AND TO THE MAXIMUM EXTENT PERMITTED BY
APPLICABLE LAW, LICENSOR MAKES NO WARRANTY, EXPRESS, IMPLIED OR STATUTORY, INCLUDING ANY
IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT OF ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS OR OTHER INTELLECTUAL
PROPERTY RIGHTS. LICENSOR DOES NOT WARRANT THAT THE SOFTWARE IS FREE FROM BUGS, VIRUSES,
ERRORS OR OTHER PROGRAM LIMITATIONS. YOU AGREE TO USE YOUR INDEPENDENT JUDGMENT IN
DEVELOPING YOUR PRODUCTS. YOU ACKNOWLEDGE AND AGREE THAT LICENSOR IS UNDER NO
OBLIGATION TO INSTALL, MAINTAIN OR SUPPORT THE SOFTWARE, OR PROVIDE UPGRADES OR NEW
RELEASES THEREOF, SHOULD LICENSOR PROVIDE ANY ASSISTANCE LICENSOR MAKES NO WARRANTIES
WITH RESPECT TO ANY SUCH ASSISTANCE. YOU ASSUME THE ENTIRE RISK ARISING OUT OF THE USE OR
PERFORMANCE OF THE SOFTWARE AND ANY SYSTEMS OR PRODUCTS YOU DESIGN USING THE
SOFTWARE.
EXCLUSION OF DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
LICENSOR, OR ITS EMPLOYEES, OFFICERS, DIRECTORS, AGENTS, AFFILIATES OR ANY APPLICABLE
LICENSOR (TOGETHER THE REPRESENTATIVES), BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
PUNITIVE OR CONSEQUENTIAL DAMAGES, INCLUDING BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF
USE, LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS OR LOST PROFITS, SAVINGS OR REVENUES,
HOWEVER CAUSED, ON ANY THEORY OF LIABILITY, IN CONNECTION WITH OR ARISING OUT OF THIS
AGREEMENT, THE SOFTWARE, THE LICENSED REVISIONS EVEN IF LICENSOR REPRESENTATIVES HAVE BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY SET FORTH HEREIN IS FOUND
TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. IN NO EVENT SHALL LICENSORS AGGREGATE LIABILITY
UNDER THIS AGREEMENT EXCEED USD $500.00 OR THE FEES PAID BY YOU FOR THE SOFTWARE UNDER
THIS AGREEMENT. THE LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL ELEMENTS OF
THE BASIS OF THE BARGAIN BETWEEN LICENSOR AND YOU.
126
GENERAL
This Agreement will be governed by the laws of the State of California, U.S.A. without regard to its conflict
of law provisions. If a court of competent jurisdiction finds any provision of the Agreement to be
unenforceable, that provision will be enforced to the maximum extent possible to effectuate the intent of
the parties, and the remainder of the Agreement will continue in full force and effect. Failure of Licensor
to enforce any terms of this Agreement shall not be deemed or considered a waiver of future
enforcement of that or any other term in this Agreement and no consent, waiver, or excuse by Licensor,
express or implied, constitutes a subsequent consent, waiver or excuse. You acknowledge that you have
read this Agreement, understand it and agree to be bound by its terms and conditions. You further agree
that it is the complete and exclusive statement of the agreement between us which supersedes any
proposal or prior agreement, oral or written, and any other communications between us in relation to
the subject matter of this Agreement. This Agreement shall be modified only by a written instrument
signed by a duly authorized representative of Licensor, or from time to time, Licensor may modify or
change the terms and conditions of this Agreement and supersede the terms of any prior version of this
Agreement, in connection with any supplemental, different or new terms that might apply to an update
or upgrade of the Software made available by Licensor, in Licensors sole discretion. Your continued use
of the Software after you download and accept the new, additional or changed terms applicable to such
update or upgrade will indicate your agreement to the change to this Agreement. You may not sell,
assign, transfer, delegate, convey, pledge, encumber or otherwise dispose of, by operation of law or
otherwise, the Software, Licensed Revisions or this Agreement, or any rights or obligations hereunder.
Licensor may assign this Agreement, and any or all of its rights and duties under this Agreement, without
prior notice to you or your consent. You hereby warrant and represent that you have obtained all
authorization and other applicable consents required empowering you to enter into this Agreement.
Rights and obligations under this Agreement which by their nature should survive, will remain in effect
after termination or expiration of this Agreement.