{
  "opd": "benikigai/ec-1",
  "commit": 1,
  "opd_version": "0.4.0",
  "layer": "assembly",
  "question": "How does it go together, and in what order?",
  "data": {
    "assemblies": [
      {
        "id": "asm:top-sub",
        "name": "Top shell with buttons and dome sheet"
      },
      {
        "id": "asm:core",
        "name": "Bottom shell with PCBA, stick, battery and haptic"
      },
      {
        "id": "asm:ec-1",
        "name": "EC-1, closed unit"
      },
      {
        "id": "asm:packed",
        "name": "Packed unit"
      }
    ],
    "operations": [
      {
        "id": "op:buttons-in",
        "name": "Seat light pipe, face buttons and shoulder buttons in top shell",
        "type": "place",
        "inputs": [
          "part:top-shell",
          "part:light-pipe",
          "part:button-cap",
          "part:shoulder-button"
        ],
        "output": "asm:top-sub",
        "station": "sta:a1",
        "method": {
          "value": "by hand, shell face-down in nest",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "top-shell nest",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 14,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:dome-place",
        "name": "Place dome sheet over the buttons",
        "type": "place",
        "inputs": [
          "asm:top-sub",
          "part:dome-sheet"
        ],
        "output": "asm:top-sub",
        "station": "sta:a1",
        "method": {
          "value": "by hand onto two locating pins",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "dome locator pins",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:stick-solder",
        "name": "Hand-solder stick module to the PCBA (6 pins)",
        "type": "solder",
        "inputs": [
          "part:main-pcba",
          "part:stick-module"
        ],
        "output": "asm:core",
        "station": "sta:a2",
        "method": {
          "value": "hand solder, no-clean flux core wire",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "PCBA nest with stick square",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 22,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:pcba-place",
        "name": "Snap PCBA into bottom shell",
        "type": "snap-fit",
        "inputs": [
          "part:bottom-shell",
          "asm:core"
        ],
        "output": "asm:core",
        "station": "sta:a2",
        "method": {
          "value": "two snaps, then press at four bosses",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:battery-adhere",
        "name": "Stick battery into pocket with PSA",
        "type": "adhesive",
        "inputs": [
          "asm:core",
          "part:battery"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "peel liner, place, press 20 N for 3 s",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "battery press",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 10,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:haptic-place",
        "name": "Place LRA and mate its connector",
        "type": "connector-mate",
        "inputs": [
          "asm:core",
          "part:haptic-lra"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "by hand into rib pocket",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 8,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:battery-mate",
        "name": "Mate battery connector",
        "type": "connector-mate",
        "inputs": [
          "asm:core"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "by hand, listen for click",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 5,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:close",
        "name": "Close top sub-assembly onto the core",
        "type": "snap-fit",
        "inputs": [
          "asm:core",
          "asm:top-sub"
        ],
        "output": "asm:ec-1",
        "station": "sta:a4",
        "method": {
          "value": "align at USB-C end, rotate closed",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "closing fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 8,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:screw",
        "name": "Drive four M2 screws to 0.18 N·m",
        "type": "screw",
        "inputs": [
          "asm:ec-1",
          "part:screw-m2x6"
        ],
        "output": "asm:ec-1",
        "station": "sta:a4",
        "method": {
          "value": "torque driver, cross pattern",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "closing fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 16,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:flash",
        "name": "Flash the test image, then RF test",
        "type": "flash",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t1",
        "method": {
          "value": "USB-C pogo, then radiated test in shield box",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "USB-C pogo fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 30,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:stick-cal",
        "name": "Stick centre and range calibration",
        "type": "ext:controller:stick-calibrate",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t2",
        "method": {
          "value": "robot sweeps the stick to 8 points and centre",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "stick robot nest",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 15,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:functional",
        "name": "Buttons, IMU, haptics and LED",
        "type": "test",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t2",
        "method": {
          "value": "press head, 90 degree turntable step, LRA current",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 12,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:cosmetic",
        "name": "Cosmetic and gap check",
        "type": "inspect",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t3",
        "method": {
          "value": "camera arch plus feeler gauge at shoulder buttons",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 12,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:charge",
        "name": "Charge current and battery check",
        "type": "test",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t4",
        "method": {
          "value": "5 V in, measure charge current and cell voltage",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "8-up rack",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 20,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:label",
        "name": "Apply rating label",
        "type": "label",
        "inputs": [
          "asm:ec-1",
          "part:rating-label"
        ],
        "output": "asm:ec-1",
        "station": "sta:p1",
        "method": {
          "value": "print and apply, scan serial",
          "source": "observed",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:pack",
        "name": "Pack with tray and cable",
        "type": "pack",
        "inputs": [
          "asm:ec-1",
          "part:retail-box",
          "part:pack-tray",
          "part:usb-cable"
        ],
        "output": "asm:packed",
        "station": "sta:p1",
        "method": {
          "value": "tray, unit, cable, close, weigh",
          "source": "observed",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 14,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      }
    ]
  }
}