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 connected to the host PC via USB cable (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).
​AxsunOCTControl.dll / AxsunOCTControl_LW.dll (API access) or OCT Host / Hardware Control Tool (GUI tools) must be installed on the host PC.
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.
Power ON the Laser Engine. Confirm successful connection between the Laser Engine and the host PC via OCT Host or the Hardware Control Tool. 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:
Adjustment of the optical delay provided by the VDL optical module is acheived 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 firmware is rebooted).
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 (OCT Host or the Hardware Control Tool) or can be sent by a user's custom application using either the AxsunOCTControl_LW or AxsunOCTControl APIs:
VDL controls on the OCT Host 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 Hardware Control Tool 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 using the AxsunOCTControl_LW API in your custom application.
See the AxsunOCTControl_LW function reference for details on calling the functions discussed here.
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.
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.
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.
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.
Before operating the VDL, please read the general instructions on using the AxsunOCTControl API in your custom application.
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
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 codefloat 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 codefloat Position, // the desired position (mm) in absolute termsfloat Speed) // the speed at which to move (mm/sec)
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 coderef float Position, // current position (mm)ref float Target, // target position (mm) during a move operationref float Speed, // current speed (mm/sec) during a move operationref uint State, // 1 = idle,// 2 = moving,// 3 = seeking home,// 4 = backing off home,// 5 = at home,// 10 = error stateref bool HomeSwitch, // indicates if the home switch is trippedref 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 commandref uint Error) // firmware error code (0 if no error)
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
​