Adept Viper s650 Encoder Fault Reset: RSC_SET Calibration Guide

James Nishida13 min read
OmronRoboticsTutorial / How-to
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

Overview

The Adept Viper s650 is a six-axis SCARA-class articulated robot originally developed by Adept Technology and now supported by Omron Robotics. The Viper line (s650, s800, s850) and the related Cobra s600 share a common control architecture based on absolute encoders backed by an internal battery pack on each joint module. When those batteries discharge below their retention threshold, the controller loses absolute joint position on the next power-down and produces a per-joint encoder fault alarm at boot. The fault cannot be cleared with the pendant alone, the ACE (Adept Cognex Environment) software does not expose calibration utilities, and the older ABS_ENC.V2 program from the Adept Utility Programs set only applies to AdeptVicron controllers. The correct workflow on the Viper platform is to clear encoder errors with the RSC_SET utility, then perform a rough calibration followed by a fine calibration with the manufacturer-supplied mechanical jig. This reference documents that procedure, the controller-specific paths for the EX and CX families, and the RSC file format constraints that commonly cause a failed commit operation.

Encoder System Architecture

Each Viper s650 joint contains a multi-turn absolute encoder. The encoder counts are stored to non-volatile RAM on the joint amplifier board, retained by a primary-cell lithium battery pack (commonly two or three cells in series, depending on the joint). When the controller powers up, it compares the encoder count on the bus to the last saved value in joint memory:

  • Match: The joint boots in CALIBRATED state and the robot is immediately operable.
  • Mismatch or unreadable memory: The joint boots in UNCALIBRATED state, the pendant posts an encoder fault for that joint, and motion is inhibited until calibration data is written.

The encoder fault is not a hardware failure; it is a normal consequence of a dead or disconnected backup battery. Replacing the battery alone does not clear the fault because the controller has already flagged the joint as uncalibrated. The fault state is sticky and must be cleared through the RSC_SET utility before any calibration command will be accepted.

Symptom differentiation: A genuine encoder failure (broken code disk, optical contamination, or cable damage) produces an overflow value with a hardware alarm code at the amplifier level. A battery-induced loss of calibration produces a normal-looking but uninitialized encoder reading that the controller refuses to use. The RSC_SET utility clears the latter; it cannot repair the former.

Prerequisites

Before attempting calibration, gather the following:

  1. Controller platform identification. The Viper s650 ships on either the Adept EX (eXpert) or CX (Cobra eXtreme / Compact eXtreme) controller. The front panel label, the VERSION command output, and the file system layout all identify the platform. The i4L controller is another common variant in the field; it follows the EX file-system conventions.
  2. Pendant or terminal session. Calibration is run from the V+ console (the pendant or a Telnet/SSH session into the controller). ACE software is not required for the calibration commands but is useful for project management and motion program development.
  3. RSC file matching the robot serial number. The calibration data is stored in an RSC (Robot Sensor Calibration / Robot System Calibration) file on the controller. The RSC must match the exact mechanical configuration of the robot; loading an RSC formatted for a different robot model or generation triggers the format of the RSC is different from the one you are trying to program abort.
  4. Mechanical calibration jig (fine cal only). The fine calibration procedure requires a manufacturer-supplied mechanical alignment jig. Field engineers without the jig can only complete rough calibration, which is sufficient to clear the fault and produce a usable but lower-accuracy pose map.
  5. Verified battery replacement. All joint batteries must be freshly installed and verified with a multimeter before the controller is powered up. Powering up with partially discharged batteries re-creates the fault.
  6. Free workspace. The robot must have full swing on every joint. Remove end-effectors or grippers that could collide with the base or surrounding fixtures during rough calibration motion.

Controller Identification and Utility Path

The RSC_SET utility location and licensing differ between platforms. Use the table below to identify the correct path before issuing any commands.

Controller File System Root Utility Path License Requirement
EX / i4L D:\ D:\ADEPT\UTIL\RSC_SET.V2 SD-card serial-number bound license (factory-installed for OEM partners; service-locked otherwise)
CX D:\ D:\ADEPT\UTIL\RSC_SET.V2 if present If not present in the UTIL folder, the utility must be obtained from the Omron service office; no self-serve license
SmartController EX D:\ (or virtualized on CompactFlash) D:\ADEPT\UTIL\RSC_SET.V2 License gated by SD-card serial number

Verify the utility is present and readable before attempting the procedure:

DIRECTORY D:\ADEPT\UTIL

The directory listing should include RSC_SET.V2 (or the variant supplied by Omron service for CX units). If the file is absent on a CX, contact Omron service; do not copy the EX version across platforms because the binary contains controller-specific system calls.

Clearing Encoder Faults with RSC_SET

The RSC_SET utility writes a fresh calibration record into the joint amplifiers and resets the controller's uncalibrated flags. The session is interactive: the utility prompts for confirmation at each step and writes a log to the console.

Step-by-step procedure

  1. Power on the controller. Confirm the pendant shows encoder faults on every joint (or on the joints whose batteries were replaced).
  2. Disable high-voltage enable on the robot. From the V+ console, type ENABLE OFF and verify the status indicator is off.
  3. Load the RSC_SET program: LOAD D:\ADEPT\UTIL\RSC_SET.V2
  4. Execute the program. The utility prompts for the RSC file to load and the joints to reset: EXECUTE A.RSC_SET
  5. When prompted, provide the path to the matching RSC file, e.g. D:\ADEPT\CAL\VIPER_S650_SNXXXX.RSC
  6. Confirm each joint reset. The utility will report Joint n: encoder error cleared for every successfully reset joint.
  7. When the utility returns, reboot the controller (REBOOT) to reinitialize the joint amplifiers with the fresh calibration record.
  8. At the V+ console prompt, verify the new state: CALIBRATED The response should report all joints in the calibrated state. The pendant encoder fault should be cleared.
Do not skip the reboot. The RSC_SET utility writes the calibration record to joint memory, but the amplifier's running calibration pointer is only refreshed at controller startup. Running rough calibration without the reboot typically produces an overflow alarm on the next motion attempt.

Rough Calibration

Rough calibration establishes a coarse zero reference for each joint by driving the joint to a known mechanical position. On the Viper s650, the rough-cal target for every rotary joint is the mechanical stop at one extreme of the joint travel. The procedure writes an approximate calibration value (within a few encoder counts of true zero) to the joint memory and is the minimum required to clear all motion-inhibit faults.

Procedure

  1. Verify the robot is in CALIBRATED state after the RSC_SET reboot. Rough calibration requires the encoder fault to already be cleared.
  2. From the V+ console, run the rough-cal command. The exact command set is platform-specific; the V+ syntax is: CALIBRATE ROUGH For per-joint rough calibration, use: CALIBRATE JOINT n ROUGH where n is the joint number (1-6 on the Viper s650).
  3. The controller drives each joint to its mechanical stop in sequence. Listen for the hard-stop contact and watch for the controller's stop detected indicator on the pendant.
  4. When the routine completes, the controller stores the rough calibration values. The console reports cal.c = 0 for each joint, indicating the calibration check value is zero and the rough calibration is recorded.
  5. Save the calibration to disk: SAVE CAL
cal.c = 0 is the rough-cal success indicator. The field is a controller-side consistency check; a non-zero value indicates the joint was disturbed during write or the joint memory did not latch. Repeat the joint rough-cal if cal.c is non-zero.

Fine Calibration

Rough calibration leaves absolute position accuracy on the order of a few millimetres at the tool flange. For most production work this is insufficient. Fine calibration refines the joint zero reference using a manufacturer-supplied mechanical alignment jig that constrains the robot to a precisely known pose. The jig is mandatory; there is no software-only substitute.

Prerequisites unique to fine cal

  • Adept / Omron calibration jig matching the Viper s650 mechanical generation. Older Cobra s600 jigs are not interchangeable.
  • A precision dial indicator or the jig's built-in reference feature, verified to be within the jig's published tolerance before the procedure starts.
  • Stable thermal environment. Encoder zero drift is temperature dependent; allow the robot to soak at ambient for at least 30 minutes after power-on.

Procedure

  1. Mount the calibration jig to the robot base per the jig manual. Confirm the jig is rigidly fixed and the dial indicator (if used) reads within its mid-range before mounting.
  2. From the V+ console, run: CALIBRATE FINE For per-joint fine calibration: CALIBRATE JOINT n FINE
  3. The controller walks each joint to the calibration pose dictated by the jig. Confirm mechanical contact at each step using the jig's reference features.
  4. After the routine completes, the controller reports a per-joint fine offset and updates the joint calibration record. Save the calibration to disk: SAVE CAL
  5. Verify the saved RSC file on the controller's file system matches the robot serial number. A mismatched serial number on the saved RSC indicates the controller loaded the wrong RSC during RSC_SET and the entire process must be repeated with the correct file.

RSC File Format Compatibility

The RSC file format is controller-generation specific. The most common calibration abort encountered by first-time users is:

Format of the RSC is different from the one you are trying to program. The commit operation is aborted.

This message indicates that the RSC file was generated for a different robot generation or controller firmware level than the one currently in the controller. The controller performs a header check before committing the calibration data; if the generation, joint count, or amplifier firmware signature does not match, the commit is rejected without modifying joint memory.

Resolution

  1. Confirm the robot model and serial number printed on the base data plate.
  2. Source the matching RSC from the Omron Robotics support portal. The RSC filename convention is typically VIPER_S650_SN<serial>.RSC or COBRA_S600_SN<serial>.RSC.
  3. Verify the RSC generation tag with a hex viewer; older RSCs begin with a magic number from the V+ 11.x generation, newer ones from V+ 14.x or later. Do not cross-load across generations.
  4. Repeat the RSC_SET procedure with the correctly formatted RSC.

Verification

After rough and (if possible) fine calibration, perform the following checks before returning the robot to production:

  1. Pendant status: No encoder faults displayed. Status indicator shows Calibrated.
  2. Console state: CALIBRATED returns All joints calibrated.
  3. Motion test: Run a low-speed joint sweep (10% speed) through full travel on every joint. Listen for abnormal sounds and watch for deviation from the expected joint range.
  4. Pose repeatability: Command the robot to a known pose from V+ (for example, HERE pose_home), power-cycle the controller, and re-execute HERE pose_home. The pose should be re-acquired within the manufacturer's published repeatability spec (typically ±0.02 mm for the Viper s650).
  5. RSC save verification: DIRECTORY D:\ADEPT\CAL and confirm the saved RSC file size and modification time match the calibration session.

Troubleshooting Matrix

Symptom Likely Cause Resolution
Encoder fault on every joint at boot All joint batteries discharged simultaneously Replace all joint batteries, reboot, run RSC_SET, then rough cal
Encoder fault on a subset of joints Partial battery failure; one joint's battery cell was already weak Replace batteries in the affected joints and any joint sharing the same battery harness, then run RSC_SET for the affected joints only
Encoder overflow alarm during rough cal RSC_SET was not run before rough cal; the joint amplifier still holds an invalid calibration pointer Run RSC_SET, reboot the controller, and re-attempt rough cal
Format of the RSC is different abort Wrong RSC generation loaded into RSC_SET Source the RSC matching the robot serial number and controller firmware generation, then re-run RSC_SET
cal.c non-zero after rough cal Joint was disturbed during write or amplifier did not latch the new value Repeat the rough cal for that joint; if it persists, check the encoder battery on the joint amplifier board
RSC data not saving to robot RSC format mismatch or write-protected file system on the controller Verify the controller file system is writable (WRITE status), confirm the RSC format matches the robot generation, retry
Robot cannot be moved back to a precise pose after rough cal Rough-cal only; fine calibration with the jig has not been run Schedule fine calibration with the manufacturer jig; do not attempt production work on rough cal alone
Encoder reading appears unreasonably large Stale uninitialized encoder data; controller has not been through RSC_SET Run RSC_SET, reboot, then rough cal. Do not attempt to clear the data by hand

Process Flow

Replace joint batteries, power on controller Pendant shows encoder fault on one or more joints LOAD D:\ADEPT\UTIL\RSC_SET.V2 EXECUTE A.RSC_SET (load matching RSC) REBOOT controller; verify CALIBRATED state CALIBRATE ROUGH (mechanical stop) CALIBRATE FINE (jig required) SAVE CAL; verify pose repeatability

Field-Proven Caveats

  • Replacing the battery before clearing the fault does not help. The amplifier's calibration flag is set at the first power-up after battery loss and is not reset by a subsequent battery swap.
  • ACE software does not contain the RSC_SET utility, nor any equivalent. The calibration workflow is intentionally console-only; attempting to script the procedure from ACE will fail because the V+ program loader is not exposed through the ACE API.
  • The RSC_SET utility on EX controllers is gated by a license bound to the SD-card serial number. Service-locked controllers will reject the utility even if the file is present; only OEM or service partners with the license can run it on a locked unit.
  • Power-cycling the controller between RSC_SET and rough cal is mandatory. The amplifier's calibration pointer is loaded at boot; running rough cal against the pre-RSC_SET pointer produces an overflow alarm.
  • Do not attempt to clear encoder data manually from the V+ console. The V+ commands for direct encoder access are present but operating on the uninitialized data without RSC_SET will write garbage into the joint memory and require factory recovery.
  • The Cobra s600, Viper s650, and Viper s800 share the RSC_SET workflow but the RSC files are not interchangeable. Always use the RSC tagged with the actual robot serial number.

Frequently Asked Questions

What utility clears encoder errors on a Viper s650?

The RSC_SET.V2 utility in D:\ADEPT\UTIL is the correct tool. The older ABS_ENC.V2 applies only to AdeptVicron controllers and cannot be used on a Viper. On EX controllers the utility requires an SD-card serial-number bound license; on CX controllers it must be sourced from Omron service if not pre-installed.

Why does the controller report an encoder overflow when I run rough calibration?

The overflow is a sign that RSC_SET was not run before rough cal, or that the controller was not rebooted after RSC_SET. The amplifier still holds the uninitialized calibration pointer. Run RSC_SET, reboot, then re-run CALIBRATE ROUGH from the V+ console.

Can I calibrate a Viper s650 without the manufacturer jig?

Rough calibration can be completed using only the mechanical stops on each joint, and it clears the encoder faults and restores motion. Fine calibration, which delivers production-grade absolute accuracy, requires the manufacturer-supplied mechanical jig. Without the jig, pose repeatability is degraded to a few millimetres at the tool flange.

What causes the "format of the RSC is different" abort?

The RSC file generation does not match the controller firmware or the robot mechanical generation. The controller performs a header check on commit and rejects RSC files generated for a different platform. Source the RSC tagged with the exact robot serial number and matching controller firmware generation, then re-run RSC_SET.

What does cal.c = 0 indicate after rough calibration?

cal.c is the per-joint consistency check value reported by the V+ console after a calibration write. A value of zero means the new calibration record latched successfully in joint memory. A non-zero value indicates the joint was disturbed during write or the amplifier did not latch; repeat the rough calibration for that joint and verify the joint battery.

Is replacing the joint batteries enough, or is calibration still required?

Battery replacement is necessary but not sufficient. After a battery swap the controller retains the uncalibrated flag set at the first power-up with dead batteries. The flag must be cleared with RSC_SET and the joints must be rough-calibrated (and ideally fine-calibrated) before the robot will accept motion commands.

Back to blog