A complete guide to calibrating FANUC User Frames using all three methods — 3-point, 4-point, and direct entry. Includes exact pendant navigation steps, verification procedure, and the most common mistakes to avoid.
A User Frame (UF) defines a coordinate system anchored to a fixture, conveyor, pallet, or any physical reference in your cell. When you teach robot positions inside a User Frame, those positions are stored relative to the fixture — not the robot base. This one concept eliminates the need to re-teach every position if a fixture shifts, a pallet station is relocated, or the same program needs to run on two identical cells.
What is a User Frame and Why It Matters
FANUC controllers support 10 User Frames (UF[0]–UF[9]) by default — more on extended-memory models. UF[0] is always identical to the World frame and cannot be modified. UF[1] through UF[9] are yours to calibrate. You activate a User Frame in TP with a single instruction, and every subsequent position taught or computed uses that frame as its reference.
1: UFRAME_NUM=1 ; ! Activate User Frame 1
2: UTOOL_NUM=1 ; ! Activate Tool Frame 1 (always set both)
3: J P[1:HOME] 100% FINE ; ! P[1] is stored relative to UF[1]Critical: always set UTOOL_NUM before teaching or using User Frames. If the wrong tool frame is active during calibration, all UF points will be offset by the tool error — and every position taught in that UF will be wrong.
Accessing User Frame Setup on the Pendant
All three calibration methods are accessed from the same menu. Navigate here first, then choose your method:
MENU → 6 SETUP → F1 [NEXT] → 7 Frames
F3 [OTHER] → 1 User Frame
─────────────────────────────────────
Cursor to UF[n] → F2 [DETAIL]
Now select calibration method (F2, F3, or F5)Method 1: 3-Point Calibration
The 3-point method teaches three TCP positions that define the frame. It is the fastest method and accurate enough for most material handling and machine tending applications.
The three points:
- Orient Origin (OO) — the exact origin of your User Frame. Touch this point precisely — it becomes X=0, Y=0, Z=0 of the frame.
- X-Direction (XX) — any point in the +X direction from the origin. The further from origin, the more accurate the X axis definition. Minimum 50mm recommended.
- Y-Direction (XY) — any point in the +Y half-plane. Does NOT need to be on the Y axis — just somewhere on the same side as +Y. The controller calculates Y from OO and computes Z automatically via right-hand rule.
In Frames detail screen:
F2 [3PT] ← Select 3-point method
─────────────────────────────────────
Orient Origin Pt:
Jog TCP to origin → SHIFT + F5 [RECORD]
X Direction Pt:
Jog TCP to +X point → SHIFT + F5 [RECORD]
Y Direction Pt:
Jog TCP to +Y side point → SHIFT + F5 [RECORD]
F4 [MOVE_TO] to verify, then F5 [DONE]Tip: use a sharp pointer tool (calibration pin) for the origin point. Even a 1mm error at the origin shifts every position taught in this frame by 1mm. The X and Y direction points are less critical — they only affect axis orientation, not origin accuracy.
Method 2: 4-Point Calibration
The 4-point method adds a fourth point — the XY-Plane Point (YY). This extra reference improves accuracy by giving the controller more data to define the XY plane, reducing the impact of small TCP positioning errors at any single point.
When to choose 4-point over 3-point:
- Precision welding or dispensing where 0.1mm matters
- Large fixtures where the Y-direction point is at a shallow angle to X
- Calibration plates with 4 known reference marks
- When you plan to copy the UF to a second robot and need maximum repeatability
In Frames detail screen:
F3 [4PT] ← Select 4-point method
─────────────────────────────────────
Orient Origin Pt:
Jog TCP to origin → SHIFT + F5 [RECORD]
X Direction Pt:
Jog TCP to +X point → SHIFT + F5 [RECORD]
Y Direction Pt:
Jog TCP to +Y side point → SHIFT + F5 [RECORD]
XY Plane Pt (4th point):
Jog TCP to a 2nd point confirming the XY plane
→ SHIFT + F5 [RECORD]
F5 [DONE]Method 3: Direct Entry
Direct entry lets you type the frame values manually. You need to know the frame position (X, Y, Z in mm) and orientation (W, P, R in degrees) relative to the World frame. This is the fastest method when the data is available — a single copy-paste from a CAD model sets up a frame instantly.
When to use direct entry:
- CAD model provides exact fixture origin coordinates in World space
- Copying a verified UF from one robot to another identical cell
- Vision system integration where the camera provides frame offsets numerically
- Resetting a UF after controller replacement — if you kept records of calibrated values
In Frames detail screen:
F5 [DIRECT] ← Select direct entry
─────────────────────────────────────
X: [type value in mm] ENTER
Y: [type value in mm] ENTER
Z: [type value in mm] ENTER
W: [rotation around X, degrees] ENTER
P: [rotation around Y, degrees] ENTER
R: [rotation around Z, degrees] ENTER
─────────────────────────────────────
Example — fixture offset 300mm forward, 200mm right, flat:
X: 300.000 Y: -200.000 Z: 0.000
W: 0.000 P: 0.000 R: 0.000W, P, R follow the RPY (Roll-Pitch-Yaw) convention in FANUC: W rotates around the World X axis, P around World Y, R around World Z. For flat horizontal fixtures aligned with the world orientation, all three are 0. For a tilted fixture (e.g. 45° inclined conveyor), set P = 45.0.
Verifying the User Frame
After calibrating by any method, always verify before teaching any program positions. A miscalibrated UF is worse than no UF — positions taught in a wrong frame are silently incorrect.
Verification procedure:
1. Press COORD key until display shows "USER"
2. Set UFRAME_NUM = n (your calibrated frame)
3. Set UTOOL_NUM = n (your active tool)
4. Jog in +X → TCP should move parallel to fixture X edge
5. Jog in +Y → TCP should move parallel to fixture Y edge
6. Jog in +Z → TCP should lift perpendicular to fixture surface
7. Jog to the taught origin point → pendant should show
X ≈ 0.000, Y ≈ 0.000, Z ≈ 0.000Common Mistakes
Mistakes that waste hours:
- Wrong tool frame active during calibration — always confirm UTOOL_NUM matches your physical tool before recording any point. A 50mm tool offset at the wrong angle corrupts the entire UF.
- Forgetting UFRAME_NUM in the program — if no UFRAME_NUM line appears before a motion, the robot uses whatever frame was last active. Always set it explicitly at program start.
- X and Y points too close to the origin — the controller calculates axis direction from angle between points. Points within 20mm of origin produce unstable axis calculations. Use at least 100mm separation.
- Mixing up Y-Direction and XY-Plane points in 4-point — the Y-Direction point is any +Y side point; the XY-Plane point is a secondary confirmation. They can be the same side but must be different physical points.
- Not saving — on older R-30iA controllers, frame data can be lost on battery failure. Always record calibrated UF values in a commissioning document.
Xpert Robotics provides FANUC commissioning and calibration services throughout Israel. If your User Frames are drifting after maintenance or controller replacement, contact us — we can restore your cell to specification within hours.


