{
  "metadata": {
    "id": "mlx90614esf-aaa-000-tu",
    "name": "MLX90614ESF-AAA-000-TU",
    "type": "sensor",
    "description": "Single-zone IR thermometer in TO-39 can; 5V supply, 90° FOV; SMBus (I2C-compatible) with optional PWM output.",
    "manufacturer": "Melexis",
    "part_number": "MLX90614ESF-AAA-000-TU",
    "datasheet_url": "https://www.melexis.com/-/media/files/documents/datasheets/mlx90614-datasheet-melexis.pdf",
    "tags": [
      "IR-thermometer",
      "non-contact",
      "SMBus",
      "I2C",
      "PWM",
      "TO-39",
      "single-zone",
      "90deg-FOV"
    ],
    "schema_version": "1.4.0",
    "version": "1.1.0",
    "taxonomy": [
      "sensor.thermal"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "vdd_5v",
          "name": "VDD 5V",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            4.5,
            5.5
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Main supply for Axx versions."
        }
      ],
      "resources": [
        {
          "id": "pin1_scl_vz",
          "name": "SCL/Vz",
          "description": "SMBus clock; 5.7V zener present on 5V Axx variants.",
          "functions": [
            {
              "name": "SMBUS_SCL",
              "direction": "sink",
              "signal_class": "clock"
            }
          ],
          "power_domain_id": "vdd_5v",
          "connector_type": "through_hole_pad"
        },
        {
          "id": "pin2_sda_pwm",
          "name": "SDA/PWM",
          "description": "SMBus data (open-drain) or PWM/thermal-relay output.",
          "functions": [
            {
              "name": "SMBUS_SDA",
              "direction": "bidirectional",
              "signal_class": "data"
            },
            {
              "name": "PWM_OUT",
              "direction": "source",
              "signal_class": "pwm"
            }
          ],
          "power_domain_id": "vdd_5v",
          "connector_type": "through_hole_pad",
          "notes": "Use external pull-up for SMBus."
        },
        {
          "id": "pin3_vdd",
          "name": "VDD",
          "description": "5V supply input.",
          "functions": [
            {
              "name": "VDD_IN",
              "direction": "sink",
              "signal_class": "power"
            }
          ],
          "power_domain_id": "vdd_5v",
          "connector_type": "through_hole_pad"
        },
        {
          "id": "pin4_vss",
          "name": "VSS",
          "description": "Ground return.",
          "functions": [
            {
              "name": "GND",
              "direction": "sink",
              "signal_class": "ground"
            }
          ],
          "power_domain_id": "vdd_5v",
          "connector_type": "through_hole_pad"
        }
      ],
      "interfaces": [
        {
          "id": "smbus_slave",
          "name": "SMBus/I2C-compatible",
          "protocol": {
            "type": "i2c",
            "role": "slave"
          },
          "requires": [
            {
              "function": "SMBUS_SCL",
              "count": 1
            },
            {
              "function": "SMBUS_SDA",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "max_lane_rate_mbps": 0.1,
            "requires_matching_voltage_domain": true,
            "addressing": {
              "type": "7bit",
              "addresses": [
                "0x5A"
              ]
            }
          },
          "description": "SMBus 10–100 kHz. Default 7-bit address 0x5A; address LSB configurable via EEPROM."
        },
        {
          "id": "pwm_output",
          "name": "PWM / Thermal relay",
          "protocol": {
            "type": "pwm",
            "role": "output"
          },
          "requires": [
            {
              "function": "PWM_OUT",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "description": "10-bit PWM temperature output or thermal-relay function when enabled."
        },
        {
          "id": "vdd_power_in",
          "name": "VDD Power",
          "protocol": {
            "type": "power",
            "role": "input"
          },
          "requires": [
            {
              "function": "VDD_IN",
              "count": 1
            },
            {
              "function": "GND",
              "count": 1
            }
          ],
          "description": "4.5–5.5 V supply with local decoupling."
        }
      ],
      "supply_voltage_V": [
        4.5,
        5.5
      ],
      "power_consumption_mW": 6.5,
      "pin_count": 4,
      "metadata": {
        "package_type": "TO-39 (4-lead)",
        "logic_levels": {
          "vih_min": "3.0V (Axx, SMBus inputs)",
          "vol_max": "0.2V @2mA"
        }
      }
    },
    {
      "domain": "mechanical",
      "resources": [
        {
          "id": "to39_can",
          "name": "TO-39 can",
          "description": "Through-hole metal can with IR window",
          "functions": [
            {
              "name": "MECHANICAL_MOUNT",
              "direction": "bidirectional",
              "signal_class": "mechanical_drive"
            }
          ],
          "connector_type": "through_hole"
        }
      ],
      "interfaces": [
        {
          "id": "tht_mount",
          "name": "Through-hole mounting",
          "protocol": {
            "type": "mechanical_connection",
            "role": "mounting_point"
          },
          "requires": [
            {
              "function": "MECHANICAL_MOUNT",
              "count": 1
            }
          ],
          "max_instances": 1,
          "description": "Solder TO-39 leads to PCB lands; keep optical path unobstructed."
        }
      ],
      "package_type": "TO-39",
      "dimensions_mm": {
        "length": 9.12,
        "width": 9.12,
        "height": 5.6
      },
      "metadata": {
        "field_of_view_deg": 90,
        "mounting_method": "through_hole",
        "optical_band_um": "5.5–14"
      }
    },
    {
      "domain": "thermal",
      "resources": [],
      "interfaces": [],
      "operating_temperature_C": [
        -40,
        85
      ],
      "metadata": {
        "requires_thermal_management": false
      }
    }
  ],
  "design_rules": [
    "SMBus speed 10–100 kHz; not Fast-mode 400 kHz.",
    "Default SMBus address 0x5A; address LSB configurable at EEPROM 0x0E.",
    "Use external pull-ups on SDA and SCL; disable SCL pull-up and hold SCL low in sleep to minimize leakage.",
    "Do not electrically connect the metal can except via VSS pin.",
    "Object temperature measurement range -70°C to +380°C; accuracy ±0.5°C near room temperature (standard)."
  ],
  "usage_notes": "Calibrated for emissivity=1. Adjust emissivity via EEPROM 0x04 for targets with 0.1–1.0 emissivity. Provide local decoupling at VDD. For Axx versions, SCL pin integrates a zener; observe SMBus rise behavior.",
  "application_examples": [
    "Melexis MLX90614: single-zone IR thermometer use over SMBus.",
    "Thermal relay mode for threshold-based alert on PWM/SDA pin."
  ],
  "compatibility_notes": "SMBus protocol and timing; works with I2C masters at 100 kHz. Multiple devices require unique addresses; only LSB is user-programmable.",
  "warnings": [
    "ESD sensitive: ±2 kV HBM.",
    "Absolute max VDD (Axx) 7 V for <24 h; normal operation 4.5–5.5 V."
  ]
}