> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Calibration and Configuration

<Info>
  This page covers device-side calibration and parameter configuration: joint origin calibration, writing and persisting device parameters, where user and calibration data live, and the firmware and SDK version requirements. For interface definitions, see [SDK Reference](/en/docs/wuji-hand/latest/sdk-reference). For command-line operations, see the [Wuji CLI docs](/en/docs/wuji-cli/).
</Info>

## Joint Origin Calibration

The joint origin sets the reference for position commands and feedback. To calibrate the current physical position as the joint-side origin:

```python theme={null}
hand.set_origin()                   # whole hand: refresh the user origin on every joint
hand.clear_origin()                 # whole hand: clear the user origin on every joint
hand.set_origin(joints=mask)        # optional: a length-20 0/1 mask, applied to joints whose bit is 1
```

While a joint is moving, calibration waits until the next IDLE state. Disable the hand first and confirm the fingers rest in the target pose.

For how the origin maps to each joint's motion direction, see [Origin and Motion Direction](/en/docs/wuji-hand/latest/control-guide#origin-and-motion-direction).

For the origin accuracy boundary on a prototype, see [Joint Origin Calibration](/en/docs/wuji-hand/latest/user-notice#joint-zero-calibration) in User Notice.

## Device Parameters and Persistence

Device parameters fall into two classes: persistent parameters written to flash, and runtime parameters that reset on power loss.

| Parameter | Interface | Persistent | Takes effect |
| - | - | - | - |
| Static IP | `hand.ip()` | Yes | After reboot |
| Torque cap | `hand.effort_limit()` | No | Immediately |
| MIT control parameters | `hand.mit_params()` | No | Immediately |
| User origin | `hand.set_origin()` | Yes | At the next IDLE |

Runtime parameters return to factory defaults after a reboot. For defaults and safe ranges, see [Parameter Safety Limits](/en/docs/wuji-hand/latest/control-guide#parameter-safety-limits).

### Change the Device IP

`set` writes the new IP to flash. The firmware doesn't hot-swap a running Ethernet stack, so the new IP takes effect on the next reboot. The full round trip is `set` → `reboot` → reconnect at the new IP → `get` to confirm:

```python theme={null}
hand.ip().set("192.168.1.201")
hand.reboot()
manager.disconnect_all()
# wait for the device to reboot and Ethernet to come up, about 8 seconds
hand = manager.connect(address="192.168.1.201:50001", device_name="wuji_hand_2")
hand.ip().get()                    # → "192.168.1.201"
```

<Warning>
  The new IP takes effect after a reboot. `set` only writes to flash and doesn't change a running connection. Before the reboot, `get` still returns the current IP.
</Warning>

## User and Calibration Data

The Wuji SDK isolates calibration output and local data per user. Outside the default user, create a named profile and switch to it first. Calibration output saves to the current user's profile and takes effect right away.

For the user management interface and the local data directory layout, see [SDK User Management](/en/docs/wuji-sdk/device-params/#sdk-user-management) and [User Data Export and Import](/en/docs/wuji-sdk/device-params/#user-data-export-and-import).

## Wuji CLI Configuration Entry Points

Without writing code, the Wuji CLI performs the same parameter reads, writes, and user management from a terminal:

| Task | Command | Documentation |
| - | - | - |
| Read and write device parameters | `wuji param` | [Parameters](/en/docs/wuji-cli/parameters/) |
| Create and switch users | `wuji user` | [User Management](/en/docs/wuji-cli/user/) |
| Health check | `wuji doctor` | [Doctor](/en/docs/wuji-cli/doctor/) |
| Firmware upgrade | `wuji upgrade` | [Firmware Upgrade](/en/docs/wuji-cli/firmware-upgrade/) |

## Firmware and SDK Version Requirements

The calibration and parameter interfaces have minimum firmware and SDK versions. For the pairing, see the [Hardware and Software Compatibility Matrix](/en/docs/wuji-hand/latest/version-identification-and-compatibility#hardware-and-software-compatibility-matrix). For upgrade steps, see [Step 11: Upgrade the Firmware](/en/docs/wuji-hand/latest/quick-start#step-11-upgrade-the-firmware) in Quick Start.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.