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:
- Pull Test (Dellner): Tensile strength testing for crimped connections
- Visual Inspection: Physical inspection for wear, damage, or defects
- Go/No-Go Gauge: Dimensional accuracy verification
- Pressure Test: Pressure measurement calibration
- Temperature Test: Temperature measurement calibration
- External Calibration: Lab-certified calibration with documentation
Calibration Workflow
Step 1: Tool Preparation
Before calibration, ensure the tool has:
- Calibration Cycle assigned (e.g., 1, 3, 6, 12 months)
- Calibration Multiplier set (typically 1, but can be adjusted)
- Tool Type configured with calibration requirements
// 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:
- Select wire samples of specified AWG sizes (e.g., AWG 20, 22, 24)
- Crimp each wire using the tool being calibrated
- Use a tensile testing machine to measure pull force until failure
- Compare measured force against minimum requirements
- Record results for each wire size
Pass Criteria:
Measured Pull Force (N) ≥ Minimum Required Force (N)Example Results:
| Wire Size | Min Force (N) | Measured (N) | Status |
|---|---|---|---|
| AWG 20 | 45.0 | 52.3 | ✓ Pass |
| AWG 22 | 38.0 | 41.7 | ✓ Pass |
| AWG 24 | 30.0 | 35.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:
- Send tool to certified calibration laboratory
- Lab performs calibration against traceable standards
- Lab provides calibration certificate with:
- Calibration date
- Standards used
- Test results
- Next calibration due date
- Upload certificate files to the system
- Link certificate to tool calibration record
Step 4: Submit Calibration Data
Submit all test results to the API endpoint:
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:
- Validates the tool has required configuration
- Verifies all requirements are provided
- Calculates individual test statuses:
- Pull tests: Compares measured vs. minimum forces
- Visual/Go-No-Go: Uses testResult field
- External: Uses testResult from certificate
- Determines overall status (all tests must pass)
- Creates calibration record with timestamp
- Creates test records for each requirement
- Creates detailed pull test records with measurements
- Processes external calibration files if applicable
- Updates tool's
last_calibration_idand dates - Calculates next calibration due date
Step 6: Review Results
The system returns:
{
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 testStatus 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:
// 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:
{
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:
- Pull test per IEC 60512-9-2 (AWG 20, 22, 24)
- 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
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:
- Upload calibration certificate PDF (file_id: 5001)
- Extract calibration date from certificate: 2024-11-20
- Record lab partner_id: 42 (AccuTest Labs)
Submission:
{
"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:
- Edit the tool record
- Set appropriate calibration cycle (1, 3, 6, 12 months)
- Set calibration multiplier (typically 1)
- Save and retry calibration
Error: "Missing calibration data for requirement ID: X"
Cause: Not all required tests were included in the submission.
Solution:
- Query ToolCalibrationRequirement for the tool's tool_type_id
- Ensure calibrationDataMap includes ALL requirement IDs
- Provide test data for each requirement
- Resubmit with complete data
Calibration Status Shows Fail
Diagnosis:
- Check individual test statuses in ToolCalibrationTest records
- For pull tests, review ToolCalibrationTestPullSimple records
- 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:
- If tool issue: Repair or replace tool
- If procedure issue: Retrain technician, verify test setup
- Re-calibrate after corrective action
Widget Shows No Tools
Causes:
- No tools have
date_calibration_dueset (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:
- Verify tools have been calibrated at least once
- Adjust widget "days due" configuration
- Check site filter settings
- 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:
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:
interface CalibrateToolResponse {
success: boolean;
message: string;
calibrationId: number; // Created ToolCalibration.id
overallStatus: boolean; // true = pass, false = fail
}Example Call:
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:
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
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
Set Realistic Cycles: Base calibration cycles on:
- Tool usage frequency
- Manufacturer recommendations
- Regulatory requirements
- Historical failure rates
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
Document Everything: Always include notes:
- Test conditions (temperature, humidity)
- Any anomalies observed
- Equipment used for testing
- Technician observations
Quality Assurance
Calibrate Calibration Tools: The tensile testing machine used for pull tests must itself be calibrated regularly.
Use Consistent Procedures: Document and follow standard operating procedures for each calibration type.
Train Technicians: Ensure calibration technicians are properly trained and certified.
Verify Results: Spot-check calibration results periodically, especially for critical tools.
Data Management
Maintain Historical Records: Never delete calibration records - they provide valuable trend data.
Monitor Trends: Track calibration results over time to identify:
- Tools degrading faster than expected
- Need to adjust calibration cycles
- Training opportunities
External Calibration Files:
- Use descriptive filenames
- Include certificate numbers in notes
- Ensure PDFs are searchable
- Retain for audit compliance period
Process Optimization
Batch Similar Tools: Group tools by type for efficient calibration sessions.
Prepare Materials: Pre-stage wire samples, test fixtures, and paperwork.
Automate Notifications: Configure system to email technicians when tools are due.
Track Efficiency Metrics:
- Time per calibration type
- First-pass success rate
- Rework frequency