Products

X2 Calibration

Version: v1.0Release Date: 2026-07-27X2 Lite & Ultra

Recommended Reading

Must Read Before Use
  • Applicable Versions: 0.8 / 0.9 / 1.0
  • Applicable Models: Flagship / Youth Edition (When performing zero calibration on the X2 Lite, you must switch the software configuration IP.)
  • Purpose of Zero Calibration: Humanoid robot joint zero calibration is used to re-establish the mechanical zero reference point, eliminate encoder drift and cumulative errors, unify the coordinate systems of multiple joints, and ensure motion accuracy, movement consistency, and safe and stable operation.
  • Tool Preparation:
    • Upper limbs: No fixtures or pins required; calibration can be performed on-site directly.
    • Lower limbs: Requires a 2mm calibration pin to complete calibration.
    • Waist: Requires a dedicated waist fixture. On-site operation is difficult; factory return is required for calibration.

Preparations

Tools to prepare before calibration:

No.NameQtyNotes
12mm pin gauge / feeler gauge2Only needed for legs
23mm pin gauge / feeler gauge1Only needed for legs
3Computer / Laptop1Windows system required
4Ethernet cable1Recommended 1m or longer
5Patient lift / transfer device1Optional but convenient for calibration; contact after-sales service to purchase if needed

Install dependency packages

Download from this link, unzip to install the programs. Missing dependencies may prevent the software from launching.

  • Install MSVBCRT64-8.3.0
  1. Open the program and grant the permission.
  2. Click the red button below three times to install.
  3. Close the program after installation.
Click this button for three times. Due to differences in encoding, the characters here appear as garbled text, but you can simply click the button here to install it.
Click this button for three times. Due to differences in encoding, the characters here appear as garbled text, but you can simply click the button here to install it.
  • Install NDP461-KB3102436-x86-x64-AllOS-CHS
  1. Open the program.
  2. If the interface looks like the one shown below, no installation is required; please skip this dependency. Otherwise, follow the steps below.
It means this dependency is installed.
It means this dependency is installed.
  1. Click “Next” to install the program.

NPI Toolbox

Install the toolbox

  1. Connect your host PC to the Internet to use this tool.
  2. Unzip the NPI Toolbox to the D: drive. Double click NPI_OSTP.exe to open it.
Double click this icon to open the calibration tool.
Double click this icon to open the calibration tool.
  1. Connect the host PC to the Robot via Ethernet cable. Denpending on the device under test, config your host to one of the following ip in the subnet. For example, steps:
    1. Open network panel;
    2. Change from automatic to manual;
    3. Set IP to 10.0.1.99(Ultra) 10.0.200.99(Lite), subnet mask to 255.255.255.0
EditionIP/SubnetNote
X2 Lite10.0.200.XX/24Open the software and use it directly — no additional configuration needed.
X2 Ultra10.0.1.XX/24Follow the steps for each module.

Configuration for X2 Lite

If your device is X2 Lite, you must enter the software configuration interface to switch settings. The specific steps are as follows (this must be reconfigured each time you select a different calibration module).

Config for X2 Lite: Double click to open a calibration module.
Config for X2 Lite: Double click to open a calibration module.

After downloading, follow the steps in the following screenshot below to config the calibration module.

Config for X2 Lite: Fill in the X2 Lite IP address.
Config for X2 Lite: Fill in the X2 Lite IP address.

Robot Joint Diagram

Note: When calibrating limb joints, if a patient lift is not available to suspend the robot, it is recommended to calibrate with the robot lying flat or sitting upright.

All joints for Lingxi X2.
All joints for Lingxi X2.

Head Calibration

Double click to open the HeadZeroing module.

As shown below, stand behind the robot. The left/right orientation matches the user’s perspective. Twist the robot’s head to the limit and hold it in place. Click left button and wait for the robot to respond with a “beep-beep-boop” sound, then observe the software prompt changes. Rotate to the right limit angle firstly and confirm (or ENTER⤶).

Rotate to the right limit angle firstly and confirm (or ENTER⤶).
Rotate to the right limit angle firstly and confirm (or ENTER⤶).

Then rotate to the left limit angle.

Rotate to the left limit angle and confirm (or ENTER⤶).
Rotate to the left limit angle and confirm (or ENTER⤶).

Click 🟥 to exit when it is 100%.

Upper Limb Calibration

Double click to open the Left/RightArmZeroing module. Enter the right upper limb calibration. The program interface defaults to starting calibration from the J1 joint. (If you only need to calibrate specific joints, select the required joint directly.)

The image below shows how to switch calibration joints:

Upper Limb Calibration dropdown menu.
Upper Limb Calibration dropdown menu.

In the following context, we will start with the right arm calibration.


J1

Click the button to begin.
Click the button to begin.
Rotate to the limit angle and confirm(or ENTER⤶).
Rotate to the limit angle and confirm(or ENTER⤶).

Then move to the center position and hold it, then click the left button to confirm(or ENTER⤶).

Rotate to the limit angle and confirm (or ENTER⤶).
Rotate to the limit angle and confirm (or ENTER⤶).

Move the arm to 180° (right arm), -180° for left arm You can read from this text box to get the current position.

When success, refer to the picture above back to the limit angle to finish the last step.

GUI when calibration success.
GUI when calibration success.

Note: If calibration fails, simply restart the above steps.

J2

Select J2 from the dropdown, then click the flowing button to begin.

Click the button to begin.
Click the button to begin.

Regarding to the prompt, move the J2 to the armpit limit position. Hold the pose still and press Enter to confirm(or ENTER⤶).

Move the arm to the limit angle, hold still and click confirm (or ENTER⤶) to proceed next step.
Move the arm to the limit angle, hold still and click confirm (or ENTER⤶) to proceed next step.

Move the arm to the center position, you can read from text box to get 7°, -7° for the left arm.

Move the arm to the center position, hold still and click confirm (or ENTER⤶) to proceed next step.
Move the arm to the center position, hold still and click confirm (or ENTER⤶) to proceed next step.

Then follow the steps to move the J2 to the limit angle as shown above. Once [] appears, hold still, wait for 100% & pass.

J3

Select J3 from the dropdown, then click the flowing button to begin.

Click the button to begin.
Click the button to begin.

The first prompt will look like the following. Twist the robot J3 to the prompted position, press ENTER⤶, and hold the pose still.

Robot arm at center position with "Align" marker: "Move the arm to the center position"
Robot arm at center position with "Align" marker: "Move the arm to the center position"

Wait for the prompt tone and the pass to appear — J3 calibration is then successful.

J4

Select J4 from the dropdown, then click the flowing button to begin.

Click the button to begin.
Click the button to begin.

Push J4 backward to hard limit shown in the diagram below.

Move the arm to the hard limit position.
Move the arm to the hard limit position.

Press ENTER⤶ or click the button to confirm, when [] appears, hold still. Then one another prompt shows up:

Rotate the arm around 3.5°, -3.5° show in the text box, 3.5° for the left arm.
Rotate the arm around 3.5°, -3.5° show in the text box, 3.5° for the left arm.

When [] appears, hold still. Then the prompt will show like the above, let the J4 back to the limit position. Confirm (ENTER⤶) and wait []

Rotate the arm around 3.5°, -3.5° show in the text box, 3.5° for the left arm.
Rotate the arm around 3.5°, -3.5° show in the text box, 3.5° for the left arm.

Wait for the prompt tone and the pass to appear — J4 calibration is then successful.

J5

Switch from “J4” to “J5”, then click the “Start” button on the left.

Click the button to begin.
Click the button to begin.

Push J4 to the center shown in the diagram below, hold still, and press ENTER⤶ to wait showing progress 100%, prompt [] and pass.

Move the arm to the center position.
Move the arm to the center position.

Note for J6 and J7

The new tool currently has issues with arm joints J6 and J7 calibration. R&D is working on a fix — please be patient.

J6

Switch from “J5” to “J6”, then click the “Start” button on the left.

Click the button to begin.
Click the button to begin.

Locate the two screws at the J5–J6 joint connection as shown below (used as a reference marker), then twist the J6 motor in the opposite direction from the marker to the limit position, hold still, and press Enter to confirm.

Press ENTER⤶ to confirm, hold still when [] appears.
Press ENTER⤶ to confirm, hold still when [] appears.

While watching the system’s “Prompt Information”, slowly twist the J6 motor to -33°. When the prompt shows ”[]”, immediately hold still. Then follow the following prompt, rotate the joint to the left limit position:

Press ENTER⤶ to confirm, hold still when [] appears.
Press ENTER⤶ to confirm, hold still when [] appears.

Wait [] and pass appear.

J7

Switch from “J6” to “J7”, then click the “Start” button on the left.

As shown below, twist the J7 motor to the connecting rod direction limit position, hold still, and wait for the system response.

Press ENTER⤶ to confirm, hold still when [] appears.
Press ENTER⤶ to confirm, hold still when [] appears.

After the response, you will hear the “beep-beep-boop” prompt tone and the pass appears.


Lower Limb Calibration

Click 🟥 to back to the home page, double click to open the Left/RightLegZeroing module. Inside the module, you can select the joint from the dropdown.

Select the desired joint from the dropdown. Click the left button to begin.
Select the desired joint from the dropdown. Click the left button to begin.

J1

Switch to “J1”, then click the “Start” button on the left.

Insert the positioning pin into the positioning hole of the J1 joint. If the J1 motor remains stationary when you rock the joint back and forth, the positioning pin is fully seated.

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

You can take the positioning pin out after calibration.

J2

Switch from “J1” to “J2”, then click the “Start” button on the left.

It’s almost the same with the joint J1. Insert the positioning pin into the positioning hole of the J2 joint(shown below). If the J2 motor remains stationary when you rock the joint back and forth, the positioning pin is fully seated.

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

You can take the positioning pin out after calibration.

J3

Switch from “J2” to “J3”, then click the “Start” button on the left. Align the J3 with the J2 according to the picture below:

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

J4

Switch from “J3” to “J4”, then click the “Start” button on the left.

Insert the positioning pin into the positioning hole of the J4 joint(shown below).If the J4 motor remains stationary when you rock the joint back and forth, the positioning pin is fully seated.

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

You can take the positioning pin out after calibration.

J5

Switch from “J4” to “J5”, then click the “Start” button on the left.

Insert the positioning pin into the positioning hole of the J5 joint(shown below). If the J5 motor remains stationary when you rock the joint back and forth, the positioning pin is fully seated.

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

You can take the positioning pin out after calibration.

J6

Switch from “J5” to “J6”, then click the “Start” button on the left.

Insert the positioning pin into the positioning hole of the J6 joint(shown below). If the J6 motor remains stationary when you rock the joint back and forth, the positioning pin is fully seated.

Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.
Press ENTER⤶ to confirm, and wait a few seconds until the progress reaches 100%.

You can take the positioning pin out after calibration.

Waist

Requires a dedicated waist fixture. On-site operation is difficult; factory return is required for calibration.

On this page