Galvo Power Correction

HARDWARE: Galvo Power Correction is available only if you are using the GL4.

IMPORTANT: Galvo and GL4 functionality are only available if you are using the PC-based controller.

You can use Galvo Power Correction to correct the laser power output on the galvo axes of a galvo drive. Based on the position of the two galvo axes you can scale the voltage of a specified analog output on the drive using CorrectionMultiplier arguments. The drive computes the actual output voltage by multiplying the commanded analog output voltage (AnalogOutputSet() function) by the value of the CorrectionMultiplier argument that is applicable to the row and column input axes position.

When an analog output is under Galvo Power Correction control, the value of the output voltage that you read is not the same as the actual analog output voltage. To get the actual value of the analog output voltage, use the GalvoLaserPowerCorrectionOutput value of the DriveItem enumeration with the data item of the DriveGetItem() function.

You can edit the galvo power correction configuration by using the Controller Category of the Configure Workspace. You can also load galvo power correction files without resetting the controller by using the CalibrationLoad() function. For more information, refer to Calibration Functions.

Galvo Power Correction File Format

Galvo Power Correction files are text files with *.cal extensions and must contain only power correction tables. In the Galvo Power Correction file, each galvo drive can have one Galvo Power Correction table.

IMPORTANT: Typically, axis indices are specified as zero-based integers. But galvo power correction files specify axis indices as one-based integers.

A Galvo Power Correction file is delimited by the :GALVOPOWER2D and :END identifier tokens. A calibration table can have more than one :GALVOPOWER2D line. If a calibration table has more than one :GALVOPOWER2D line, only the first :GALVOPOWER2D token should be followed by the required arguments in this order: RowAxis, ColumnAxis, SampDistRow, SampDistCol, and NumCols. If you have more than one :GALVOPOWER2D line the ANALOGOUT argument can go with either line, but it is always required.

The remaining table, before the :END keyword, is composed of CorrectionMultiplier values. The table must specify 65 rows and 65 columns of CorrectionMultiplier values. The other keywords are optional.

Table: Galvo Power Correction File Format Settings

Setting

Description

RowAxis

The index (1-32) of the row input axis. The axes are indexed vertically through the table. It must be the second galvo axis on the drive.

ColumnAxis

The index (1-32) of the column input axis. The axes are indexed horizontally through the table. It must be the first galvo axis on the drive.

SampleDistRow

Distance between rows. This distance is added to every row after the first row, which is RowAxis Position = 0. The value must equal the value of the SampleDistCol argument.

SampleDistCol

Distance between columns. This distance is added to every column after the first column, which is ColumnnAxis Position = 0. The value must equal the value of the SampleDistRow argument.

NumCols

The number of columns in the table. There must be 65 columns. The number of rows must be the same as the number of columns.

ANALOGOUTPUT

The analog output to which the CorrectionMultiplier arguments will be applied.

[POSUNIT=posunit]

Optional. Specifies the position units of the SampDistRow and SampDistCol arguments. Valid unit-based keywords are PRIMARY, SECONDARY, and COUNTS.

You can use the forward slash character (/) to include an optional divisor that lets you specify position units as microns, nanometers, or other units. If you use an optional divisor, make sure that you do not include white space before or after the forward slash character.

For Example

POSUNIT=PRIMARY/1000

If the primary units that you use are millimeters, then the units of the values in the galvo power correction table are microns.

If you do not specify this keyword, the controller uses encoder counts for the position units of the SampleDistRow and SampDistCol arguments.

[CORSCALE=scale]

Optional. An additional scale factor by which each correction multiplier in the table will be multiplied.

This can be useful if the minimum to maximum voltage range changes after the table is created. If you do not specify this keyword, the value is set to 1.0. CORSCALE must be a positive value.

CorrectionMultiplier

A correction scale factor that will be multiplied by the active voltage level. A value of 1.0 results in the nominal voltage.

Each value of CorrectionMultiplier that is sent to the drive must be greater than or equal to 0.0 and less than or equal to 10.0 after being multiplied by the CORSCALE keyword.