Skip to main content
Challenge

Build an OPC UA Tooling Wear and Calibration Alert Queue

Aggregate cutting tool cycle counts and spindle vibration metrics from open62541 OPC UA servers. Queue worn tooling for dimensional recalibration or tool changer carousel replacement.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Aggregate cutting tool cycle counts and spindle vibration metrics from open62541 OPC UA servers. Queue worn tooling for dimensional recalibration or tool changer carousel replacement.

Tooling and CNC Cell Specialist

Subscribe to open62541 spindle telemetry nodes including cumulative engagement time and vibration RMS.

Compare live tool operating cycles against manufacturer life expectancy and regrinding thresholds.

Identify high-wear cutting tools at risk of causing dimensional part out-of-tolerance errors.

Generate tool exchange queues with rack pocket identifiers and replacement insert numbers.

Browser-based tool crib queue showing pocket wear status, remaining cycles, and swap instructions.

Simulate open62541 node dictionaries containing spindle tool cycle counts and vibration telemetry in JSON. Starter examples below are synthetic. They are not downloaded records.

open62541 OPC UA Utilizes open62541 node information structures to monitor spindle and tooling status variables.

dspy, pydantic, pytest. DSPy provides declarative prompt optimization to systematically map noisy vibration readings into maintenance classifications. Local or remote LLM supported by DSPy modules.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Accurately calculates tool life percentage from OPC UA cycle telemetry.

Generates carousel exchange alerts when vibration exceeds degradation limits.

Produces valid structured swap orders specifying tool pocket ID and insert model.

Correctly flags missing spindle vibration node data as unverified tool state.

```json [ { "input": { "cell_id": "CNC-MILL-04", "tool_pocket": 7, "tool_type": "END_MILL_12MM", "cycles_completed": 1280, "max_rated_cycles": 1200, "spindle_vibration_rms": 4.8, "vibration_threshold": 3.5 }, "expected_output": { "cell_id": "CNC-MILL-04", "tool_pocket": 7, "tool_state": "CRITICAL_WEAR", "cycles_remaining": 0, "action": "IMMEDIATE_SWAP", "replacement_insert": "INSERT-12MM-CR4" } }, { "input": { "cell_id": "CNC-MILL-04", "tool_pocket": 2, "tool_type": "DRILL_BIT_8MM", "cycles_completed": 200, "max_rated_cycles": 800, "spindle_vibration_rms": null, "vibration_threshold": 3.5 }, "expected_output": { "cell_id": "CNC-MILL-04", "tool_pocket": 2, "tool_state": "VIBRATION_TELEMETRY_MISSING", "cycles_remaining": 600, "action": "CONTINUE_WITH_OBSERVATION", "replacement_insert": null } } ] ```

Maintains passive logging and triage advice; does not send machine stop commands or alter CNC offsets. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Maintains passive logging and triage advice; does not send machine stop commands or alter CNC offsets. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Accurately calculates tool life percentage from OPC UA cycle telemetry. Generates carousel exchange alerts when vibration exceeds degradation limits. Produces valid structured swap orders specifying tool pocket ID and insert model. Correctly flags missing spindle vibration node data as unverified tool state.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Subscribe to open62541 spindle telemetry nodes including cumulative engagement time and vibration RMS. Compare live tool operating cycles against manufacturer life expectancy and regrinding thresholds. Identify high-wear cutting tools at risk of causing dimensional part out-of-tolerance errors. Generate tool exchange queues with rack pocket identifiers and replacement insert numbers.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Accurately calculates tool life percentage from OPC UA cycle telemetry. Generates carousel exchange alerts when vibration exceeds degradation limits. Produces valid structured swap orders specifying tool pocket ID and insert model. Correctly flags missing spindle vibration node data as unverified tool state.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Browser-based tool crib queue showing pocket wear status, remaining cycles, and swap instructions.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Maintains passive logging and triage advice; does not send machine stop commands or alter CNC offsets.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Subscribe to open62541 spindle telemetry nodes including cumulative engagement time and vibration RMS.

  • Compare live tool operating cycles against manufacturer life expectancy and regrinding thresholds.

  • Identify high-wear cutting tools at risk of causing dimensional part out-of-tolerance errors.

  • Generate tool exchange queues with rack pocket identifiers and replacement insert numbers.

Resources and assets

Reference links and supporting material

Dataset notes

Simulate open62541 node dictionaries containing spindle tool cycle counts and vibration telemetry in JSON. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

DSPy

Prompt and LM program optimization framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Subscribe to open62541 spindle telemetry nodes including cumulative engagement time and vibration RMS. Comp...
  • Accurately calculates tool life percentage from OPC UA cycle telemetry. Generates carousel exchange alerts...
  • Browser-based tool crib queue showing pocket wear status, remaining cycles, and swap instructions.
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 3 configured tools

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • DSPy · Optional
Training Infra
  • DSPy · Optional
Orchestration
  • DSPy · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build an OPC UA Tooling Wear and Calibration Alert Queue