Yaskawa GP8 Home Position and Second Home Position Reference

Jason IP17 min read
RoboticsTechnical ReferenceYaskawa
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Overview of the Yaskawa GP8 Home Position Architecture

The Yaskawa GP8 is a six-axis, high-speed articulated robot designed for assembly, handling, and material transfer applications. The GP8 supports the IEC 61131-3 and PLCopen programming environments in addition to the native Yaskawa INFORM language running on the YRC1000 controller. The YRC1000 maintains a fixed internal reference called the Home Position and an optional user-defined Second Home Position. These positions are special in that they are tied to the controller's pulse-count origin, the absolute encoder calibration, and several safety/alarm-recovery paths.

Unlike general motion targets that the programmer defines as Cartesian positions or pulse counts in a normal job, the Home Position is reserved by the controller firmware. Yaskawa does not expose a high-level instruction that simply "go to home." Instead, the integrator must build a dedicated JOB that issues a MOV instruction to the stored home coordinates. The same approach is used for the Second Home Position, but the user must first define the position because the factory default leaves the Second Home Position unset (or coincident with the primary home position).

This reference covers:

  • The functional difference between Home Position and Second Home Position
  • How to create a reusable HOME JOB and a SECOND_HOME JOB
  • How to call those jobs from a parent job or from a PLC-controlled cycle
  • How to wire I/O interlocks that verify the robot is in a known home reference before cycle start
  • Alarm 4107 recovery workflow that depends on the Second Home Position
Important: The Yaskawa controller does not provide a single dedicated system instruction (analogous to a GO_HOME function block in some PLCopen environments) that guarantees safe homing. You must engineer the path, the speed override, the tool number, and the interlock logic explicitly.

2. Home Position vs Second Home Position: Functional Differences

From a controller standpoint, the two positions are not interchangeable. The following table summarizes the differences that drive when each is used.

Attribute Home Position Second Home Position
Origin Hard-wired to the mechanical alignment marks on each axis. Pulse count = 0 on all six axes when at home. User-defined. Can be set to any reachable pose in the working envelope.
Tool number coupling Home is stored as a position with the active tool number at the time of teaching. Per the Yaskawa HC Series Second Home Position article, Second Home Position incorporates a Tool Number along with the positional data so the controller can apply the correct tool frame when forwarding to the position.
Alarm recovery use Not a recovery path. The robot is expected to be at home only after a controlled calibration sequence. Primary recovery path for alarm 4107 "Out-of-range axis (absolute encoder backup power supply voltage drop)" or any "axis moved with power off" condition.
Teaching path Set by Yaskawa at the factory, but the integrator can re-teach via the maintenance menu when an axis is re-potted or replaced. Set under SETUP > SECOND HOME POSITION on DX200/YRC1000, or through the Second Home Position (Code 0380) command listed in the Yaskawa Motoman how-to video library.
Path safety Often a vertical S-axis-up posture. The controller does not validate the path against obstacles. Engineered by the integrator to be reachable from any realistic stuck position without collision.
Cycle usage Used at cycle start, cycle end, and during controlled calibration. Used only in alarm recovery, on power-up after an encoder backup battery event, or as a user-defined park position.

The distinction matters because the controller will only allow a controlled move to Home Position when the absolute encoders still agree with pulse counts. If the encoders have lost absolute reference, the controller raises alarm 4107 and forces the operator to perform a Second Home Position recovery sequence, which is the only path the firmware accepts as valid for re-acquiring absolute position.

3. Alarm 4107 and the Second Home Position Recovery Workflow

Alarm 4107 is raised when the controller detects that one or more axes were moved while the controller was de-energized and the absolute encoder backup battery (typically a BR-series lithium cell on the S, L, U, R, B, T axis motors) has been depleted or disconnected. The pulse counter and the absolute encoder are no longer in agreement, so any move in absolute coordinates would be unverified.

The recovery workflow is:

  1. From the teach pendant, navigate to ALARM and acknowledge 4107 after correcting the underlying cause (replace battery, restore wiring, re-seat connectors).
  2. Place the controller in TEACH mode at reduced speed.
  3. Use the pendant to manually jog each affected axis to its previously recorded Second Home Position alignment marks. The position must match the stored Second Home Position within the controller's tolerance, or absolute data is re-acquired for the axis once the alignment marks match and the operator confirms.
  4. After all affected axes are matched, the controller re-establishes the absolute reference and clears 4107.
  5. Cycle power, switch to PLAY/REMOTE if needed, and resume.
Important: If your application requires the robot to return to the primary Home Position at any point in a JOB, do not rely on the alarm 4107 recovery path. Define a dedicated JOB with a MOV to the primary home, and use the Second Home Position only for the recovery case described above.

4. Prerequisites for Home Position Programming on the GP8

Before building the home-position JOBs, verify the following:

  • Controller firmware: YRC1000 firmware is at a release that supports the second home position function block. The function is standard on current GP8 production controllers; older DX200 firmware revisions require update before the Second Home Position menu is visible.
  • Tool number consistency: The tool number active at the moment the Second Home Position is taught is stored with the position. If the cycle uses multiple tool numbers, the Second Home Position must be set once per tool in environments that store it that way, or a single tool frame must be designated for the recovery motion.
  • Mechanical alignment marks visible: Each axis has scribe marks on the housing and the adjacent pulley/harmonic-drive flange. Without visible marks, you cannot reliably re-master the axis.
  • Free envelope: Confirm the path from the most likely parked position to the home or second home position is free of fixtures, conveyors, and operator stations. The controller does not check this for you.
  • Pendant access: A Yaskawa teach pendant (typical PHC-2 or PHC-3) must be available for the initial teaching and for alarm 4107 recovery.

5. Creating a HOME Position JOB on the GP8

Although the Home Position is a reserved controller state, there is no dedicated "go home" instruction in INFORM. The integrator must build a JOB that contains a MOV instruction targeting the home coordinates. The JOB can be named anything; common conventions are HOME_POS, JOB_HOME, or GOHOME.

Step-by-step procedure (YRC1000 / DX200-class teach pendant):

  1. From the job list, create a new job and name it HOME_POS. Set the job type to Robot.
  2. Set the speed override to 10% (low speed) for first execution.
  3. Teach a single position step at the Home Position. To do this, select TEACH > POSITION, jog all six axes to the home alignment marks (pulse count should read 0 on each axis), then ENTER to record.
  4. In the job edit screen, insert a MOVL (linear move) or MOVJ (joint move) instruction referencing the taught position. Use MOVJ for a safe, joint-interpolated approach to avoid Cartesian collisions with fixtures.
  5. Optionally, add a DOUT instruction before the MOVJ to set a Going Home status bit for the PLC (for example, output 20010 = ON).
  6. Add a WAIT or TIMER to ensure the PLC has read the status bit before motion begins.
  7. Add a DOUT after the move to set an At Home bit (for example, output 20011 = ON) when the move completes and the robot is within the in-position window.

A minimal INFORM job body looks like this in conceptual form (literal syntax follows Yaskawa conventions; consult the YRC1000 operator's manual for the exact column layout):

// JOB: HOME_POS
N000  JOB HEADER          // standard header, group 1, R1
N005  DOUT OT#(20010) ON  // "Going Home" status to PLC
N010  WAIT IN#(10050)=ON  // optional PLC permission gate
N015  MOVJ VJ=10.00 P000  // joint move to recorded home position P000
N020  DOUT OT#(20010) OFF // clear going-home bit
N025  DOUT OT#(20011) ON  // "At Home" bit set
N030  END

The position variable P000 is a local position in the job. If you want the home target to be portable across jobs, register a Position Variable in the range P1..P999 from the variable editor and reference it in the move instruction. A typical convention is to reserve P900..P909 for system positions such as P_HOME, P_HOME2, P_PARK.

Important: Always test the HOME_POS job in TEACH mode with the speed override at 10% before running it in PLAY/AUTO. The first execution will reveal any obstacle collisions, joint-limit warnings (error 4420 / 4421), or singular-approach issues that the offline simulation did not expose.

6. Creating a SECOND_HOME Position JOB

The Second Home Position is taught from SETUP > SECOND HOME POSITION on the pendant, or by selecting function code 0380 from the function-code menu. The procedure is:

  1. Place the robot in a safe, repeatable posture that is reachable from any realistic parked position. The integrator chooses this posture, not the controller.
  2. Open SETUP > SECOND HOME POSITION.
  3. Select the tool number that will be active during the recovery motion. Per the HC Series Second Home Position article, the controller stores the tool number with the position and applies the corresponding tool frame on a forward to that position.
  4. Jog each axis so the mechanical alignment marks line up. Press MODIFY for each axis to latch the position.
  5. Confirm and exit.

Once the Second Home Position is stored, create a JOB named SECOND_HOME with a MOVJ to that position. The JOB is structurally identical to the HOME_POS job in section 5, but it targets the Second Home Position variable. Use the same status-bit conventions to the PLC so the HMI can show "At Home 1" versus "At Home 2" if both are used.

7. Calling Home Positions from Within Another JOB

There are two principal ways to call a home-position job from a parent job in INFORM.

Method A — Direct call (CALL instruction):

// In a parent job, e.g. PALLET_01
N000  JOB HEADER
N005  DOUT OT#(20010) ON      // Going Home
N010  CALL JOB: HOME_POS      // direct sub-job call
N015  IF B001<>ON JUMP L100   // optional: verify At Home bit
N020  ... continue cycle ...

Method B — Indirect call (CALLI instruction with a job name variable):

// Indirect call, e.g. driven by a B-variable so PLC can swap targets
N005  LET B010=$B_HOME_TARGET   // string variable with the job name
N010  CALLI JOB: *B010

For a multi-recipe cell, Method B is preferred because the PLC can write the job name variable to direct the robot to a different home target for each recipe without modifying the program.

For PLCopen-style control on the GP8 IEC variant, the equivalent is the MC_MoveAbsolute or a custom function block that posts the target position variable. Yaskawa's PLCopen implementation exposes a job-call instruction that maps to CALL in INFORM.

8. PLC Interlock Design for Home Position Verification

A robust cycle-start architecture treats Home Position verification as a precondition for cycle start. The minimum recommended I/O exchange between the YRC1000 and the supervising PLC is summarized below.

Signal name Direction Address (example) Purpose
Robot At Home Robot → PLC DO 20011 Set when the robot is within the in-position window of P_HOME.
Robot At Home 2 Robot → PLC DO 20012 Set when the robot is at the user-defined Second Home Position.
Robot Going Home Robot → PLC DO 20010 Set during the active home motion. Cleared when motion completes.
Cycle Start Permit PLC → Robot DI 10050 PLC interlock. Robot will not start a cycle unless this is ON.
Home Request PLC → Robot DI 10051 Triggers CALL JOB: HOME_POS at cycle start or recovery.
Alarm 4107 Active Robot → PLC DO 20020 Mirrors the active state of alarm 4107 so the HMI can force a Second Home Position recovery sequence.

Logic on the PLC side, in structured text idiom:

// Pseudo structured text (IEC 61131-3)
IF (Robot_At_Home OR Robot_At_Home_2) AND NOT Estop_Active AND NOT Alarm_4107_Active THEN
    Cycle_Start_Permit := TRUE;
ELSE
    Cycle_Start_Permit := FALSE;
END_IF;

IF Home_Request AND NOT Robot_Going_Home THEN
    Robot_Home_Cmd := TRUE;        // latched; cleared by Robot Going Home rising edge
END_IF;

The double condition (Home or Home 2) gives the cell the option to start the cycle after either a controlled homing or a 4107-recovery homing, which matches the way Yaskawa documents the recovery path.

9. Parameter Reference and Informational Variables

The YRC1000 exposes a number of system variables and parameters relevant to the home positions. The exact set depends on the firmware release; the table below is representative of the production release line for the GP8.

Item Type Range / value Notes
Position variable for primary home P-variable Conventionally P900 User-defined. Teach the alignment pose once and reuse.
Position variable for second home P-variable Conventionally P901 User-defined.
Function code, teach second home Code 0380 Per the Yaskawa how-to video library entry for "Second Home Position (Code 0380)".
Function code, single-axis home position calibration Code 0330 (typical) Used by service technicians during a per-axis re-master after a collision or encoder replacement. See the DX200 single-axis home position KB article for the procedure.
Alarm 4107 code Alarm 4107 Out-of-range axis (absolute encoder backup power supply voltage drop).
In-position window Parameter S2Cxxxx group, Fx=12 (typical) Defines the pulse-count window that declares a position "reached." Verify against the YRC1000 parameter manual for the exact parameter number on your firmware.
Tool number stored with second home Integer 0–31 Active tool at teach time Forwarded to the position on move to second home.
Important: Parameter numbers (S2Cxxxx group, etc.) differ across firmware releases. Always cross-check the parameter ID against the operator's manual and the parameter manual that shipped with the controller in the cell. Do not assume a value from a sibling robot applies to your build.

10. Verification and Commissioning Procedure

Commissioning a new home-position architecture on a GP8 cell should follow the sequence below.

  1. Mechanical check. With the controller off, manually move each axis and verify the alignment marks are visible and clean. Replace any worn label or stamp.
  2. Initial calibration. Power up, run the calibration sequence for every axis. Confirm all six axes report pulse count = 0 at the marks.
  3. Teach Home Position. Record the primary home in P_HOME (P900). Record the job HOME_POS in INFORM with a MOVJ at 10% override.
  4. Test in TEACH. Run HOME_POS from a different pose. Verify the path is free and the robot reaches the in-position window.
  5. Teach Second Home Position. Choose a pose that is reachable from any realistic stuck position without collision. Teach it through function code 0380 and select the recovery tool number.
  6. Create the SECOND_HOME JOB. Mirror the structure of HOME_POS, target P_HOME2.
  7. PLC interlock test. Cycle the Home Request bit from the PLC and confirm the At Home bit returns within the expected window. Force the Cycle Start Permit low and confirm the controller refuses a new cycle start.
  8. Alarm 4107 simulation. With the cell in a safe state, disconnect an absolute-encoder backup battery, power-cycle, and confirm alarm 4107 is raised. Then run the recovery flow, drive to the Second Home Position, and confirm absolute reference is re-acquired and the alarm clears.
  9. Full speed qualification. With the cell guarded and the operator outside the safeguarded space, raise the speed override on the HOME_POS job to 100% and run a full auto cycle that starts with a home call.

11. Troubleshooting Common Home Position Issues

Symptom Likely cause Action
Robot stops mid-motion toward home with alarm 4107. Absolute encoder battery has dropped below threshold; pulse counts and absolute data disagree. Replace the encoder backup battery, perform a controlled power cycle, and execute the Second Home Position recovery as documented in section 3.
Home job executes, but PLC never sees At Home. In-position window parameter is too tight, or the DOUT instruction is set before the in-position check fires. Move the DOUT that asserts At Home to a position step that is downstream of the actual MOVJ. Verify the in-position parameter value in the parameter manual.
Robot reaches home, but the position is offset by a small repeatable distance. Wrong tool number active when the home position was taught, or tool number changed since teaching. Confirm the active tool number matches the tool in use when the home was taught. Re-teach the position with the correct tool number active.
Second Home Position is unreachable from a common parked pose. Second Home Position was taught at a pose that requires a Cartesian move through a fixture. Re-teach the Second Home Position at a safer pose that is reachable with a joint-interpolated MOVJ from any realistic park location.
CALL JOB: HOME_POS works in TEACH, fails in PLAY. Mode select is REMOTE but a teach-only condition (e.g., TP enable) is still asserted, or a hold signal is wired into the wrong input. Verify TEACH/PLAY/REMOTE switch position, the Hold input, and the external mode select wiring per the YRC1000 installation manual.
Cycle Start Permit is latched ON even when the robot is not at home. PLC logic is reading Going Home instead of At Home, or the bit is being forced in the PLC. Re-check the I/O mapping. Disengage any force on the input. Add a NOT Going Home qualifier to the permit condition.

12. Best Practices for Long-Term Maintainability

  • Reserve a position-variable range for system poses. Use P900–P909 for P_HOME, P_HOME2, P_PARK, P_TOOLCHANGE, and any other fixed system positions. This makes them easy to find in the variable editor and easy to back up.
  • Document the Second Home Position in the cell's E-stop recovery procedure. A line operator who has never seen alarm 4107 should still be able to read the procedure and execute the recovery without calling a service engineer.
  • Mirror the home status on the HMI. Show both At Home and At Home 2 as discrete indicator widgets. A single "At Home" widget hides the difference between a controlled home and a 4107-recovery home.
  • Back up the job, variable, and parameter files after every teach. Yaskawa controllers support CF-card or USB backup of *.JBI, *.DAT, and parameter sets. A backup taken immediately after the home jobs are qualified is the fastest way to recover from a controller replacement.
  • Re-qualify the home jobs after any mechanical work. Any change to the manipulator (motor swap, harmonic-drive replacement, brake adjustment) can shift the calibration reference. Re-teach and re-verify before returning the cell to production.

Is there a built-in INFORM instruction to call the Home Position directly?

No. Yaskawa does not expose a high-level "GO HOME" instruction on the YRC1000. The integrator must create a dedicated JOB that uses a MOVJ or MOVL to the recorded Home Position, and call that job from any parent job that needs to return to home.

How is the Second Home Position used during alarm 4107 recovery?

Alarm 4107 means the absolute encoder data is no longer trusted. The operator must jog each affected axis to the alignment marks, the controller validates the position against the stored Second Home Position (which includes the active tool number), absolute reference is re-acquired, and the alarm clears. It is the only path the firmware accepts for re-acquiring absolute data after an encoder backup event.

Can the PLC call the home jobs directly?

Yes. The typical pattern is for the PLC to assert a Home Request input, the robot job to latch that request and execute CALL JOB: HOME_POS or CALL JOB: SECOND_HOME, and the robot to set an At Home output when the in-position window is satisfied. The PLC then latches Cycle Start Permit only when the At Home bit is ON and no alarms are active.

Does the Second Home Position need to be taught separately for each tool number?

The HC Series documentation states that the Second Home Position incorporates a tool number along with the positional data. In practice, define the recovery motion under a single designated tool number and force that tool active in the recovery JOB so the controller's stored tool number always matches the active tool when forwarding to the position.

What is function code 0380?

Function code 0380 is the menu path to teach the Second Home Position from the Yaskawa teach pendant. It is listed in the Yaskawa Motoman how-to video library alongside the single-axis home position calibration procedures used by service technicians.

Back to blog