LogoLogo
Software DownloadsDatasheetsRequest Support
  • Axsun Knowledge Base
  • OCT Product Configurations
  • Essential Information Guide
  • Getting Started Guides
    • SS-OCT Laser Engine
    • Integrated Engine (Laser & DAQ)
      • Making Connections
      • Installing Software
      • Operating the Integrated Engine
  • Reference Manuals
    • Dimensions
    • Electrical Interfaces & Connectors
    • Environmental Requirements
    • SS-OCT Laser Engine
      • Advanced Laser Engine Features
      • Laser Accessories
      • Laser Test Report
      • Frequently Asked Questions
      • Laser Troubleshooting
    • Ethernet/PCIe DAQ Board
      • Architecture & Interface Background
      • Basic Operation
      • Advanced DAQ Features
      • FPGA Register Reference
      • Frequently Asked Questions
      • DAQ Troubleshooting
    • Camera Link DAQ Board
  • How-Tos
    • Upgrading Board Firmware
    • Upgrading FPGA Bitstreams
    • Using AxsunOCTControl.dll in C++
    • Operating a Variable Delay Line
    • Using the Interface Board
    • Installing the PCIe Device Driver
  • Using Bus Power for the PCIe DAQ
  • Software Tools
    • OCT Host
    • Hardware Control Tool
    • Image Capture Tool
  • API References
    • AxsunOCTControl (.NET)
      • Using the Control.NET API
      • AxsunOCTControl Function Reference
    • AxsunOCTControl_LW (light-weight)
      • Using the Control_LW API
      • AxsunOCTControl_LW Function Reference
    • AxsunOCTCapture
      • Using the Capture API
      • Linux Installation
      • AxsunOCTCapture Function Reference
  • Other
    • Software Downloads
    • Datasheets
    • References
    • Contact Excelitas For Help
      • Tech Support Request Form
Powered by GitBook

© 2025 Excelitas Technologies

On this page
  • Before you Begin
  • VDL Optical Module Installation
  • VDL Operation

Was this helpful?

  1. How-Tos

Operating a Variable Delay Line

This page describes how Standard OEM laser engines and Axsun Integrated Engines can operate a miniature motorized Variable Delay Line (VDL) if the optional driver electronics are installed.

PreviousUsing AxsunOCTControl.dll in C++NextUsing the Interface Board

Last updated 2 years ago

Was this helpful?

Before you Begin

Insure these prerequisites are met before using the VDL optical module per the instructions listed below:

  • VDL driver circuit and VDL connector receptacle must be installed on the Laser driver board.

  • Laser driver board must be (or connected via Ethernet DAQ).

  • Axsun USB device driver must be installed on the host PC (or network card must have appropriate configuration if connected via Ethernet DAQ).

  • / (API access) or / (GUI tools) must be installed on the host PC.

VDL Optical Module Installation

With the Laser Engine powered OFF, plug the VDL optical module's electrical connector into the corresponding receptacle on the laser driver board. The beige 2x5-pin VDL connector is unique and can only be plugged into one receptacle on the laser driver board. Also connect the VDL module's fiber connector(s) to your optical network as desired.

VDL Operation

Adjustment of the optical delay provided by the VDL optical module is achieved by movement of a retroreflector mounted on a carriage actuated linearly by a stepper motor turning a lead screw. The user sends commands to the Laser driver board microcontroller firmware which then controls the stepper motor motion.

There is no linear encoder present, hence the controller firmware must register itself with the actual physical position of the carriage by moving it to one extreme until it triggers a limit switch. This process is called homing or zeroing the VDL. Once the VDL has been homed, the firmware tracks the carriage position by accumulating all issued steps in the positive and negative directions. The homed position is considered the 0.00 mm delay point.

IMPORTANT! For accurate motion control of the VDL, the homing operation must be performed after each power-on cycle of the Laser driver board (i.e. any time the device firmware is rebooted).

Homing the VDL

The VDL Homing operation must be performed for each power-on cycle of the Laser Engine board by calling axHomeVDL(). The carriage is moved in the negative direction until it reaches the home limit switch and then backs off the switch slightly. All subsequent motion within the delay range is referenced to this 0.00 mm position. This function returns after requesting the homing operation from the VDL controller; it does not wait for the mechanical homing operation to complete before returning.

Moving the VDL to a Desired Position

The VDL can be moved in a relative fashion (positive or negative displacement from the current position) with axMoveRelVDL(..) or in an absolute fashion (directly to a fixed position within the delay range) with axMoveAbsVDL(..). Any requests to move the VDL to a position which is outside of its allowable delay range (0 to 15 mm) will be ignored. These functions return immediately after requesting the the move operation from the VDL controller; they do not wait for the requested move operation to complete before returning.

Querying the Status of the VDL

The status of the VDL hardware can be queried or polled with axGetVDLStatus(..), providing information useful especially during a home or move operation, such as: instantaneous position and speed, target position for the current move, and limit switch state. After issuing a home or move command, poll this function to determine if the operation has completed or failed with an error.

Stopping the VDL

A VDL operation in progress can be stopped immediately using axStopVDL(). This function returns after requesting the stop operation from the VDL controller; it does not wait for the mechanical operation to stop before returning.

Homing the VDL

The VDL Homing operation must be performed for each power-on cycle of the Laser driver board. The carriage is moved in the negative direction until it reaches the home limit switch and then backs off the switch slightly. All subsequent motion within the delay range is referenced to this 0.00 mm position. This method returns after requesting the homing operation from the VDL controller; it does not wait for the mechanical homing operation to complete before returning.

uint  HomeVDL()       // returns 0 (success) or error code

Moving the VDL to a Desired Position

The VDL can be moved in a relative fashion (positive or negative displacement from the current position) or absolute fashion (directly to a fixed position within the delay range). Any requests to move the VDL to a position which is outside of its allowable delay range (0 to 15 mm) will be ignored. These methods return immediately after requesting the the move operation from the VDL controller; they do not wait for the requested move operation to complete before returning.

uint  MoveRelVDL(    // returns 0 (success) or error code
    float Position,  // distance to move relative to the current position (mm)
    float Speed)     // the speed at which to move (mm/sec)
uint  MoveAbsVDL(    // returns 0 (success) or error code
    float Position,  // the desired position (mm) in absolute terms 
    float Speed)     // the speed at which to move (mm/sec)

Querying the Status of the VDL

The status of the VDL hardware can be queried or polled, providing information useful especially during a home or move operation, such as: instantaneous position and speed, target position for the current move, and limit switch state. After issuing a home or move command, poll this method to determine if the operation has completed or failed with an error.

uint  GetStepperStatus(           // returns 0 (success) or error code
    ref float Position,           // current position (mm)
    ref float Target,             // target position (mm) during a move operation
    ref float Speed,              // current speed (mm/sec) during a move operation
    ref uint State,               // 1 = idle, 
                                  // 2 = moving, 
                                  // 3 = seeking home, 
                                  // 4 = backing off home, 
                                  // 5 = at home,
                                  // 10 = error state
    ref bool HomeSwitch,          // indicates if the home switch is tripped
    ref bool LimitSwitch,         // indicates if limit switch is tripped (far end of travel)
    ref int ErrorFromLastHome,    // error accumulated since last Home operation (in motor microsteps)
    ref uint LastMoveTime,        // time (sec) taken by the last issued move command
    ref uint Error)               // firmware error code (0 if no error)

Stopping the VDL

A VDL operation in progress can be stopped immediately using StopVDL(). This method returns after requesting the stop operation from the VDL controller; it does not wait for the mechanical operation to stop before returning.

uint  StopVDL()       // returns 0 (success) or error code

Power ON the Laser Engine. Confirm successful connection between the Laser Engine and the host PC via or the . For example OCT Engine (i.e. the laser driver board) will be listed in the Connected Boards: indicator in the lower left region of the OCT Host window:

Commands to a) go home, b) move to an arbitrary position within the total range, and c) get the current VDL position are available in the Axsun GUI Tools (or the ) or can be sent by a user's custom application using either the or APIs:

VDL controls on the GUI are located on the VDL Motor tab. Buttons and input fields are provided to Home the VDL, Move it in a Relative or Move it in an Absolute fashion by a desired distance, or Stop VDL motion in progress. The current status of the VDL is also shown. Any requests to move the VDL to a position which is outside of its allowable delay range (0 to 15 mm) will be ignored.

VDL controls on the GUI are located on the Miscellaneous tab. The GO HOME button homes the VDL and adjustment of the numeric VDL Position (mm) control field immediately commands the VDL to move to the requested absolute position.

Before operating the VDL, please read the general instructions on in your custom application.

See the for details on calling the functions discussed here.

Before operating the VDL, please read the general instructions on in your custom application.

OCT Host
Hardware Control Tool
OCT Host
Hardware Control Tool
AxsunOCTControl_LW
AxsunOCTControl
OCT Host
Hardware Control Tool
using the AxsunOCTControl_LW API
AxsunOCTControl_LW function reference
using the AxsunOCTControl API
AxsunOCTControl.dll
AxsunOCTControl_LW.dll
OCT Host
Hardware Control Tool
connected to the host PC via USB cable
Beige 2x5-pin VDL electrical connector plugged into a Laser driver board.
OCT Engine connection as shown in the OCT Host window
OCT Host window showing VDL Motor tab and associated VDL controls and indicators.
Hardware Control Tool window showing Miscellaneous tab and VDL controls.