Skip to content

Tool Calibration System

Overview

The Tool Calibration System is a comprehensive quality assurance framework designed to ensure that production tools maintain their accuracy, reliability, and compliance with industry standards. This system manages the entire calibration lifecycle for various types of tools including crimping tools, testers, gauges, and measurement equipment.

Why Calibration Matters

Tool calibration is critical for several reasons:

  • Quality Assurance: Ensures consistent product quality by maintaining tool accuracy
  • Regulatory Compliance: Meets industry standards like IEC 60512-9-2 for electrical connectors
  • Safety: Prevents failures in critical applications where tool accuracy is essential
  • Cost Reduction: Identifies failing tools before they cause production defects
  • Traceability: Provides documentation and audit trails for quality management systems
  • Preventive Maintenance: Scheduled calibrations catch tool degradation early

Key Concepts

Calibration Cycle

A calibration cycle defines how often a tool requires calibration (e.g., monthly, quarterly, annually). Combined with the calibration multiplier, this determines the exact interval:

Next Calibration Due = Last Calibration Date + (Calibration Cycle × Multiplier)

Example: A tool with a 3-month cycle and multiplier of 2 requires calibration every 6 months.

Calibration Status

Each calibration has an overall status determined by ALL required tests:

  • Pass: ALL required tests pass (AND logic)
  • Fail: ANY required test fails

This strict approach ensures tools meet all applicable standards before being returned to service.

Calibration Types

The system supports multiple calibration methodologies:

  1. Pull Test (Dellner): Tensile strength testing for crimped connections
  2. Visual Inspection: Physical inspection for wear, damage, or defects
  3. Go/No-Go Gauge: Dimensional accuracy verification
  4. Pressure Test: Pressure measurement calibration
  5. Temperature Test: Temperature measurement calibration
  6. External Calibration: Lab-certified calibration with documentation

Calibration Workflow

Step 1: Tool Preparation

Before calibration, ensure the tool has:

  1. Calibration Cycle assigned (e.g., 1, 3, 6, 12 months)
  2. Calibration Multiplier set (typically 1, but can be adjusted)
  3. Tool Type configured with calibration requirements
typescript
// Example tool configuration
{
  id: 12345,
  name: "Crimping Tool - Model XYZ",
  calibration_cycle: 3,              // 3 months
  calibration_multipiler: 2,          // Multiplier of 2
  tool_type_id: 5,                    // Links to ToolType with requirements
  date_last_calibration: "2024-06-15",
  date_calibration_due: "2024-12-15"  // 6 months later (3 × 2)
}

Step 2: Identify Required Tests

The tool's ToolType determines which calibration tests are mandatory through ToolCalibrationRequirement records. Each requirement specifies:

  • The calibration type (pull test, visual, etc.)
  • The standard to apply (e.g., IEC 60512-9-2)
  • Any specific parameters (wire sizes, force thresholds, etc.)

Step 3: Perform Calibration Tests

Pull Test Calibration

Pull tests verify that crimped wire connections meet minimum tensile strength requirements.

Process:

  1. Select wire samples of specified AWG sizes (e.g., AWG 20, 22, 24)
  2. Crimp each wire using the tool being calibrated
  3. Use a tensile testing machine to measure pull force until failure
  4. Compare measured force against minimum requirements
  5. Record results for each wire size

Pass Criteria:

Measured Pull Force (N) ≥ Minimum Required Force (N)

Example Results:

Wire SizeMin Force (N)Measured (N)Status
AWG 2045.052.3✓ Pass
AWG 2238.041.7✓ Pass
AWG 2430.035.2✓ Pass

All measurements must pass for the pull test to pass.

Visual Inspection

A technician examines the tool for:

  • Wear or damage to crimping dies
  • Cracks or deformation
  • Proper alignment and operation
  • Cleanliness and condition

Result: Simple pass/fail determination with optional notes.

Go/No-Go Gauge Test

Dimensional verification using precision gauges:

  • Tool dimensions must fall within specified tolerances
  • "Go" gauge should fit, "No-Go" gauge should not fit

Result: Pass if dimensions are within tolerance.

External Calibration

For precision instruments requiring lab certification:

  1. Send tool to certified calibration laboratory
  2. Lab performs calibration against traceable standards
  3. Lab provides calibration certificate with:
    • Calibration date
    • Standards used
    • Test results
    • Next calibration due date
  4. Upload certificate files to the system
  5. Link certificate to tool calibration record

Step 4: Submit Calibration Data

Submit all test results to the API endpoint:

typescript
POST /api/tools/calibrate-tool

{
  toolId: 12345,
  userId: 67,
  calibrationDataMap: {
    "101": {  // Requirement ID for pull test
      testData: {
        pullTestResults: [
          {
            id: 501,  // ToolTypePartPullTest ID
            result: "52.3"  // Measured force in Newtons
          },
          {
            id: 502,
            result: "41.7"
          },
          {
            id: 503,
            result: "35.2"
          }
        ],
        notes: "All tests passed within specification"
      },
      calibration_type: {
        controller: "pull_test_dellner"
      }
    },
    "102": {  // Requirement ID for visual inspection
      testData: {
        testResult: "pass",
        notes: "No visible wear or damage"
      },
      calibration_type: {
        controller: "visual"
      }
    },
    "103": {  // Requirement ID for external calibration
      testData: {
        externalCalibration: true,
        testResult: "pass",
        externalData: {
          calibrationDate: "2024-11-15",
          partnerId: 25,
          notes: "Calibrated by AccuLab Services",
          uploadedFiles: [
            { id: 8901 },
            { id: 8902 }
          ]
        }
      },
      calibration_type: {
        controller: "external"
      }
    }
  }
}

Step 5: System Processing

The system performs the following:

  1. Validates the tool has required configuration
  2. Verifies all requirements are provided
  3. Calculates individual test statuses:
    • Pull tests: Compares measured vs. minimum forces
    • Visual/Go-No-Go: Uses testResult field
    • External: Uses testResult from certificate
  4. Determines overall status (all tests must pass)
  5. Creates calibration record with timestamp
  6. Creates test records for each requirement
  7. Creates detailed pull test records with measurements
  8. Processes external calibration files if applicable
  9. Updates tool's last_calibration_id and dates
  10. Calculates next calibration due date

Step 6: Review Results

The system returns:

typescript
{
  success: true,
  message: "Calibration processed successfully",
  calibrationId: 7890,
  overallStatus: true  // true = pass, false = fail
}

If calibration fails, the tool should be:

  • Taken out of service immediately
  • Inspected for issues
  • Repaired or replaced
  • Re-calibrated before returning to production

Understanding Calibration Results

Calibration Record Structure

Each calibration creates a hierarchical record structure:

ToolCalibration (Overall calibration)
├── date_calibration: When calibration was performed
├── status: 1 (pass) or 0 (fail)
├── user_id: Technician who performed calibration
├── calibration_cycle: Cycle at time of calibration
├── calibration_multipiler: Multiplier at time of calibration
└── ToolCalibrationTest[] (Individual tests)
    ├── calibration_type_id: Type of test (pull, visual, etc.)
    ├── status: true (pass) or false (fail)
    ├── notes: Technician notes
    ├── is_external: Whether performed by external lab
    └── ToolCalibrationTestPullSimple[] (Detailed pull test data)
        ├── wire_awg_value: Wire gauge (e.g., "20", "22")
        ├── min_pull_force_n: Minimum required force
        ├── pull_test_value_n: Measured force
        ├── status: true (pass) or false (fail)
        └── tensile_tool_id: Tool used to perform pull test

Status Interpretation

Overall Calibration Status = 1 (Pass)

  • Tool meets ALL requirements
  • Can be returned to production
  • Next calibration due date is calculated and set

Overall Calibration Status = 0 (Fail)

  • One or more tests failed
  • Tool must not be used in production
  • Tool requires repair, adjustment, or replacement
  • Must be re-calibrated after corrective action

Individual Test Status = true (Pass)

  • This specific test requirement was met
  • For pull tests: All wire size measurements passed
  • For visual/go-no-go: Inspection criteria met

Individual Test Status = false (Fail)

  • This specific test requirement was not met
  • Review notes and measurement data for details
  • Identify which wire sizes failed (for pull tests)

Calibration Cycles and Due Dates

How Due Dates are Calculated

The system uses a flexible calculation:

javascript
// For internal calibrations
date_calibration_due = date_calibration + (calibration_cycle × calibration_multipiler)

// For external calibrations
date_calibration_due = MIN(external_calibration_dates) + (calibration_cycle × calibration_multipiler)

Example 1: Internal calibration

  • Date calibrated: 2024-06-15
  • Cycle: 3 months
  • Multiplier: 2
  • Due date: 2024-12-15 (6 months later)

Example 2: Mixed internal and external

  • External test date: 2024-06-01 (earliest)
  • Internal test date: 2024-06-15
  • Cycle: 3 months
  • Multiplier: 2
  • Due date: 2024-12-01 (6 months from earliest external date)

Monitoring Calibration Status

The WidgetToolCalibrationDue widget displays tools that are:

  • Overdue (past calibration_due date) - shown in red
  • Due soon (within configurable days threshold)

Configure the widget to:

  • Filter by site location
  • Set days-ahead warning (e.g., show tools due within 30 days)
  • Monitor specific tool categories

Practical Examples

Example 1: Calibrating a Crimping Tool

Scenario: Standard crimping tool requiring pull test and visual inspection.

Tool Configuration:

typescript
{
  id: 1001,
  name: "Crimping Tool - DMC AFM8",
  tool_type_id: 10,  // "Crimping Tool - Standard"
  calibration_cycle: 6,  // 6 months
  calibration_multipiler: 1,
  date_last_calibration: "2024-06-01",
  date_calibration_due: "2024-12-01"
}

Tool Type Requirements:

  1. Pull test per IEC 60512-9-2 (AWG 20, 22, 24)
  2. Visual inspection

Step 1: Perform pull tests

  • Prepare 3 samples each of AWG 20, 22, 24 wire
  • Crimp using tool 1001
  • Test on tensile machine (tool 2001)
  • Record measurements

Step 2: Visual inspection

  • Inspect dies for wear
  • Check alignment
  • Result: Pass

Step 3: Submit calibration

typescript
POST /api/tools/calibrate-tool
{
  toolId: 1001,
  userId: 15,
  calibrationDataMap: {
    "201": {  // Pull test requirement
      testData: {
        pullTestResults: [
          { id: 301, result: "48.5" },  // AWG 20: min 45N
          { id: 302, result: "40.2" },  // AWG 22: min 38N
          { id: 303, result: "33.8" }   // AWG 24: min 30N
        ]
      },
      calibration_type: { controller: "pull_test_dellner" }
    },
    "202": {  // Visual inspection requirement
      testData: {
        testResult: "pass",
        notes: "Dies in excellent condition"
      },
      calibration_type: { controller: "visual" }
    }
  }
}

Result: Calibration passes, tool returned to service, due date set to 2025-06-01.

Example 2: Failed Calibration

Scenario: Tool fails pull test due to worn dies.

Pull Test Results:

  • AWG 20: 47.2N (min 45N) - Pass
  • AWG 22: 35.1N (min 38N) - FAIL
  • AWG 24: 28.3N (min 30N) - FAIL

Outcome:

  • Overall calibration status: Fail
  • Tool status updated to "Out of Service"
  • Corrective action: Replace crimping dies
  • Tool must be re-calibrated before use

Example 3: External Calibration

Scenario: Precision gauge sent to external lab.

Process:

  1. Upload calibration certificate PDF (file_id: 5001)
  2. Extract calibration date from certificate: 2024-11-20
  3. Record lab partner_id: 42 (AccuTest Labs)

Submission:

typescript
{
  "301": {
    testData: {
      externalCalibration: true,
      testResult: "pass",
      externalData: {
        calibrationDate: "2024-11-20",
        partnerId: 42,
        notes: "Certificate #CT-2024-9876",
        uploadedFiles: [
          { id: 5001 }
        ]
      }
    },
    calibration_type: { controller: "external" }
  }
}

System Actions:

  • Creates ToolCalibrationExternal record
  • Links file 5001 to calibration
  • Uses external date (2024-11-20) for due date calculation
  • File status updated from temporary (0) to active (1)

Troubleshooting Common Issues

Error: "Tool must have calibration_cycle set"

Cause: Tool's calibration_cycle field is null or 0.

Solution:

  1. Edit the tool record
  2. Set appropriate calibration cycle (1, 3, 6, 12 months)
  3. Set calibration multiplier (typically 1)
  4. Save and retry calibration

Error: "Missing calibration data for requirement ID: X"

Cause: Not all required tests were included in the submission.

Solution:

  1. Query ToolCalibrationRequirement for the tool's tool_type_id
  2. Ensure calibrationDataMap includes ALL requirement IDs
  3. Provide test data for each requirement
  4. Resubmit with complete data

Calibration Status Shows Fail

Diagnosis:

  1. Check individual test statuses in ToolCalibrationTest records
  2. For pull tests, review ToolCalibrationTestPullSimple records
  3. Identify which measurements failed

Common Causes:

  • Worn or damaged tool components
  • Improper test procedure
  • Incorrect wire size or material
  • Tensile testing machine calibration issue

Resolution:

  1. If tool issue: Repair or replace tool
  2. If procedure issue: Retrain technician, verify test setup
  3. Re-calibrate after corrective action

Widget Shows No Tools

Causes:

  • No tools have date_calibration_due set (tools never calibrated)
  • All tools are current (none due within threshold)
  • Site filter excludes all tools
  • Tools have system_status_id != 1 (not active)

Solution:

  1. Verify tools have been calibrated at least once
  2. Adjust widget "days due" configuration
  3. Check site filter settings
  4. Verify tool system_status_id values

API Integration Guide

Endpoint: POST /api/tools/calibrate-tool

Purpose: Submit complete calibration data for a tool.

Request Body Schema:

typescript
interface CalibrateToolRequest {
  toolId: number;                    // ID of tool being calibrated
  userId: number;                    // ID of user performing calibration
  calibrationDataMap: {
    [requirementId: string]: {       // String key: ToolCalibrationRequirement.id
      testData: {
        // For pull tests (internal)
        pullTestResults?: Array<{
          id: number;                // ToolTypePartPullTest.id
          result: string;            // Measured force (N) as string
        }>;

        // For visual/go-no-go/other (internal)
        testResult?: "pass" | "fail";

        // For external calibrations
        externalCalibration?: boolean;
        externalData?: {
          calibrationDate: string;   // YYYY-MM-DD format
          partnerId: number;         // External lab partner ID
          notes?: string;
          uploadedFiles?: Array<{
            id: number;              // File.id of uploaded certificate
          }>;
        };

        // Optional for all types
        notes?: string;              // Technician notes
      };
      calibration_type: {
        controller: string;          // Type: pull_test_dellner, visual, go_no_go, etc.
      };
    };
  };
}

Response Schema:

typescript
interface CalibrateToolResponse {
  success: boolean;
  message: string;
  calibrationId: number;             // Created ToolCalibration.id
  overallStatus: boolean;            // true = pass, false = fail
}

Example Call:

typescript
import { ToolControllerService } from '@barcoding/sdk';

class CalibrationService {
  constructor(private toolApi: ToolControllerService) {}

  async submitCalibration(
    toolId: number,
    userId: number,
    calibrationData: any
  ): Promise<any> {
    try {
      const response = await firstValueFrom(
        this.toolApi.calibrateTool({
          toolId,
          userId,
          calibrationDataMap: calibrationData
        })
      );

      if (response.overallStatus) {
        console.log('Calibration passed:', response.calibrationId);
      } else {
        console.warn('Calibration failed:', response.calibrationId);
      }

      return response;
    } catch (error) {
      console.error('Calibration submission error:', error);
      throw error;
    }
  }
}

Querying Calibration History

Retrieve calibration history for a tool:

typescript
import { ToolCalibrationControllerService } from '@barcoding/sdk';

// Get all calibrations for a tool with full test details
const filter = {
  where: { tool_id: 1001 },
  include: [
    {
      relation: 'tests',
      scope: {
        include: [
          'calibration_type',
          'pull_tests_simple',
          'external'
        ]
      }
    },
    'user',
    'calibration_cycle_format'
  ],
  order: ['date_calibration DESC']
};

const calibrations = await firstValueFrom(
  calibrationApi.find({ filter: JSON.stringify(filter) })
);

Checking Tools Due for Calibration

typescript
import { ToolControllerService } from '@barcoding/sdk';
import moment from 'moment';

// Get tools due within next 30 days
const currentDate = moment().toDate().toISOString();
const targetDate = moment().add(30, 'days').toDate().toISOString();

const filter = {
  where: {
    and: [
      { system_status_id: 1 },        // Active tools only
      { date_calibration_due: { neq: null } },
      {
        or: [
          { date_calibration_due: { between: [currentDate, targetDate] } },
          { date_calibration_due: { lt: currentDate } }  // Overdue
        ]
      }
    ]
  },
  include: ['tool_type', 'location', 'status_format'],
  order: ['date_calibration_due ASC']
};

const toolsDue = await firstValueFrom(
  toolApi.find({ filter: JSON.stringify(filter) })
);

Best Practices

Calibration Scheduling

  1. Set Realistic Cycles: Base calibration cycles on:

    • Tool usage frequency
    • Manufacturer recommendations
    • Regulatory requirements
    • Historical failure rates
  2. Plan Ahead: Use the calibration due widget to:

    • Schedule calibrations during low-production periods
    • Batch calibrations of similar tools
    • Order external lab services in advance
  3. Document Everything: Always include notes:

    • Test conditions (temperature, humidity)
    • Any anomalies observed
    • Equipment used for testing
    • Technician observations

Quality Assurance

  1. Calibrate Calibration Tools: The tensile testing machine used for pull tests must itself be calibrated regularly.

  2. Use Consistent Procedures: Document and follow standard operating procedures for each calibration type.

  3. Train Technicians: Ensure calibration technicians are properly trained and certified.

  4. Verify Results: Spot-check calibration results periodically, especially for critical tools.

Data Management

  1. Maintain Historical Records: Never delete calibration records - they provide valuable trend data.

  2. Monitor Trends: Track calibration results over time to identify:

    • Tools degrading faster than expected
    • Need to adjust calibration cycles
    • Training opportunities
  3. External Calibration Files:

    • Use descriptive filenames
    • Include certificate numbers in notes
    • Ensure PDFs are searchable
    • Retain for audit compliance period

Process Optimization

  1. Batch Similar Tools: Group tools by type for efficient calibration sessions.

  2. Prepare Materials: Pre-stage wire samples, test fixtures, and paperwork.

  3. Automate Notifications: Configure system to email technicians when tools are due.

  4. Track Efficiency Metrics:

    • Time per calibration type
    • First-pass success rate
    • Rework frequency

Syneo/Barcoding Documentation