{
  "opd": "benikigai/ec-1",
  "commit": 1,
  "opd_version": "0.4.0",
  "layer": "line",
  "question": "Which stations, how fast, and where's the bottleneck?",
  "data": {
    "stations": [
      {
        "id": "sta:iqc-1",
        "name": "Incoming inspection",
        "type": "iqc",
        "equipment": [
          {
            "value": "caliper and pin gauges",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "light booth",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "battery OCV meter",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/IQC1",
        "isa95_work_center": "EC1-Cell/IQC1",
        "data_interface": "none"
      },
      {
        "id": "sta:a1",
        "name": "Top-shell sub-assembly",
        "type": "assembly",
        "equipment": [
          {
            "value": "nest fixture for the top shell",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "dome sheet locator",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A1",
        "isa95_work_center": "EC1-Cell/A1",
        "data_interface": "none"
      },
      {
        "id": "sta:a2",
        "name": "Stick and PCBA to bottom shell",
        "type": "assembly",
        "equipment": [
          {
            "value": "temperature-controlled soldering iron, 350 C",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "fume extractor",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "PCBA nest",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A2",
        "isa95_work_center": "EC1-Cell/A2",
        "data_interface": "none"
      },
      {
        "id": "sta:a3",
        "name": "Battery and haptic",
        "type": "assembly",
        "equipment": [
          {
            "value": "PSA liner peeler",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "battery press, 20 N",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A3",
        "isa95_work_center": "EC1-Cell/A3",
        "data_interface": "none"
      },
      {
        "id": "sta:a4",
        "name": "Close and screw",
        "type": "assembly",
        "equipment": [
          {
            "value": "closing fixture",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "electric torque driver, 0.18 N·m, with count check",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A4",
        "isa95_work_center": "EC1-Cell/A4",
        "data_interface": "none",
        "device_references": [
          {
            "device": {
              "value": "electric torque driver with count check",
              "source": "observed",
              "confidence": "medium",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "final torque",
                "unit": "N·m"
              },
              {
                "name": "angle",
                "unit": "deg"
              }
            ],
            "adjustable": [
              {
                "name": "target torque",
                "unit": "N·m",
                "min": 0.1,
                "max": 0.3
              }
            ],
            "safety_limits": [
              {
                "name": "max torque",
                "limit": 0.3,
                "unit": "N·m"
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t1",
        "name": "Flash test image and RF test",
        "type": "test",
        "equipment": [
          {
            "value": "RF shield box",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "BLE tester",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "USB-C pogo fixture",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T1",
        "isa95_work_center": "EC1-Cell/T1",
        "data_interface": "ipc-cfx",
        "device_references": [
          {
            "device": {
              "value": "BLE tester in RF shield box",
              "source": "inferred",
              "confidence": "medium"
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "TX power",
                "unit": "dBm"
              },
              {
                "name": "RSSI",
                "unit": "dBm"
              }
            ],
            "adjustable": [
              {
                "name": "channel",
                "min": 0,
                "max": 39
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t2",
        "name": "Functional test and stick calibration",
        "type": "test",
        "equipment": [
          {
            "value": "stick actuation robot",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "button press head",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "IMU turntable",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T2",
        "isa95_work_center": "EC1-Cell/T2",
        "data_interface": "ipc-cfx",
        "device_references": [
          {
            "device": {
              "value": "stick actuation robot",
              "source": "inferred",
              "confidence": "medium"
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "stick position",
                "unit": "% of full scale"
              }
            ],
            "adjustable": [
              {
                "name": "deflection angle",
                "unit": "deg",
                "min": 0,
                "max": 28
              }
            ],
            "safety_limits": [
              {
                "name": "max push force",
                "limit": 8,
                "unit": "N"
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t3",
        "name": "Cosmetic and gap check",
        "type": "fqc",
        "equipment": [
          {
            "value": "camera arch, 4 cameras",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "feeler gauges 0.10 / 0.30 mm",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T3",
        "isa95_work_center": "EC1-Cell/T3",
        "data_interface": "ipc-cfx"
      },
      {
        "id": "sta:t4",
        "name": "Charge and battery test",
        "type": "test",
        "equipment": [
          {
            "value": "programmable USB-C load",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "8-up charge rack",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T4",
        "isa95_work_center": "EC1-Cell/T4",
        "data_interface": "ipc-cfx"
      },
      {
        "id": "sta:p1",
        "name": "Label and pack",
        "type": "pack",
        "equipment": [
          {
            "value": "label printer and applicator",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "pack bench, scale",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 2,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/P1",
        "isa95_work_center": "EC1-Cell/P1",
        "data_interface": "none"
      },
      {
        "id": "sta:oqc-1",
        "name": "Outgoing audit",
        "type": "oqc",
        "equipment": [
          {
            "value": "full functional test set",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "drop tester (sampled)",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/OQC1",
        "isa95_work_center": "EC1-Cell/OQC1",
        "data_interface": "none"
      }
    ],
    "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"
        }
      }
    ]
  }
}