{
  "schemaVersion": "arcarix.studio.v1",
  "status": "ILLUSTRATIVE_UNVERIFIED",
  "notice": "Unverified example from a rule-based demo. Not live AI generation, simulation, quotation or test evidence.",
  "locale": "en",
  "project": "Room climate monitor",
  "requirements": {
    "power": "usb",
    "link": "wifi",
    "intervalSeconds": 30,
    "environment": "indoor",
    "quantity": 100
  },
  "idea": {
    "sentence": "We’re developing an indoor temperature and humidity sensor for businesses with multiple locations. Staff need to check each site from a phone.",
    "readBy": "keyword rules (demo); Claude planned",
    "requirementSources": {
      "power": "default",
      "link": "text",
      "interval": "default",
      "env": "text",
      "quantity": "default"
    }
  },
  "chip": {
    "selected": "ESP32-C3-MINI-1",
    "recommended": "ESP32-C3-MINI-1",
    "finalists": [
      "ESP32-C3-MINI-1",
      "ESP32-C6-MINI-1",
      "ESP32-S3-WROOM-1"
    ]
  },
  "checks": [
    {
      "level": "pass",
      "text": "The chip supports the Wi-Fi requirement."
    },
    {
      "level": "pass",
      "text": "All parts share 3.3 V logic."
    },
    {
      "level": "pass",
      "text": "No I²C address conflict (SHT31 at 0x44)."
    },
    {
      "level": "pass",
      "text": "Needs 6 GPIO · about 15 available."
    },
    {
      "level": "pass",
      "text": "USB 5 V → 3.3 V 600 mA LDO leaves headroom for radio peaks."
    },
    {
      "level": "warn",
      "text": "Radio products need certification (e.g. KC, FCC) before sale; priced separately."
    }
  ],
  "pcb": {
    "widthMm": 50,
    "heightMm": 34,
    "layers": 2,
    "smtPlacements": 18,
    "conceptLayoutOnly": true
  },
  "enclosure": {
    "process": "fdm",
    "outerMm": {
      "w": 57,
      "d": 41,
      "h": 14.8
    },
    "wallMm": 2,
    "shellVolumeCm3": 13.5,
    "features": {
      "usbCutout": true,
      "vents": true,
      "probeEntry": false,
      "gasket": false,
      "batteryBay": false
    },
    "conceptOnly": true,
    "ipRating": null
  },
  "bom": [
    {
      "ref": "U1",
      "part": "ESP32-C3-MINI-1",
      "spec": "RISC-V · 160 MHz · radio module",
      "qty": 1,
      "illustrativeUnitUSD": 2.4
    },
    {
      "ref": "U2",
      "part": "SHT31-DIS",
      "spec": "I²C temperature/RH sensor · address 0x44",
      "qty": 1,
      "illustrativeUnitUSD": 2.9
    },
    {
      "ref": "R1–R2",
      "part": "10 kΩ 0402",
      "spec": "I²C pull-ups",
      "qty": 2,
      "illustrativeUnitUSD": 0.01
    },
    {
      "ref": "J1",
      "part": "USB-C 16P",
      "spec": "5 V input receptacle",
      "qty": 1,
      "illustrativeUnitUSD": 0.35
    },
    {
      "ref": "U3",
      "part": "LDO 3.3 V 600 mA",
      "spec": "SOT-23-5 regulator",
      "qty": 1,
      "illustrativeUnitUSD": 0.18
    },
    {
      "ref": "D1",
      "part": "USB ESD array",
      "spec": "ESD protection",
      "qty": 1,
      "illustrativeUnitUSD": 0.12
    },
    {
      "ref": "R3–R4",
      "part": "5.1 kΩ 0402",
      "spec": "USB-C CC resistors",
      "qty": 2,
      "illustrativeUnitUSD": 0.01
    },
    {
      "ref": "D2",
      "part": "LED 0603",
      "spec": "Status indicator",
      "qty": 1,
      "illustrativeUnitUSD": 0.03
    },
    {
      "ref": "SW1–SW2",
      "part": "Tact switch 3×4",
      "spec": "Reset · boot",
      "qty": 2,
      "illustrativeUnitUSD": 0.1
    },
    {
      "ref": "C1–C6",
      "part": "100 nF / 10 µF",
      "spec": "Decoupling and bulk capacitors",
      "qty": 6,
      "illustrativeUnitUSD": 0.015
    },
    {
      "ref": "H1–H4",
      "part": "M2 × 6 screw",
      "spec": "PCB and lid fastening",
      "qty": 4,
      "illustrativeUnitUSD": 0.04
    }
  ],
  "costModel": {
    "currency": "USD",
    "quantity": 100,
    "assumptions": {
      "laborRateUSDPerHour": 24,
      "targetMargin": 0.4,
      "contingency": 0.08,
      "krwPerUsd": 1400
    },
    "perUnit": {
      "parts": 5.05,
      "pcb": 0.6,
      "pcba": 0.92,
      "enclosure": 6.32,
      "assembly": 1.8,
      "test": 0.48,
      "packaging": 1.2
    },
    "contingency": 1.31,
    "oneTime": {
      "pcb-setup": 30,
      "smt-setup": 90,
      "jig": 350
    },
    "unitCost": 22.37,
    "suggestedPrice": 37.29,
    "priceBasis": "unit manufacturing cost / (1 - target margin); not a market price recommendation",
    "batchCost": 2237.48,
    "excludes": [
      "electronics engineering",
      "firmware development",
      "mechanical engineering",
      "certification",
      "shipping",
      "duties",
      "app/cloud development",
      "marketing"
    ],
    "isQuotation": false
  },
  "production": {
    "tier": "Pilot run",
    "minutesPerUnit": 7.7,
    "unitsPerOperatorDay": 52
  },
  "firmwareSkeleton": "// Arcarix Studio — FIRMWARE SKELETON (not compiled, not tested)\n// Target  : ESP32-C3-MINI-1\n// Sensor  : SHT31 (I2C 0x44)\n// Link    : Wi-Fi · Power: USB 5 V · Interval: 30 s\n// Pin map : example assignment — confirm strapping pins in the datasheet\n\n#define PIN_SDA       /* GPIO4 */\n#define PIN_SCL       /* GPIO5 */\n#define PIN_LED       /* GPIO3 */\n#define INTERVAL_S 30\n#define MAX_RETRIES 3\n\nvoid setup() {\n  status_led_begin(PIN_LED);\n  sht31_begin(PIN_SDA, PIN_SCL, 0x44);\n  wifi_connect(WIFI_SSID, WIFI_PASS);   // from provisioning, never hard-coded\n}\n\nvoid loop() {\n  Reading r = sht31_read();\n  for (int i = 0; i < MAX_RETRIES && !r.ok; i++) {\n    delay_ms(200 << i);                   // bounded back-off\n    r = sht31_read();\n  }\n  if (!r.ok) { record_fault(SENSOR_TIMEOUT); }\n  else {\n    publish_https(\"/v1/readings\", r);\n  }\n  wait_seconds(INTERVAL_S);\n}\n",
  "note": "",
  "physicallyTested": false,
  "supplierSubmission": false,
  "contact": "hello@arcarix.com"
}