benikigai/ec-1Public

EC-1 Wireless Controller

BUILDCARD.md · 4.5 KB · commit #1 · Nov 1, 2026

SHA-256 b9fb400d5eda1357faed38bf8c291cd001f365efe39493a3df7be31c59fba5ef


opd_version: 0.4.0 product: EC-1 Wireless Controller category: [game-controller, consumer-electronics, battery-powered, wireless] maker: Example Devices (fictional) maker_endorsed: false synthetic: true revision_examined: EC-1 rev B, SKU EC1-BLK (fictional) units_examined: 30 methods: [ct, teardown, caliper, cmm, xrf] license: CC-BY-4.0 base_opd: null base_relation: null trust_level: draft layers: [parts, electronics, bom, process, line, risk, sim, compliance, issues, variants] metrics: observed_share: 0.367 bom_coverage_by_cost: 0.966 station_evidence_share: 0.455 card_completeness: 1.0 rebuild_check: true

EC-1 Wireless Controller

Synthetic example. EC-1 and Example Devices don't exist. Every number in this OPD is made up to show what an OPD holds and how the pieces connect. Use it to learn the format, build tools against it, or test an agent. Don't use it to make decisions about a real product.

Summary

A compact two-handed Bluetooth controller: one analog stick, four face buttons, two shoulder buttons, a 6-axis IMU, a 10 mm haptic motor and a 600 mAh cell, charged over USB-C. 120 x 56 x 22 mm, 69 g.

This OPD covers the product and the line that builds it, from parts to the packed box. It describes:

  • 23 parts and 4 assemblies
  • 16 operations on an 11-station U-shaped cell
  • 6 inspection plans and 11 tests
  • 12 PFMEA rows and 4 issues with their fixes
  • a study of 5 line and design variants scored against the baseline

Trust level: draft. Inferred from 30 units "from the box", not yet corrected by the maker.

Intended uses

  • Learn how a controller like this is built, and why each station exists.
  • Simulate the line: the feature spreads feed Monte Carlo, the USD scene feeds MuJoCo.
  • Quote it: a CM can price it from the BOM, the routing and line/capex.csv.
  • Design your own: fork it, change what you'd change, and score your variant on the same scorecard.

Out of scope: counterfeits, and firmware, which an OPD never includes. Not endorsed by the maker.

Metrics

Metric Value Badge
Observed share (claims measured or observed) 36.7% (97 of 264) self-reported
BOM coverage by cost 96.6% self-reported
Station evidence share 45.5% (5 of 11) self-reported
Card completeness 100% self-reported
Rebuild check passed self-reported
Reproduction agreement not yet self-reported

Simulated line, baseline: rolled throughput yield 92.2% (Monte Carlo, 20,000 draws). Cycle time 30 s against a 36 s takt, estimated. Bottleneck: flash and RF test (sta:t1). Conversion cost 1.92 USD per good unit. Materials 10.20 USD, landed 12.97 USD.

Known gaps

  • We see the spread across 30 units, not the factory's scrap. Yields are simulated from those spreads and the PFMEA, not measured on a line.
  • Cycle times are time-study estimates. Line balance needs a discrete-event simulator the engine doesn't have yet.
  • Passive values on the PCBA aren't identified, only counted (about 120 from CT).
  • Should-cost is inferred, with low to medium confidence.

Layers and files

Layer Files
Everything, machine-readable opd.yaml
Parts parts/*.step (CAD), parts/*.glb (web), parts/materials.yaml, parts/tolerances.yaml, parts/stackups/
3D model/ec-1.glb, model/ec-1-exploded.glb, sim/scene.usda
Electronics electronics/board.yaml, ics.csv, interfaces.yaml
BOM and cost bom/bom.csv, sourcing.csv, cost.csv
Process process/flow.yaml, routing.csv
Line line/layout.usda, line/layout.glb, line/sops/, sampling.yaml, test-plan.yaml, control-plan.csv, capex.csv
Risk risk/pfmea.csv
Simulation inputs sim/mc-inputs.yaml
Compliance compliance/marks.yaml
Lessons issues/*.yaml
Variants variants/study.yaml
Raw data raw/ (measurements, end-of-line sample, XRF, markings, teardown log, CT scan log)
Analysis analysis/spreads.py rebuilds every derived number from raw/
Pre-registration prereg/predictions.yaml and its hash

How to reproduce

Buy units, tear down, measure, then run python analysis/spreads.py. The full method is in REPRODUCE.md.

Cite, changes and contacts

Cite as: EC-1 Wireless Controller, OPD 0.4.0, synthetic example, Open Product, 2026. Changes: CHANGELOG.md. Corrections, disputes and takedowns: open an issue on this OPD, or email security@openproduct.co for anything sensitive.