{
  "metadata": {
    "id": "arducam-imx708-camera-v3",
    "name": "Arducam Camera Module 3 (IMX708, 75° Autofocus)",
    "type": "sensor",
    "description": "12MP IMX708 autofocus camera module for Raspberry Pi with 75° DFOV, PDAF, HDR, 2-lane MIPI CSI-2 interface on 22-pin FPC connector. Compatible with Raspberry Pi 5/4B/3B and Pi Zero 2W.",
    "manufacturer": "Arducam",
    "part_number": "B0306",
    "datasheet_url": "https://docs.arducam.com/Raspberry-Pi-Camera/Native-camera/12MP-IMX708/",
    "tags": [
      "camera",
      "imx708",
      "csi",
      "mipi",
      "autofocus",
      "pdaf",
      "hdr",
      "raspberry-pi",
      "opencv",
      "libcamera",
      "12mp",
      "vision"
    ],
    "schema_version": "1.4.0",
    "version": "1.0.0-rc.0",
    "taxonomy": [
      "sensor.camera"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "vcc_3v3",
          "name": "3.3V Supply (from host via FPC)",
          "nominal_voltage_V": 3.3,
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Power supplied by host board through pin 22 of the 22-pin FPC connector"
        }
      ],
      "resources": [
        {
          "id": "csi_d0_n",
          "name": "CAM_D0_N",
          "description": "MIPI CSI-2 data lane 0 negative (pin 2)",
          "functions": [
            {
              "name": "csi_data",
              "direction": "source",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "csi_d0_p",
          "name": "CAM_D0_P",
          "description": "MIPI CSI-2 data lane 0 positive (pin 3)",
          "functions": [
            {
              "name": "csi_data",
              "direction": "source",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "csi_d1_n",
          "name": "CAM_D1_N",
          "description": "MIPI CSI-2 data lane 1 negative (pin 5)",
          "functions": [
            {
              "name": "csi_data",
              "direction": "source",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "csi_d1_p",
          "name": "CAM_D1_P",
          "description": "MIPI CSI-2 data lane 1 positive (pin 6)",
          "functions": [
            {
              "name": "csi_data",
              "direction": "source",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "csi_ck_n",
          "name": "CAM_CK_N",
          "description": "MIPI CSI-2 clock lane negative (pin 8)",
          "functions": [
            {
              "name": "csi_clock",
              "direction": "source",
              "signal_class": "clock"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "csi_ck_p",
          "name": "CAM_CK_P",
          "description": "MIPI CSI-2 clock lane positive (pin 9)",
          "functions": [
            {
              "name": "csi_clock",
              "direction": "source",
              "signal_class": "clock"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "power_en",
          "name": "POWER-EN",
          "description": "Camera power enable input (pin 17)",
          "functions": [
            {
              "name": "digital_io",
              "direction": "sink",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "led_en",
          "name": "LED-EN",
          "description": "LED indicator / auxiliary clock output (pin 18)",
          "functions": [
            {
              "name": "digital_io",
              "direction": "sink",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "scl",
          "name": "SCL",
          "description": "I2C clock for camera control registers (pin 20)",
          "functions": [
            {
              "name": "i2c_scl",
              "signal_class": "clock"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "sda",
          "name": "SDA",
          "description": "I2C data for camera control registers (pin 21)",
          "functions": [
            {
              "name": "i2c_sda",
              "signal_class": "data"
            }
          ],
          "connector_type": "fpc"
        },
        {
          "id": "vcc",
          "name": "VCC",
          "description": "3.3V power input (pin 22)",
          "functions": [
            {
              "name": "power_input",
              "signal_class": "power"
            }
          ],
          "connector_type": "fpc",
          "power_domain_id": "vcc_3v3"
        },
        {
          "id": "gnd_1",
          "name": "GND (pin 1)",
          "description": "Ground (pin 1)",
          "functions": [
            {
              "name": "ground",
              "signal_class": "ground"
            }
          ],
          "connector_type": "fpc",
          "power_domain_id": "vcc_3v3"
        }
      ],
      "interfaces": [
        {
          "id": "csi2_video",
          "name": "MIPI CSI-2 Video Output",
          "description": "2-lane MIPI CSI-2 video stream. 4608x2592 stills, 2304x1296@56fps, 1536x864@120fps. RAW10 output.",
          "protocol": {
            "type": "camera",
            "role": "transmitter"
          },
          "requires": [
            {
              "function": "csi_data",
              "count": 4,
              "shareable_with": [
                "csi_clock"
              ]
            },
            {
              "function": "csi_clock",
              "count": 2,
              "shareable_with": [
                "csi_data"
              ]
            }
          ],
          "timing": {
            "max_data_rate_mbps": 1500
          }
        },
        {
          "id": "i2c_control",
          "name": "I2C Camera Control",
          "description": "I2C slave for sensor register configuration (IMX708 + VCM autofocus)",
          "protocol": {
            "type": "i2c",
            "role": "slave"
          },
          "requires": [
            {
              "function": "i2c_sda",
              "count": 1,
              "shareable_with": [
                "i2c_scl"
              ]
            },
            {
              "function": "i2c_scl",
              "count": 1,
              "shareable_with": [
                "i2c_sda"
              ]
            }
          ]
        },
        {
          "id": "power_supply",
          "name": "3.3V Power Input",
          "description": "3.3V power supplied via FPC connector from host board",
          "protocol": {
            "type": "power",
            "role": "sink"
          },
          "requires": [
            {
              "function": "power_input",
              "count": 1
            },
            {
              "function": "ground",
              "count": 1
            }
          ]
        }
      ],
      "supply_voltage_V": [
        3.3,
        3.3
      ],
      "metadata": {
        "sensor": "Sony IMX708",
        "sensor_diagonal_mm": 7.4,
        "pixel_size_um": 1.4,
        "max_resolution": "4608x2592",
        "max_resolution_mp": 11.9,
        "hdr_resolution": "1536x864",
        "autofocus_type": "PDAF",
        "autofocus_range_cm": [
          10,
          "infinity"
        ],
        "csi_lanes": 2,
        "csi_lanes_max": 4,
        "output_format": "RAW10",
        "video_modes": [
          {
            "resolution": "2304x1296",
            "fps": 56
          },
          {
            "resolution": "2304x1296",
            "fps": 30
          },
          {
            "resolution": "1536x864",
            "fps": 120
          }
        ],
        "ir_cut_filter": true,
        "shutter_type": "rolling",
        "fpc_pin_count": 22,
        "fpc_pitch_mm": 0.5
      }
    },
    {
      "domain": "mechanical",
      "package_type": "PCB Module",
      "dimensions_mm": {
        "length": 25,
        "width": 24
      },
      "mounting": {
        "type": "screw",
        "hole_pattern": "Raspberry Pi Camera standard 4-hole pattern"
      },
      "resources": [],
      "interfaces": [
        {
          "id": "fpc_connector",
          "name": "22-pin FPC Connector",
          "description": "0.5mm pitch 22-position bottom-contact FPC connector. Includes 15-to-22 pin adapter cable for older Pi boards.",
          "protocol": {
            "type": "clip_connection",
            "role": "receptacle"
          },
          "requires": []
        }
      ]
    }
  ],
  "design_rules": [
    "Connect via 22-pin FPC cable to Raspberry Pi 5 or Pi Zero 2W CSI port. For Pi 4B/3B, use the included 15-to-22 pin adapter cable.",
    "This is an Arducam-branded module, not the official Raspberry Pi Camera V3. Requires configuration changes: run 'sudo nano /boot/firmware/config.txt' and add 'dtoverlay=imx708' under the appropriate section.",
    "Use libcamera or Picamera2 for capture. For OpenCV integration, capture frames via Picamera2 and convert to NumPy arrays.",
    "Power is supplied through the FPC connector from the host board. No external power connection needed.",
    "2-lane CSI-2 by default. 4-lane operation requires a compatible host (Compute Module)."
  ],
  "validation_requirements": [
    "Verify camera is detected: 'libcamera-hello --list-cameras'",
    "Confirm autofocus engages by capturing a test image at varying distances",
    "Check dtoverlay is correctly set in /boot/firmware/config.txt for Arducam variant"
  ],
  "usage_notes": "12MP autofocus camera for Raspberry Pi. Supports still capture at 4608x2592, video at 2304x1296@56fps or 1536x864@120fps with HDR. Phase-detection autofocus (PDAF) with 10cm to infinity range. Compatible with libcamera, Picamera2, and OpenCV via Picamera2 bridge. Includes IR-cut filter for daylight imaging.",
  "application_examples": [
    "Machine vision and image recognition with OpenCV",
    "Object detection and tracking",
    "Barcode and QR code scanning",
    "Time-lapse photography",
    "Video streaming and surveillance"
  ],
  "compatibility_notes": "Compatible with Raspberry Pi 5, Pi 4B, Pi 3B/3B+, Pi Zero 2W, and Compute Modules (CM3/CM4). Requires Raspberry Pi OS Bookworm or later. Not compatible with original Pi Zero (no CSI port). Use Picamera2 library for OpenCV integration — direct V4L2 capture also supported.",
  "warnings": [
    "This is NOT the official Raspberry Pi Camera V3. It uses the same IMX708 sensor but is manufactured by Arducam. Requires dtoverlay configuration.",
    "Do not connect or disconnect the FPC cable while the Pi is powered on.",
    "The lens is autofocus with a mechanical actuator — avoid excessive vibration in the mounting.",
    "75° DFOV variant. If wider FOV is needed, consider the Arducam B0307 (102° wide-angle) or B0310 (152° M12 lens)."
  ]
}