Define the zero position offsets

From CPR Wiki
Jump to: navigation, search

The robolink arms provide reference switches which allow a precise and reproducible referencing. The reference switches are inductive switches reacting to metal pins as set points (motor encoder version) or hall-effect sensors reacting to magnets as set points (AE version).

The positions of the sensors at the joints of the robot are not the zero positions of the joints. Each joint module stores an offset value that defines the difference between the reference position and the zero position. The offset values are the number of encoder pulses between these two positions.

When the combination of robot and control electronics have been provided by CPR, then these offsets are already defined in the modules. They are also written down on the quality assurance sheet.

If robot and control have been supplied separately, we wouldn't have been able to do this calibration for you. Therefore the following steps should be performed.

This page shows how to find the offsets for your robot and how to set the into the joints modules.

Backup the Current Firmware Parameter

Backup Amp Configuration menu entry in CPRog

To find the correct offsets, we need to know the current values:

  • Download your current firmware parameter from the electronic modules:
  1. Start CPRog and "Connect" with the robot control electronics. Most of the green LEDs of the robot control electronics should be blinking now.
  2. Open the CPRog menu on the circle in the upper left corner and press the menu item "Configuration --> Amp Config --> Backup current Config"
  3. Now CPRog loads the current parameter set from the modules and stores them in c:\CPRog\Data\Backup\AmpParamBackup_yourdateandtime.dat
  4. Make a copy of this file so that you are able to restore the old data

Reference the robot

Perform a referencing of the robot arm. Follow the instructions on page Referencing robolink.

Move the robot into zero position

Zero position of the robolink 5DOF SV robot

Now we jog the robot arm into the zero position to find the offsets between reference position and zero position.

  • Start CPRog and connect / reset / enable the robot arm
  • Jog the robot into the zero position as shown in the picture on the right. Joint 1 points into +X direction, joint 2 points upwards, joints 3 and 4 point forward into +X direction.
  • At first move with e.g. 30% override. Then do the fine tuning with e.g. 5% override. Use a spirit level or a laser tool to make sure you are in the zero position.
    • Note: the joint holes define the zero position, not the sheet metal surfaces!
  • The fifth axis should be set according to the connected gripper. If no gripper is connected, mark the zero position and set to this.
  • Press the "Reset" button in CPRog to load the current hardware position.

Calculate the offsets

Now we can see the offset in degree in the CPRog user interface. But we need to calculate the offset in encoder tics.

  • Open the Microsoft Excel file FindingTheOffset_robolink.xlsx
    • also found in c:\CPRog\Data\Robots\FindingTheOffset.xlsx
    • Last file version: Dec. 11th, 2018
  • In the file choose the right robot type (robot type, if necessary).
  • Follow the instructions in the sheet
  • Attention: The offset values written in the AmpParameter file are numbers (no decimal . or ,)

Uploading the offsets to the modules

Now we set the new offsets in the .dat file that we backuped before and upload them to the modules.

  • Open the .dat file from above and set the "Offset" values as calculated in the table. Use only numbers! (no decimal values, no "," or ".")
  • Save the .dat file and upload the parameter:
  1. Open the CPRog menu on the circle in the upper left corner and press the menu item "Configuration --> Amp Config --> Set new Configuration"
  2. Confirm the upcoming warning, choose the updated .dat file you just changed and press "OK"
  3. Now the parameter with the new offsets are uploaded to the modules. You can see the green LED of each module blinking for a second, then the next.

Final Test

The new offsets should be verified:

  • Switch off the robot control electronics and CPRog
  • Wait at least 5 seconds to start the control electronics and CPRog again
  • Connect / Reset / Enable the robot
  • Reference the robot
  • Jog the robot so that all joint values are zero. The real robot should be in the zero position now.


  • Please write down the offsets or store the .dat file in a folder different then the CPRog program directory. When you update CPRog you custom .dat file might be overwritten. So it is necessary to store your custom file in a different location.

For questions or comments please get into contact with us