# Joint Lab test protocol v1

**Status: Planned.** This is a reproducible project procedure, not a report of a built fixture or completed test. Gavin must confirm the physical setup, material, printer settings, hypothesis, and revision IDs before trials begin. No clearance, torque, fit, wear, or winning joint has been established.

## Question and scope

Compare a plain pin, an adjustable friction joint, and an indexed detent for a specific moving body panel. Use a common base and interchangeable cartridges so that fixture geometry and load point stay the same. Record holding tests, breakaway effort, play, repeatability, wear, and subjective usability separately. A single successful hold is not a joint capacity rating.

## Coordinates and planned fixture interface

- Engineering lengths are in **millimeters**; angles are in **degrees**; mass is in **kilograms**; force is in **newtons**. Torque is generated in **N·mm**.
- In the test plane, pivot datum **O = (0, 0)**. The neutral lever points along +X. Viewed from +Z toward the fixture, positive recorded angle is counterclockwise. Record applied moment direction separately as `clockwise` or `counterclockwise`. The website's teaching animation is illustrative and does not define physical geometry.
- The proposed common mount has four M3 fastener centers at `(−15, −15)`, `(15, −15)`, `(−15, 15)`, and `(15, 15)` mm relative to O. Each cartridge uses that same pattern and pivot datum. Base outline, thickness, cartridge fit, and hole clearances require CAD and print review before this becomes a manufacturing specification.
- The planned lever load-hole center is **100 mm nominally** from O. Measure the actual perpendicular distance from O to the load's line of action for every trial and enter it as `perpendicular_arm_mm`. The nominal 100 mm length is never substituted for that distance when force is oblique.
- Planned target angles are **−60°, −30°, 0°, 30°, 60°**. Record the actual angle in every row. If a revised cartridge cannot reach a target, record the reason in the design log rather than invent a trial.

| Cartridge | Planned construction and distinct question | Setup field that must be recorded |
| --- | --- | --- |
| Plain pin | A candidate 3 mm shaft in a printed pivot hole, with no intentional holding preload. How much play and free movement result? | Pin and hole revision, specimen, print conditions. |
| Adjustable friction | An M3 fastener with washers and an adjustable nut provides contact preload. Can it hold an angle without excessive breakaway effort? | `preload_setting` for every trial, stated as an actual repeatable nut position or measured fastener setting. |
| Indexed detent | A visible ball and spring engage a replaceable stop feature. Can the joint return to defined positions? Ball, spring, and pocket dimensions are not selected yet. | Detent stop revision and the observed stop angle. |

For the initial **planned** detent study, the stop-position parameters are `[-60, 0, 60]` degrees. These are test targets, not approved CAD geometry. Save changed positions under a new revision ID and update the design log; do not silently alter an earlier specimen.

## Calibration coupon before cartridges

The proposed coupon is a **48 × 16 mm** rectangular strip with hole centers at **x = −18, −6, 6, and 18 mm; y = 0**. Label the four holes **3.0, 3.1, 3.2, and 3.3 mm CAD diameter** for a nominal 3 mm pin. These are **test candidates**, not guaranteed printer offsets or selected clearances. Set coupon thickness to the intended cartridge's pivot-bearing wall thickness and record the actual value as `coupon_thickness_mm`; that wall thickness has not yet been chosen. Use the planned joint print orientation. Print at least one coupon in the same material, machine, nozzle, layer height, slicer profile, and orientation planned for the cartridges.

Measure the actual pin and hole diameters, record them and the fit observation in `joint-lab-clearance-coupons.v1.csv`, and try assembly without forcing a damaged specimen. Mark `selected_for_revision=yes` only after physical fit is evaluated and both diameters and the observation are recorded. The selected clearance for a revision is the measured hole diameter minus the measured pin diameter; a negative value denotes interference. No value is selected in this protocol.

## Before the first trial

1. Confirm the body-panel requirement and name its design revision. Freeze the common-mount and cartridge revision IDs. Identify each physical specimen.
2. Choose and record **one material, printer, nozzle diameter, layer height, print orientation, and slicer profile** for the comparison batch. Apply the same values to all three cartridge types where practical. If any setting differs, record it in each affected row and explain why. No printer or material value has been chosen here on Gavin's behalf.
3. Record the actual lever load point, force application method, force gauge or masses, calibration/reference method, and operator. Identify each instrument or mass set in `instrument_id`. Ensure the load path is clear and the base cannot move. Before seeing results, fix the holding-test load set from the body-panel requirement and record it in the dated test plan.
4. For the friction cartridge, set and record a repeatable M3 washer/nut preload before testing. Do not use a vague term such as “tight enough” as the only setting.
5. For the detent, record the actual stop-position revision and verify the ball/spring feature remains visible for inspection. Do not infer spring force from the website animation.

## Trial sequence

The project checkpoints are **initial (0), 100, 250, 500, and optional 1,000 complete cycles**. They are a project procedure, **not an industry standard**. A cycle is one out-and-back movement between the approved end positions for that revision. Log the actual completed checkpoint; missing checkpoints remain absent.

At each reachable target angle and checkpoint, plan three repetitions per holding load and three breakaway repetitions in each applicable moment direction. Use a new trial ID for each load, direction, and repetition. Record any omitted combination and why in the design log; do not backfill an unperformed trial:

1. **Holding:** set the angle, apply a known hanging mass or measured force quasi-statically at the load point, and observe for 10 seconds. Record `measurement_kind=holding`, `holding_result=held` or `slipped`, load method, one load value, applied moment direction, and actual perpendicular arm. A held load is a demonstrated test condition, not a maximum capacity.
2. **Breakaway:** reset to the angle, then increase the load slowly until sustained rotation begins. Record `measurement_kind=breakaway`, leave `holding_result` blank, and record the load at onset, direction, and actual perpendicular arm. Avoid impact loading. Record repeated attempts as separate trials.
3. **Play and repeatability:** if measured, record backlash as free angular travel after load reversal and repeatability as the spread of returned angle at a specified stop. Leave cells empty when not measured; describe the measurement method in notes.
4. **Wear:** inspect after each available checkpoint. Keep notes and, when a photo or other file exists, reference it under `engineering/data/evidence/`. Do not substitute an unsourced caption for the file.
5. **Subjective usability:** write observations about adjustment, handling, and perceived play in the separate usability CSV. These observations are not torque data.

The trial sheet requires a real date, operator, instrument ID, revision, specimen, material, printer, nozzle, layer height, slicer profile, and print orientation for each physical row. Do not populate any production CSV with illustrative numbers. Different preload settings must remain distinguishable when comparing friction trials.

## Calculation and interpretation

Enter **exactly one** of `mass_kg` or `force_N`, the applied moment `force_direction`, and the **perpendicular** arm in millimeters. The validator rejects missing or ambiguous inputs, malformed units, non-finite numbers, and negative loads.

- Hanging mass: `generated_torque_Nmm = mass_kg × 9.80665 × perpendicular_arm_mm`.
- Measured force: `generated_torque_Nmm = force_N × perpendicular_arm_mm`.

Generated torque is a nonnegative magnitude; direction stays in its raw column. The calculation does not model friction, stress, spring force, or durability. The raw CSV never asks the tester to type torque. The command `npm run joint-lab:report` produces a separate CSV with a clearly named generated column; that report is **not automatically published**.

## Data handling and decision

The source CSVs in `engineering/data/` are the working records. Public CSV downloads are **blank v1 templates**, even if unpublished source rows are later added. The build validates the source data and verifies the public templates contain headers only. Publication of actual rows and charts is a later evidence-gated step.

Use the decision-record template to compare strength, breakaway effort, play, repeatability, wear, part count, and fit to a stated body-panel requirement. Cite trial IDs, revision IDs, and evidence files. Preserve adverse results and uncertainty; there is no universal joint score.
