Troubleshooting Referencing Issues

From CPR Wiki

Issues while referencing, e.g. an axis moving away from the referencing switch or not stopping at the switch, can be caused by wrong configuration or hardware defects. This article explains how to fix the most common issues.

Keep in mind that you need to restart the robot after changing the firmware parameters by turning the robot off and back on.

Expected Behavior

The following motion pattern is to be expected:

  1. If the axis is at the referencing switch (linear axis) or referencing angle (rotational axis) the axis first moves away from the switch.
  2. Then the axis moves towards the switch
  3. It moves back
  4. It then slowly moves to the switch and stops.

The actual motion can differ between robot and axis types.

In some situations the referencing position may be overrun. The axis will still be referenced at the correct position but end up at an invalid negative position. This is no issue, the robot can be moved towards the valid range via the jog buttons or a joint command.


Please check the following steps in the given order.

Make sure the axis is able to move

If the robot is unable to move the axis in jog mode it likely won't be able to reference either.

Try the following:

  • Connect CPRog/iRC to the robot
  • Click "Reset" and "Enable"
  • Make sure the error display shows no errors
  • Try to move the axis via the jog buttons in section at the bottom

The axis should at least move in one direction. If it stops or does not move check the error display:

  • Emergency stop (ESTOP) or low voltage (LOWV): Check whether the emergency stop is pressed. If your robot has a support module or is a robolink DCi make sure the motor power bridge ("Ext. Relay" plug) is connected as explained in the User Guide. Check the fuse.
  • Encoder error (ENC): Do the checks for the ESTOP error. Check the cables of the motors, make sure no cables are plugged into the wrong module or connected to the wrong motor.

Check the referencing switch

Both the referencing switch and the axis module have a yellow LED that shows whether the switch is triggered. The state of these LEDs may be inverted. To trigger the switch you can move the robot joint to the switch or hold a metal screwdriver near the switch.

Make sure that the yellow LED of the axis module in the control cabinet is turned on if the joint is triggered and turned off otherwise.

  • If the LED at the axis module does not change:
    • Check the cabling
    • Try with a metal screwdriver. If this works it's a mechanical issue, e.g. the switch being too far from the moving part of the linear axis. Please contact the manufacturer of the robot on how to set it up correctly.
  • If the state of the LED is inverted (LED is on if the axis is not in referencing position): Parameter "EndSwitchRising" in the Firmware parameters is inverted. Change it from True to False or the other way.

Check the referencing direction

This section applies to the linear referencing motion of gantry robots.

If the axis moves away from the referencing switch towards the far end the referencing direction might be wrong or the motor is mounted at the wrong side.

  • Check the mechanical setup guide and the 3D simulation in CPRog/iRC on the intended motor positions.
  • Change the sign of the "RefSpeed" and "RefSpeedSlow" parameters in the Firmware parameters from positive to negative or the other way.

See also: Swap Axis Direction

If the referencing position is incorrect

Most robot axes reference at the 0°/0mm position or an intended angle. Reference your robot and compare it with the 3D view in CPRog/iRC. If the positions/angles match the referencing position is correct.

You can change the position offset via the firmware parameters as explained in Swap Axis Direction.

If the referencing position changes over time:

  • If the actual positions / angles drift away from the 3D view and the displayed position and the position is correct again after referencing check whether the coupler of the motor is loose.
  • If the referencing position moves (e.g. 5° off after some days, 10° off after some more days) check whether the referencing switch or referencing disc inside the robot arm is loose.


The steps above should show what's wrong. For mechanical issues like loose parts or the switch not registering the sled of the linear axis please contact the manufacturer of your robot.

Contact us if you encounter issues regarding the electronics and software or if you need further help.