{
  "warnings": [
    "NRND (Not Recommended for New Designs) per Espressif datasheet v5.2. Use only in legacy designs or those with strong supply-chain reasons; new designs should consider ESP32-D0WD-V3 or newer ESP32-S/C series.",
    "ADC2 channels are unusable while Wi-Fi is active. Plan analog inputs on ADC1 channels (SENSOR_VP/VN/CAPP/CAPN, VDET_1/2, 32K_XP/XN) if simultaneous use is required.",
    "GPIO34-39 are input-only with no internal pull resistors. Always provide external pulls.",
    "GPIO6-11 (SD_DATA_0..3, SD_CMD, SD_CLK) are reserved for SPI flash on most designs. Driving these as general I/O typically requires moving flash to another mapping and will conflict with default ROM boot.",
    "Bluetooth Touch Sensor capacitive inputs (TOUCH0-T9) have not passed Conducted Susceptibility (CS) certification; limited use in harsh EMI environments."
  ],
  "artifacts": [
    {
      "url": "https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf",
      "type": "datasheet",
      "name": "ESP32 Series Datasheet v5.2",
      "id": "art_datasheet"
    },
    {
      "name": "ESP32 Technical Reference Manual",
      "id": "art_technical_reference",
      "type": "datasheet",
      "url": "https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf"
    },
    {
      "name": "Espressif ESP32 Product Page",
      "id": "art_product_page",
      "type": "link",
      "url": "https://www.espressif.com/en/products/socs/esp32"
    },
    {
      "name": "SnapEDA Symbol & Footprint",
      "id": "art_snapeda",
      "url": "https://www.snapeda.com/parts/ESP32-D0WDQ6/Espressif%20Systems/view-part/?ref=digikey",
      "type": "link"
    },
    {
      "name": "Ultra Librarian CAD Models",
      "id": "art_ultralibrarian",
      "type": "link",
      "url": "https://app.ultralibrarian.com/details/A7AAB95B-922A-11EA-B5D0-0AEBB021A1EA/Espressif-Systems/ESP32-D0WDQ6?ref=digikey"
    },
    {
      "mimeType": "image/png",
      "size": 707943,
      "name": "ESP32-D0WDQ6 product photo (Grid Connect)",
      "id": "art_chip_image",
      "type": "image",
      "storagePath": "protoparts/esp32-d0wdq6/artifacts/art_chip_image.png",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-d0wdq6/artifacts/art_chip_image.png"
    },
    {
      "name": "Espressif ESP32-D0WDQ6 thumbnail",
      "id": "art_thumbnail",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-d0wdq6/thumbnail.png",
      "type": "image"
    }
  ],
  "domains": [
    {
      "power_consumption_mW": 792,
      "metadata": {
        "supports_hot_plug": false,
        "max_operating_freq_Hz": 240000000,
        "package_type": "QFN-48",
        "supports_usb": false,
        "supports_poe": false
      },
      "domain": "electrical",
      "resources": [
        {
          "has_internal_pulldown": false,
          "description": "Analog Power Supply (2.3V~3.6V)",
          "name": "Pin 1",
          "power_domain_id": "vdda_analog",
          "notes": "Analog supply pin. Place a 100 nF ceramic decoupling capacitor at the pin; pair the whole VDDA group with one bulk 10 uF capacitor. Brown-out monitor trips at ~2.43 V on this rail.",
          "id": "vdda_1",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 500
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "VDDA pin for the analog/RF block. 2.3-3.6 V rail; one of five analog supply pins (1, 3, 4, 43, 46) which must share a common decoupled 3.3 V net.",
              "signal_class": "power",
              "direction": "sink",
              "shareable_with": [],
              "name": "Analog Power Supply"
            }
          ]
        },
        {
          "notes": "RF I/O pin. Reference Espressif Hardware Design Guidelines for PI matching topology and 50-ohm controlled-impedance routing. Do not pull, decouple, or drive with logic levels.",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "50-ohm RF feedpoint shared between the 2.4 GHz Wi-Fi PA/LNA and Bluetooth radio via an internal T/R switch. Must be matched and routed to a single antenna with a PI matching network.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "LNA_IN"
            }
          ],
          "name": "Pin 2",
          "id": "lna_in",
          "has_internal_pulldown": false,
          "description": "RF Input and Output"
        },
        {
          "name": "Pin 3",
          "has_internal_pulldown": false,
          "description": "Analog Power Supply (2.3V~3.6V)",
          "id": "vdd3p3_3",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 500
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "sink",
              "description": "VDD3P3 supply pin for the 2.4 GHz RF power amplifier. 2.3-3.6 V; shares the analog supply net with the VDDA pins and the other VDD3P3 pin (pin 4).",
              "signal_class": "power",
              "shareable_with": [],
              "name": "Analog Power Supply"
            }
          ],
          "notes": "RF PA supply. Decouple with 100 nF at the pin; transient PA TX current can exceed 240 mA â€” keep a low-impedance return path to the thermal pad.",
          "power_domain_id": "vdda_analog"
        },
        {
          "power_domain_id": "vdda_analog",
          "notes": "RF PA supply (companion to pin 3). Decouple with 100 nF at the pin.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 500
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "Analog Power Supply",
              "direction": "sink",
              "description": "VDD3P3 supply pin for the 2.4 GHz RF power amplifier (paired with pin 3). 2.3-3.6 V.",
              "signal_class": "power"
            }
          ],
          "id": "vdd3p3_4",
          "has_internal_pulldown": false,
          "description": "Analog Power Supply (2.3V~3.6V)",
          "name": "Pin 4"
        },
        {
          "id": "sensor_vp",
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO36 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down; an external pull is mandatory if the pin is left undriven.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "direction": "sink",
              "description": "ADC1 channel 0 (SENSOR_VP) â€” 12-bit SAR ADC input, unaffected by Wi-Fi/BT activity. Also the positive terminal of the internal Hall sensor.",
              "signal_class": "sense"
            },
            {
              "direction": "sink",
              "description": "RTC_GPIO0 â€” RTC-domain GPIO routable via the RTC IO_MUX. Usable as a deep-sleep wake source; input-only on this pin.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN â€” RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT â€” RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "notes": "Input-only (GPIO36, one of the GPIO34-39 group). No output driver and no internal pull resistors â€” every external connection must provide its own pull or a defined drive level. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO. Doubles as the Hall-sensor positive input when the Hall block is enabled.",
          "logic_levels": {
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": false,
          "description": "GPIO36 / ADC1_CH0 / RTC_GPIO0",
          "name": "Pin 5"
        },
        {
          "notes": "Input-only (GPIO37). No output driver and no internal pull resistors. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO. Marked NC on most ESP32-WROOM modules â€” only available on the bare chip.",
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "sink",
              "description": "GPIO37 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "description": "ADC1 channel 1 (SENSOR_CAPP) â€” 12-bit SAR ADC input. Pairs with SENSOR_CAPN (pin 7) as a differential sensor sense input.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "description": "RTC_GPIO1 â€” input-only RTC-domain GPIO; usable as a deep-sleep wake source.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "sensor_capp",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": false,
          "description": "GPIO37 / ADC1_CH1 / RTC_GPIO1",
          "name": "Pin 6"
        },
        {
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO38 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "direction": "sink",
              "description": "ADC1 channel 2 (SENSOR_CAPN) â€” 12-bit SAR ADC input. Pairs with SENSOR_CAPP (pin 6) as a differential sensor sense input.",
              "signal_class": "sense"
            },
            {
              "direction": "sink",
              "description": "RTC_GPIO2 â€” input-only RTC-domain GPIO; usable as a deep-sleep wake source.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "sensor_capn",
          "notes": "Input-only (GPIO38). No output driver and no internal pull resistors. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO. Marked NC on most ESP32-WROOM modules â€” only available on the bare chip.",
          "name": "Pin 7",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": false,
          "description": "GPIO38 / ADC1_CH2 / RTC_GPIO2"
        },
        {
          "logic_levels": {
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": false,
          "description": "GPIO39 / ADC1_CH3 / RTC_GPIO3",
          "name": "Pin 8",
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "sink",
              "description": "GPIO39 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "description": "ADC1 channel 3 (SENSOR_VN) â€” 12-bit SAR ADC input. Also the negative terminal of the internal Hall sensor.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "description": "RTC_GPIO3 â€” input-only RTC-domain GPIO; usable as a deep-sleep wake source.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "sensor_vn",
          "notes": "Input-only (GPIO39). No output driver and no internal pull resistors. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO. Doubles as the Hall-sensor negative input when the Hall block is enabled."
        },
        {
          "id": "chip_pu",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "Active-high chip power-up / active-low chip shutdown input. Holding low forces a hardware reset and disables the on-chip regulators.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "CHIP_PU"
            }
          ],
          "notes": "CHIP_PU has no internal pull and must not be left floating. Drive with a deterministic level â€” typically a 10 kÎ© pull-up to VDD3P3_RTC with a 1 nF cap to ground (and optionally a reset button to ground) for a clean power-on-reset. Hold low for at least 50 us to guarantee a clean reset.",
          "name": "Pin 9",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": false,
          "description": "High: Enables the Chip / Low: The Chip Shuts Down"
        },
        {
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "sink",
              "description": "GPIO34 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "direction": "sink",
              "description": "ADC1 channel 6 (VDET_1) â€” 12-bit SAR ADC input.",
              "signal_class": "sense"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "sink",
              "description": "RTC_GPIO4 â€” input-only RTC-domain GPIO; usable as a deep-sleep wake source.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "id": "vdet_1",
          "notes": "Input-only (GPIO34). No output driver and no internal pull resistors. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO.",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": false,
          "description": "GPIO34 / ADC1_CH6 / RTC_GPIO4",
          "name": "Pin 10"
        },
        {
          "name": "Pin 11",
          "logic_levels": {
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": false,
          "description": "GPIO35 / ADC1_CH7 / RTC_GPIO5",
          "current_rating": {},
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO35 â€” input-only digital GPIO. No output driver and no internal pull-up/pull-down.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "description": "ADC1 channel 7 (VDET_2) â€” 12-bit SAR ADC input.",
              "signal_class": "sense",
              "direction": "sink",
              "shareable_with": [],
              "name": "ADC1"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "sink",
              "description": "RTC_GPIO5 â€” input-only RTC-domain GPIO; usable as a deep-sleep wake source.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "id": "vdet_2",
          "notes": "Input-only (GPIO35). No output driver and no internal pull resistors. Logic thresholds (at VDD=3.3 V): V_IH min = 0.75*VIO, V_IL max = 0.25*VIO."
        },
        {
          "notes": "VDD3P3_RTC domain GPIO. Logic thresholds (at VDD=3.3 V): V_IH 0.75*VIO / V_IL 0.25*VIO / V_OH 0.8*VIO / V_OL 0.1*VIO. When committed to the 32.768 kHz crystal it cannot also drive GPIO/PWM/ADC/TOUCH.",
          "id": "32k_xp",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO32 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "description": "ADC1 channel 4 â€” 12-bit SAR ADC input, unaffected by Wi-Fi activity.",
              "signal_class": "sense",
              "direction": "sink",
              "shareable_with": [],
              "name": "ADC1"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "description": "RTC_GPIO9 â€” RTC-domain GPIO routable via the RTC IO_MUX. Usable in deep-sleep and as wake source.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "description": "TOUCH9 â€” capacitive-touch sensor channel. Drives an excitation pulse and senses charge time via the touch controller.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "shareable_with": [],
              "name": "32K_XP",
              "description": "32.768 kHz crystal input. Pairs with 32K_XN on pin 13 to drive an optional external 32.768 kHz crystal for accurate RTC timekeeping.",
              "signal_class": "clock",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "power_domain_id": "vdda_analog",
          "name": "Pin 12",
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO32 / ADC1_CH4 / RTC_GPIO9 / TOUCH9 / 32K_XP"
        },
        {
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO33 / ADC1_CH5 / RTC_GPIO8 / TOUCH8 / 32K_XN",
          "name": "Pin 13",
          "power_domain_id": "vdda_analog",
          "notes": "VDD3P3_RTC domain GPIO. Logic thresholds (at VDD=3.3 V): V_IH 0.75*VIO / V_IL 0.25*VIO / V_OH 0.8*VIO / V_OL 0.1*VIO. When committed to the 32.768 kHz crystal it cannot also drive GPIO/PWM/ADC/TOUCH.",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO33 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC1",
              "direction": "sink",
              "description": "ADC1 channel 5 â€” 12-bit SAR ADC input, unaffected by Wi-Fi activity.",
              "signal_class": "sense"
            },
            {
              "description": "RTC_GPIO8 â€” RTC-domain GPIO routable via the RTC IO_MUX.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "description": "TOUCH8 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "shareable_with": [],
              "name": "32K_XN",
              "description": "32.768 kHz crystal output. Pairs with 32K_XP on pin 12 for the optional RTC crystal.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "32k_xn"
        },
        {
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "GPIO25 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "description": "ADC2 channel 8 â€” 12-bit SAR ADC input. Unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO6 â€” RTC-domain GPIO routable via the RTC IO_MUX.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "DAC",
              "direction": "source",
              "description": "DAC channel 1 â€” 8-bit voltage DAC output, full-scale 0 V to VDD3P3_RTC.",
              "signal_class": "sense"
            },
            {
              "shareable_with": [],
              "name": "EMAC_RXD0",
              "description": "Ethernet MAC receive data bit 0 (RMII).",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "gpio25",
          "notes": "VDD3P3_RTC domain GPIO. One of two ESP32 DAC outputs (DAC_1). ADC2 channels are blocked whenever Wi-Fi is active â€” schedule analog reads here only when the radio is idle, or move sampling to ADC1.",
          "power_domain_id": "vdda_analog",
          "name": "Pin 14",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO25 / ADC2_CH8 / RTC_GPIO6 / DAC_1 / EMAC_RXD0"
        },
        {
          "power_domain_id": "vdda_analog",
          "notes": "VDD3P3_RTC domain GPIO. One of two ESP32 DAC outputs (DAC_2). ADC2 channels are blocked whenever Wi-Fi is active.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO26 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "sink",
              "description": "ADC2 channel 9 â€” 12-bit SAR ADC input. Unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "ADC2"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO7 â€” RTC-domain GPIO routable via the RTC IO_MUX.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "DAC channel 2 â€” 8-bit voltage DAC output, full-scale 0 V to VDD3P3_RTC.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "DAC"
            },
            {
              "shareable_with": [],
              "name": "EMAC_RXD1",
              "description": "Ethernet MAC receive data bit 1 (RMII).",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "gpio26",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO26 / ADC2_CH9 / RTC_GPIO7 / DAC_2 / EMAC_RXD1",
          "name": "Pin 15"
        },
        {
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO27 / ADC2_CH7 / RTC_GPIO17 / TOUCH7 / EMAC_RX_DV",
          "name": "Pin 16",
          "power_domain_id": "vdda_analog",
          "notes": "VDD3P3_RTC domain GPIO. ADC2 blocked during Wi-Fi activity.",
          "id": "gpio27",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO27 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "ADC2 channel 7 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "direction": "sink",
              "shareable_with": [],
              "name": "ADC2"
            },
            {
              "description": "RTC_GPIO17 â€” RTC-domain GPIO.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "shareable_with": [],
              "name": "TOUCH",
              "description": "TOUCH7 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "EMAC_RX_DV",
              "description": "Ethernet MAC receive data valid (RMII).",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ]
        },
        {
          "id": "mtms",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO14 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "description": "ADC2 channel 6 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO16 â€” RTC-domain GPIO.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "TOUCH6 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "description": "Ethernet MAC transmit data bit 2 (MII mode).",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "EMAC_TXD2"
            },
            {
              "description": "HSPI (SPI2) serial clock via IOMUX. Sourced when HSPI is master, sampled when slave; up to 80 Mbps.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "HSPICLK"
            },
            {
              "shareable_with": [],
              "name": "HS2_CLK",
              "direction": "source",
              "description": "SDIO host slot 2 clock.",
              "signal_class": "clock"
            },
            {
              "description": "SDIO slave clock input.",
              "signal_class": "clock",
              "direction": "sink",
              "shareable_with": [],
              "name": "SD_CLK"
            },
            {
              "description": "JTAG test mode select. Drives the Xtensa OCD state machine when JTAG debug is active.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "MTMS"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "notes": "VDD3P3_RTC domain GPIO. ADC2 blocked during Wi-Fi activity. Default JTAG TMS â€” keep accessible if you intend to debug with OpenOCD.",
          "power_domain_id": "vdda_analog",
          "name": "Pin 17",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO14 / ADC2_CH6 / RTC_GPIO16 / TOUCH6 / EMAC_TXD2 / HSPICLK / HS2_CLK / SD_CLK / MTMS"
        },
        {
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO12 / ADC2_CH5 / RTC_GPIO15 / TOUCH5 / EMAC_TXD3 / HSPIQ / HS2_DATA2 / SD_DATA2 / MTDI",
          "name": "Pin 18",
          "power_domain_id": "vdda_analog",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "GPIO12 â€” full-function digital GPIO in the VDD3P3_RTC domain. Also a boot-strapping pin: sampled at reset to select the VDD_SDIO voltage (low = 3.3 V / high = 1.8 V).",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "direction": "sink",
              "description": "ADC2 channel 5 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "ADC2"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO15 â€” RTC-domain GPIO.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "TOUCH5 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "shareable_with": [],
              "name": "EMAC_TXD3",
              "direction": "source",
              "description": "Ethernet MAC transmit data bit 3 (MII mode).",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "HSPIQ",
              "description": "HSPI (SPI2) MISO via IOMUX.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "SDIO host slot 2 data line 2.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "HS2_DATA2"
            },
            {
              "shareable_with": [],
              "name": "SD_DATA2",
              "description": "SDIO slave data line 2.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "MTDI",
              "description": "JTAG test data input. Shifts instruction/data into the Xtensa OCD scan chain.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "mtdi",
          "notes": "Strapping pin â€” default internal pull-DOWN at power-on. Sampled at the rising edge of CHIP_PU to select VDD_SDIO voltage: pulled low (default) selects 3.3 V; held high selects 1.8 V. Keep this in mind when adding external pull-up loads (e.g., as a sensor wake or JTAG TDI line)."
        },
        {
          "notes": "Decouple with 10 uF bulk + 100 nF at the pin per Espressif Hardware Design Guidelines. Brown-out monitor trips at ~2.43 V on this rail.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "VDD3P3_RTC",
              "direction": "sink",
              "description": "RTC IO power supply input (2.3-3.6 V). Powers the RTC/low-power IO domain and feeds the on-chip switch that generates VDD_SDIO at 3.3 V.",
              "signal_class": "power"
            }
          ],
          "id": "vdd3p3_rtc",
          "power_domain_id": "io_3v3",
          "name": "Pin 19",
          "has_internal_pulldown": false,
          "description": "Input Power Supply for RTC IO (2.3V~3.6V)"
        },
        {
          "name": "Pin 20",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO13 / ADC2_CH4 / RTC_GPIO14 / TOUCH4 / EMAC_RX_ER / HSPID / HS2_DATA3 / SD_DATA3 / MTCK",
          "notes": "VDD3P3_RTC domain GPIO. Default JTAG TCK. ADC2 blocked during Wi-Fi activity.",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO13 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "description": "ADC2 channel 4 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "description": "RTC_GPIO14 â€” RTC-domain GPIO.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "RTC_GPIO"
            },
            {
              "shareable_with": [],
              "name": "TOUCH",
              "direction": "bidirectional",
              "description": "TOUCH4 â€” capacitive-touch sensor channel.",
              "signal_class": "sense"
            },
            {
              "direction": "sink",
              "description": "Ethernet MAC receive error indication.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "EMAC_RX_ER"
            },
            {
              "shareable_with": [],
              "name": "HSPID",
              "direction": "bidirectional",
              "description": "HSPI (SPI2) MOSI via IOMUX.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "HS2_DATA3",
              "direction": "bidirectional",
              "description": "SDIO host slot 2 data line 3.",
              "signal_class": "data"
            },
            {
              "description": "SDIO slave data line 3.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SD_DATA3"
            },
            {
              "direction": "sink",
              "description": "JTAG test clock input. Drives Xtensa OCD scan-shift timing.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "MTCK"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "mtck",
          "power_domain_id": "vdda_analog"
        },
        {
          "name": "Pin 21",
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO15 / ADC2_CH3 / RTC_GPIO13 / TOUCH3 / EMAC_RXD3 / HSPICS0 / HS2_CMD / SD_CMD / MTDO",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO15 â€” full-function digital GPIO in the VDD3P3_RTC domain. Also a boot-strapping pin: sampled at reset to control the boot ROM's serial-log behaviour (default pull-up = log on; pull low to silence logs and disable JTAG signalling on the bootloader).",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "direction": "sink",
              "description": "ADC2 channel 3 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "description": "RTC_GPIO13 â€” RTC-domain GPIO.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TOUCH3 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "direction": "sink",
              "description": "Ethernet MAC receive data bit 3 (MII mode).",
              "signal_class": "data",
              "shareable_with": [],
              "name": "EMAC_RXD3"
            },
            {
              "shareable_with": [],
              "name": "HSPICS0",
              "description": "HSPI (SPI2) chip-select 0 via IOMUX.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "HS2_CMD",
              "direction": "bidirectional",
              "description": "SDIO host slot 2 command line.",
              "signal_class": "data"
            },
            {
              "description": "SDIO slave command line.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SD_CMD"
            },
            {
              "shareable_with": [],
              "name": "MTDO",
              "description": "JTAG test data output. Shifts response data out of the Xtensa OCD scan chain.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "mtdo",
          "notes": "Strapping pin â€” default internal pull-UP at power-on. Pull low at reset to silence the bootloader serial log on U0TXD and disable JTAG signalling at ROM boot. Default JTAG TDO.",
          "power_domain_id": "vdda_analog"
        },
        {
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO2 â€” full-function digital GPIO in the VDD3P3_RTC domain. Also a boot-strapping pin: must be pulled low at reset to enter the ROM serial download mode together with GPIO0 low.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "description": "ADC2 channel 2 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO12 â€” RTC-domain GPIO.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TOUCH",
              "direction": "bidirectional",
              "description": "TOUCH2 â€” capacitive-touch sensor channel.",
              "signal_class": "sense"
            },
            {
              "shareable_with": [],
              "name": "HSPIWP",
              "description": "HSPI (SPI2) write-protect / quad-mode data line via IOMUX.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO host slot 2 data line 0.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "HS2_DATA0"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO slave data line 0.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SD_DATA0"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "gpio2",
          "notes": "Strapping pin. Must be left floating or pulled low at reset for normal SPI flash boot; pull low together with GPIO0 to enter ROM serial download mode. Frequently routed to the on-board user LED on dev boards.",
          "power_domain_id": "vdda_analog",
          "name": "Pin 22",
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO2 / ADC2_CH2 / RTC_GPIO12 / TOUCH2 / HSPIWP / HS2_DATA0 / SD_DATA0"
        },
        {
          "power_domain_id": "vdda_analog",
          "id": "gpio0",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO0 â€” full-function digital GPIO in the VDD3P3_RTC domain. Also the primary boot-mode strapping pin: high (default) selects SPI flash boot; low selects ROM serial download / bootloader.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "ADC2",
              "direction": "sink",
              "description": "ADC2 channel 1 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "description": "RTC_GPIO11 â€” RTC-domain GPIO.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TOUCH1 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "shareable_with": [],
              "name": "EMAC_TX_CLK",
              "description": "Ethernet RMII reference clock input (50 MHz from external PHY) or MII transmit clock.",
              "signal_class": "clock",
              "direction": "sink"
            },
            {
              "description": "CLK_OUT1 â€” software-selectable clock output (XTAL, PLL, or RTC source) with configurable divider.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "CLK_OUT"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "notes": "Strapping pin â€” default internal pull-UP. Must be high at the rising edge of CHIP_PU for SPI flash boot; pull low (typically via a BOOT button to ground) to enter ROM serial download mode. The Ethernet RMII reference clock input shares this pin.",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO0 / ADC2_CH1 / RTC_GPIO11 / TOUCH1 / EMAC_TX_CLK / CLK_OUT1",
          "name": "Pin 23"
        },
        {
          "notes": "VDD3P3_RTC domain GPIO. ADC2 blocked during Wi-Fi activity.",
          "id": "gpio4",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO4 â€” full-function digital GPIO in the VDD3P3_RTC domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "ADC2 channel 0 â€” unusable while Wi-Fi is active.",
              "signal_class": "sense",
              "shareable_with": [],
              "name": "ADC2"
            },
            {
              "shareable_with": [],
              "name": "RTC_GPIO",
              "direction": "bidirectional",
              "description": "RTC_GPIO10 â€” RTC-domain GPIO.",
              "signal_class": "data"
            },
            {
              "description": "TOUCH0 â€” capacitive-touch sensor channel.",
              "signal_class": "sense",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TOUCH"
            },
            {
              "description": "Ethernet MAC transmit error indication (MII mode).",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "EMAC_TX_ER"
            },
            {
              "shareable_with": [],
              "name": "HSPIHD",
              "description": "HSPI (SPI2) hold / quad-mode data line via IOMUX.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "HS2_DATA1",
              "direction": "bidirectional",
              "description": "SDIO host slot 2 data line 1.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "SD_DATA1",
              "direction": "bidirectional",
              "description": "SDIO slave data line 1.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "power_domain_id": "vdda_analog",
          "name": "Pin 24",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO4 / ADC2_CH0 / RTC_GPIO10 / TOUCH0 / EMAC_TX_ER / HSPIHD / HS2_DATA1 / SD_DATA1"
        },
        {
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. No ADC/touch on this pin. Default UART2 RX via IOMUX.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO16 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "HS1_DATA4",
              "description": "SDIO host slot 1 data line 4 (8-bit mode).",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "U2RXD",
              "direction": "sink",
              "description": "UART2 receive data via IOMUX. Routable to any GPIO via the GPIO matrix as well.",
              "signal_class": "data"
            },
            {
              "description": "Ethernet RMII reference clock output (50 MHz, 0Â° phase) to drive an external PHY.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "EMAC_CLK_OUT"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "gpio16",
          "power_domain_id": "io_3v3",
          "name": "Pin 25",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO16 / HS1_DATA4 / U2RXD / EMAC_CLK_OUT"
        },
        {
          "power_domain_id": "io_3v3",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "VDD_SDIO",
              "direction": "source",
              "description": "VDD_SDIO power output. Either tracks VDD3P3_RTC through an internal 6 ohm switch (3.3 V mode, default) or is generated by an internal LDO at 1.8 V (selected via GPIO12 strapping at reset). Up to 40 mA in LDO mode; supplies the VDD_SDIO domain GPIOs (pins 28-33) and any external flash/PSRAM tied to this rail.",
              "signal_class": "power"
            }
          ],
          "id": "vdd_sdio",
          "notes": "Dual-mode rail. In 3.3 V mode, decouple with 100 nF + 1 uF; the internal switch is 6 ohm so external flash/PSRAM see VDD3P3_RTC minus an IR drop. In 1.8 V mode the on-chip LDO can deliver only 40 mA â€” keep the load light or supply this rail externally. GPIO12 strapping selects the mode at reset.",
          "has_internal_pulldown": false,
          "description": "Output Power Supply (1.8V or the same voltage as VDD3P3_RTC)",
          "name": "Pin 26"
        },
        {
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO17 / HS1_DATA5 / U2TXD / EMAC_CLK_OUT_180",
          "name": "Pin 27",
          "power_domain_id": "io_3v3",
          "id": "gpio17",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO17 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO host slot 1 data line 5 (8-bit mode).",
              "signal_class": "data",
              "shareable_with": [],
              "name": "HS1_DATA5"
            },
            {
              "shareable_with": [],
              "name": "U2TXD",
              "description": "UART2 transmit data via IOMUX.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "EMAC_CLK_OUT_180",
              "direction": "source",
              "description": "Ethernet RMII reference clock output (50 MHz, 180Â° phase) â€” alternative phase for PHYs needing the inverted clock.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default UART2 TX via IOMUX."
        },
        {
          "power_domain_id": "io_3v3",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 30,
              "peak_duration_ms": 0
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO9 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "description": "SDIO host slot 1 data line 2.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "HS1_DATA2"
            },
            {
              "description": "UART1 receive data via IOMUX.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "U1RXD"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO slave data line 2.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SD_DATA2"
            },
            {
              "direction": "bidirectional",
              "description": "SPI1 (flash) hold / quad-mode data line via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SPIHD"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "sd_data_2",
          "notes": "VDD_SDIO domain GPIO â€” source drive starts at ~30 mA with one pin active and derates to ~10 mA when all VDD_SDIO pins source simultaneously (per datasheet Table 5-3 note 3). Reserved for SPI flash on most designs â€” driving it as general I/O typically requires moving the flash to another mapping and will break default ROM boot.",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO9 / HS1_DATA2 / U1RXD / SD_DATA2 / SPIHD",
          "name": "Pin 28"
        },
        {
          "name": "Pin 29",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO10 / HS1_DATA3 / U1TXD / SD_DATA3 / SPIWP",
          "notes": "VDD_SDIO domain GPIO â€” source drive derates with simultaneous use as above. Reserved for SPI flash on most designs.",
          "id": "sd_data_3",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 30
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "GPIO10 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "HS1_DATA3",
              "description": "SDIO host slot 1 data line 3.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "UART1 transmit data via IOMUX.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "U1TXD"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO slave data line 3.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SD_DATA3"
            },
            {
              "shareable_with": [],
              "name": "SPIWP",
              "direction": "bidirectional",
              "description": "SPI1 (flash) write-protect / quad-mode data line via IOMUX.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "power_domain_id": "io_3v3"
        },
        {
          "name": "Pin 30",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO11 / HS1_CMD / U1RTS / SD_CMD / SPICS0",
          "notes": "VDD_SDIO domain GPIO â€” source drive derates with simultaneous use. Default SPI flash CS line on most designs.",
          "id": "sd_cmd",
          "current_rating": {
            "source": {
              "max_continuous_mA": 30
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO11 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "HS1_CMD",
              "description": "SDIO host slot 1 command line.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "U1RTS",
              "description": "UART1 request-to-send (hardware flow control).",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "SD_CMD",
              "description": "SDIO slave command line.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "source",
              "description": "SPI1 (flash) chip-select 0 via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SPICS0"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "power_domain_id": "io_3v3"
        },
        {
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO6 / HS1_CLK / U1CTS / SD_CLK / SPICLK",
          "name": "Pin 31",
          "power_domain_id": "io_3v3",
          "current_rating": {
            "source": {
              "max_continuous_mA": 30
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "GPIO6 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "HS1_CLK",
              "description": "SDIO host slot 1 clock.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "U1CTS",
              "direction": "sink",
              "description": "UART1 clear-to-send (hardware flow control).",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "SDIO slave clock input.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SD_CLK"
            },
            {
              "shareable_with": [],
              "name": "SPICLK",
              "direction": "source",
              "description": "SPI1 (flash) serial clock via IOMUX. Up to 80 MHz.",
              "signal_class": "clock"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "sd_clk",
          "notes": "VDD_SDIO domain GPIO â€” source drive derates with simultaneous use. Default SPI flash clock on most designs."
        },
        {
          "notes": "VDD_SDIO domain GPIO â€” source drive derates with simultaneous use. Default SPI flash MISO on most designs.",
          "current_rating": {
            "source": {
              "max_continuous_mA": 30
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO7 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "description": "SDIO host slot 1 data line 0.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "HS1_DATA0"
            },
            {
              "shareable_with": [],
              "name": "U2RTS",
              "direction": "source",
              "description": "UART2 request-to-send (hardware flow control).",
              "signal_class": "data"
            },
            {
              "description": "SDIO slave data line 0.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SD_DATA0"
            },
            {
              "shareable_with": [],
              "name": "SPIQ",
              "direction": "bidirectional",
              "description": "SPI1 (flash) MISO / quad-mode data line via IOMUX.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "sd_data_0",
          "power_domain_id": "io_3v3",
          "name": "Pin 32",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO7 / HS1_DATA0 / U2RTS / SD_DATA0 / SPIQ"
        },
        {
          "name": "Pin 33",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO8 / HS1_DATA1 / U2CTS / SD_DATA1 / SPID",
          "current_rating": {
            "source": {
              "max_continuous_mA": 30
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "bidirectional",
              "description": "GPIO8 â€” digital GPIO in the VDD_SDIO domain. Reserved for SPI flash on most designs.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "HS1_DATA1",
              "description": "SDIO host slot 1 data line 1.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "UART2 clear-to-send (hardware flow control).",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "U2CTS"
            },
            {
              "direction": "bidirectional",
              "description": "SDIO slave data line 1.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SD_DATA1"
            },
            {
              "shareable_with": [],
              "name": "SPID",
              "direction": "bidirectional",
              "description": "SPI1 (flash) MOSI / quad-mode data line via IOMUX.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source"
            }
          ],
          "id": "sd_data_1",
          "notes": "VDD_SDIO domain GPIO â€” source drive derates with simultaneous use. Default SPI flash MOSI on most designs.",
          "power_domain_id": "io_3v3"
        },
        {
          "notes": "Strapping pin â€” sampled at reset to control SDIO timing. VDD3P3_CPU domain GPIO with full 40 mA source / 28 mA sink. Default VSPI CS0.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO5 â€” full-function digital GPIO in the VDD3P3_CPU domain. Also a boot-strapping pin: high (default) selects normal SDIO timing; low inverts SDIO clock polarity.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "HS1_DATA6",
              "description": "SDIO host slot 1 data line 6 (8-bit mode).",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "VSPICS0",
              "direction": "source",
              "description": "VSPI (SPI3) chip-select 0 via IOMUX.",
              "signal_class": "data"
            },
            {
              "description": "Ethernet MAC receive clock input (MII mode).",
              "signal_class": "clock",
              "direction": "sink",
              "shareable_with": [],
              "name": "EMAC_RX_CLK"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "gpio5",
          "power_domain_id": "io_3v3",
          "name": "Pin 34",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO5 / HS1_DATA6 / VSPICS0 / EMAC_RX_CLK"
        },
        {
          "name": "Pin 35",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO18 / HS1_DATA7 / VSPICLK",
          "id": "gpio18",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO18 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "HS1_DATA7",
              "description": "SDIO host slot 1 data line 7 (8-bit mode).",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "VSPI (SPI3) serial clock via IOMUX. Up to 80 MHz.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "VSPICLK"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default VSPI clock via IOMUX.",
          "power_domain_id": "io_3v3"
        },
        {
          "power_domain_id": "io_3v3",
          "id": "gpio23",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO23 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "HS1_STROBE",
              "description": "SDIO host slot 1 data strobe (HS400 / SDR104 timing reference).",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "description": "VSPI (SPI3) MOSI via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "VSPID"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default VSPI MOSI via IOMUX.",
          "logic_levels": {
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO23 / HS1_STROBE / VSPID",
          "name": "Pin 36"
        },
        {
          "notes": "Decouple with 10 uF bulk + 100 nF at the pin per Espressif Hardware Design Guidelines.",
          "id": "vdd3p3_cpu",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "direction": "sink",
              "description": "CPU IO power supply input (1.8-3.6 V). Powers the VDD3P3_CPU IO bank (pins 16, 17, 25, 27, 34-36, 38-42).",
              "signal_class": "power",
              "shareable_with": [],
              "name": "VDD3P3_CPU"
            }
          ],
          "power_domain_id": "io_3v3",
          "name": "Pin 37",
          "has_internal_pulldown": false,
          "description": "Input Power Supply for CPU IO (1.8V~3.6V)"
        },
        {
          "id": "gpio19",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "description": "GPIO19 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "description": "UART0 clear-to-send (hardware flow control).",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "U0CTS"
            },
            {
              "direction": "bidirectional",
              "description": "VSPI (SPI3) MISO via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "VSPIQ"
            },
            {
              "shareable_with": [],
              "name": "EMAC_TXD0",
              "description": "Ethernet MAC transmit data bit 0 (RMII).",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default VSPI MISO via IOMUX.",
          "power_domain_id": "io_3v3",
          "name": "Pin 38",
          "logic_levels": {
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825,
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475
          },
          "has_internal_pulldown": true,
          "description": "GPIO19 / U0CTS / VSPIQ / EMAC_TXD0"
        },
        {
          "id": "gpio22",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO22 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "shareable_with": [],
              "name": "U0RTS",
              "description": "UART0 request-to-send (hardware flow control).",
              "signal_class": "data",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "description": "VSPI (SPI3) write-protect / quad-mode data line via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "VSPIWP"
            },
            {
              "direction": "source",
              "description": "Ethernet MAC transmit data bit 1 (RMII).",
              "signal_class": "data",
              "shareable_with": [],
              "name": "EMAC_TXD1"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "shareable_with": [],
              "name": "TWAI_TX",
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_CLKOUT"
            },
            {
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink.",
          "power_domain_id": "io_3v3",
          "name": "Pin 39",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO22 / U0RTS / VSPIWP / EMAC_TXD1"
        },
        {
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO3 / U0RXD / CLK_OUT2",
          "name": "Pin 40",
          "power_domain_id": "io_3v3",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "GPIO",
              "direction": "bidirectional",
              "description": "GPIO3 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "U0RXD",
              "direction": "sink",
              "description": "UART0 receive data via IOMUX. Default ROM bootloader / programming UART RX.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "CLK_OUT",
              "description": "CLK_OUT2 â€” software-selectable clock output. Conflicts with UART0 RX if both are routed here.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "direction": "bidirectional",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "shareable_with": [],
              "name": "SCL"
            },
            {
              "shareable_with": [],
              "name": "SDA",
              "direction": "bidirectional",
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data"
            },
            {
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_RX"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock",
              "direction": "source"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "u0rxd",
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default UART0 RX â€” used by the ROM bootloader for flash programming and by IDF for stdout/stdin."
        },
        {
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink. Default UART0 TX â€” the ROM bootloader prints to this pin during reset. Pulling it low at boot or while GPIO15 (MTDO) is high causes garbled boot logs on the upstream UART receiver.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 28
            },
            "source": {
              "max_continuous_mA": 40
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO1 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "description": "UART0 transmit data via IOMUX. Default ROM bootloader / programming UART TX.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "U0TXD"
            },
            {
              "description": "CLK_OUT3 â€” software-selectable clock output. Conflicts with UART0 TX if both are routed here.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "CLK_OUT"
            },
            {
              "description": "Ethernet MAC receive data bit 2 (MII mode).",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "EMAC_RXD2"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "direction": "source",
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "direction": "bidirectional",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_IN",
              "direction": "sink",
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data"
            },
            {
              "shareable_with": [],
              "name": "RMT_SIG_OUT",
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data"
            }
          ],
          "id": "u0txd",
          "power_domain_id": "io_3v3",
          "name": "Pin 41",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_ol_max_V": 0.33,
            "v_il_max_V": 0.825
          },
          "has_internal_pulldown": true,
          "description": "GPIO1 / U0TXD / CLK_OUT3 / EMAC_RXD2"
        },
        {
          "power_domain_id": "io_3v3",
          "notes": "VDD3P3_CPU domain GPIO â€” full 40 mA source / 28 mA sink.",
          "current_rating": {
            "source": {
              "max_continuous_mA": 40
            },
            "sink": {
              "max_continuous_mA": 28
            }
          },
          "has_internal_pullup": true,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "GPIO21 â€” full-function digital GPIO in the VDD3P3_CPU domain with software-selectable internal pull-up and pull-down.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "GPIO"
            },
            {
              "direction": "bidirectional",
              "description": "VSPI (SPI3) hold / quad-mode data line via IOMUX.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "VSPIHD"
            },
            {
              "description": "Ethernet MAC transmit enable (RMII).",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "EMAC_TX_EN"
            },
            {
              "shareable_with": [],
              "name": "SCL",
              "description": "I2C serial clock line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "clock",
              "direction": "bidirectional"
            },
            {
              "description": "I2C serial data line. Routable to either I2C controller (I2C_in or I2C_out) through the GPIO matrix. Requires an external pull-up resistor to the bus voltage (typ. 2.2-10 kÎ©); the pin must be driven open-drain.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "SDA"
            },
            {
              "shareable_with": [],
              "name": "TWAI_RX",
              "direction": "sink",
              "description": "TWAI_RX â€” TWAI receive.",
              "signal_class": "data"
            },
            {
              "description": "TWAI_TX â€” TWAI transmit.",
              "signal_class": "data",
              "direction": "source",
              "shareable_with": [],
              "name": "TWAI_TX"
            },
            {
              "shareable_with": [],
              "name": "TWAI_BUS_OFF_ON",
              "description": "TWAI_BUS_OFF_ON â€” TWAI bus off/on.",
              "signal_class": "data",
              "direction": "bidirectional"
            },
            {
              "shareable_with": [],
              "name": "TWAI_CLKOUT",
              "direction": "source",
              "description": "TWAI_CLKOUT â€” TWAI clock output.",
              "signal_class": "clock"
            },
            {
              "description": "RMT_SIG_IN — RMT signal input.",
              "signal_class": "data",
              "direction": "sink",
              "shareable_with": [],
              "name": "RMT_SIG_IN"
            },
            {
              "direction": "source",
              "description": "RMT_SIG_OUT — RMT signal output.",
              "signal_class": "data",
              "shareable_with": [],
              "name": "RMT_SIG_OUT"
            }
          ],
          "id": "gpio21",
          "logic_levels": {
            "v_oh_min_V": 2.64,
            "v_ih_min_V": 2.475,
            "v_il_max_V": 0.825,
            "v_ol_max_V": 0.33
          },
          "has_internal_pulldown": true,
          "description": "GPIO21 / VSPIHD / EMAC_TX_EN",
          "name": "Pin 42"
        },
        {
          "name": "Pin 43",
          "has_internal_pulldown": false,
          "description": "Analog Power Supply (2.3V~3.6V)",
          "id": "vdda_43",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 500
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "VDDA pin for the analog/RF block (paired with the other VDDA pins 1 and 46). 2.3-3.6 V.",
              "signal_class": "power",
              "direction": "sink",
              "shareable_with": [],
              "name": "Analog Power Supply"
            }
          ],
          "notes": "Analog supply pin. Decouple with 100 nF at the pin.",
          "power_domain_id": "vdda_analog"
        },
        {
          "notes": "Crystal output pin. Connect to one terminal of the 40 MHz main crystal with the load capacitor specified by the crystal vendor. Do not drive externally â€” use the CLK_IN function on another pin if a logic-level clock source is required.",
          "name": "Pin 44",
          "id": "xtal_n",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "Main crystal oscillator output. Pairs with XTAL_P on pin 45. Typical 40 MHz crystal for Wi-Fi/BT operation; 2-60 MHz range for MCU-only configurations.",
              "signal_class": "clock",
              "direction": "source",
              "shareable_with": [],
              "name": "XTAL_N"
            }
          ],
          "has_internal_pulldown": false,
          "description": "External Crystal Output"
        },
        {
          "notes": "Crystal input pin. Connect to the other terminal of the 40 MHz main crystal with the load capacitor specified by the crystal vendor.",
          "name": "Pin 45",
          "id": "xtal_p",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "Main crystal oscillator input. Pairs with XTAL_N on pin 44. Typical 40 MHz crystal for Wi-Fi/BT operation; 2-60 MHz range for MCU-only configurations.",
              "signal_class": "clock",
              "direction": "sink",
              "shareable_with": [],
              "name": "XTAL_P"
            }
          ],
          "has_internal_pulldown": false,
          "description": "External Crystal Input"
        },
        {
          "has_internal_pulldown": false,
          "description": "Analog Power Supply (2.3V~3.6V)",
          "name": "Pin 46",
          "power_domain_id": "vdda_analog",
          "notes": "Analog supply pin. Decouple with 100 nF at the pin.",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 500
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "Analog Power Supply",
              "description": "VDDA pin for the analog/RF block (paired with VDDA pins 1 and 43). 2.3-3.6 V.",
              "signal_class": "power",
              "direction": "sink"
            }
          ],
          "id": "vdda_46"
        },
        {
          "notes": "BBPLL loop-filter pin â€” analog passive node. Use a low-leakage capacitor (X7R or better) and a 1% resistor.",
          "name": "Pin 47",
          "id": "cap2",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "BBPLL loop-filter node. Required external network: 3.3 nF capacitor (10%) in parallel with a 20 kÎ© resistor, both connecting CAP2 to CAP1 (pin 48).",
              "signal_class": "sense",
              "direction": "sink",
              "shareable_with": [],
              "name": "CAP2"
            }
          ],
          "has_internal_pulldown": false,
          "description": "Connects to a 3.3 nF (10%) Capacitor and 20 kÎ© Resistor in Parallel to CAP1"
        },
        {
          "has_internal_pulldown": false,
          "description": "Connects to a 10 nF Series Capacitor to Ground",
          "notes": "BBPLL loop-filter pin â€” analog passive node. Pair with the CAP2 network on pin 47.",
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "BBPLL loop-filter node. Required external network: 10 nF capacitor in series to ground.",
              "signal_class": "sense",
              "direction": "sink",
              "shareable_with": [],
              "name": "CAP1"
            }
          ],
          "name": "Pin 48",
          "id": "cap1"
        },
        {
          "power_domain_id": "gnd",
          "id": "gnd",
          "current_rating": {
            "sink": {
              "max_continuous_mA": 1200
            }
          },
          "has_internal_pullup": false,
          "connector_type": "surface_mount",
          "functions": [
            {
              "description": "Common ground return. Exposed thermal pad on the QFN-48 underside; the only ground pin in the package.",
              "signal_class": "ground",
              "direction": "sink",
              "shareable_with": [],
              "name": "GND"
            }
          ],
          "notes": "The exposed thermal pad must be soldered to the PCB ground plane with a via array â€” it is the only ground return for the IC and the primary heat-dissipation path. Cumulative IO output current absolute max is 1200 mA per datasheet Table 5-1.",
          "has_internal_pulldown": false,
          "description": "Ground",
          "name": "Pin 49"
        }
      ],
      "pin_count": 49,
      "supply_voltage_V": [
        2.3,
        3.6
      ],
      "interfaces": [
        {
          "requires": [
            {
              "count": 1,
              "function": "Analog Power Supply"
            }
          ],
          "name": "Analog Power Supply",
          "id": "power_input_vdda",
          "power_delivery": {
            "max_voltage_V": 3.6,
            "max_current_mA": 500
          },
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "max_instances": 5,
          "description": "Analog/RF supply rail (2.3-3.6 V). Five pins share this rail: VDDA (1, 43, 46) for the analog/RF block and VDD3P3 (3, 4) for the RF power amplifier. Place a 100 nF decoupling cap at each pin and ensure the source can deliver >=500 mA for combined Wi-Fi/BT operation. Ground return is provided via the separate Ground interface."
        },
        {
          "name": "Ground",
          "id": "ground",
          "power_delivery": {
            "max_current_mA": 1200,
            "max_voltage_V": 0
          },
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "requires": [
            {
              "function": "GND",
              "count": 1
            }
          ],
          "description": "Ground return for all power and signal domains. Tied to the exposed thermal pad (pin 49), which must be soldered to the PCB ground plane with a via array for both electrical return and thermal dissipation. All other power-supply and signal interfaces reference this ground."
        },
        {
          "description": "RTC I/O power supply input (pin 19). 2.3-3.6 V. Powers the RTC/low-power IO domain and feeds the internal VDD_SDIO source switch. Decouple with 10 uF bulk + 100 nF at the pin. Ground return is provided via the separate Ground interface.",
          "power_delivery": {
            "max_current_mA": 40,
            "max_voltage_V": 3.6
          },
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "name": "Input Power Supply for RTC IO",
          "id": "power_input_vdd3p3_rtc",
          "requires": [
            {
              "count": 1,
              "function": "VDD3P3_RTC"
            }
          ]
        },
        {
          "power_delivery": {
            "max_voltage_V": 3.6,
            "max_current_mA": 40
          },
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "name": "Input Power Supply for CPU IO",
          "id": "power_input_vdd3p3_cpu",
          "requires": [
            {
              "function": "VDD3P3_CPU",
              "count": 1
            }
          ],
          "description": "CPU I/O power supply input (pin 37). 1.8-3.6 V. Powers the CPU/digital IO domain (GPIOs in the VDD3P3_CPU bank). Decouple with 10 uF bulk + 100 nF at the pin. Ground return is provided via the separate Ground interface."
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "VDD_SDIO"
            }
          ],
          "power_delivery": {
            "max_current_mA": 40,
            "max_voltage_V": 3.3
          },
          "protocol": {
            "role": "output",
            "type": "power"
          },
          "name": "VDD_SDIO Output",
          "id": "power_output_vdd_sdio",
          "description": "Optional output mode for pin 26: VDD_SDIO is generated internally from VDD3P3_RTC via 6 ohm switch (3.3 V) or internal LDO (1.8 V, up to 40 mA). Ground return is provided via the separate Ground interface."
        },
        {
          "description": "Active-high enable / active-low reset (pin 9). Must not be left floating; provide a deterministic pull and power-on-reset RC network.",
          "name": "Chip Enable / Reset",
          "id": "reset",
          "protocol": {
            "role": "input",
            "type": "digital"
          },
          "requires": [
            {
              "function": "CHIP_PU",
              "count": 1
            }
          ]
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "XTAL_P"
            },
            {
              "count": 1,
              "function": "XTAL_N"
            }
          ],
          "name": "Internal Crystal Oscillator",
          "id": "internal_crystal_oscillator",
          "protocol": {
            "role": [
              "master"
            ],
            "type": "oscillators"
          },
          "description": "External main crystal between XTAL_P (pin 45) and XTAL_N (pin 44). 40 MHz typical for Wi-Fi/BT; 2-60 MHz range for MCU-only operation."
        },
        {
          "description": "Optional 32.768 kHz crystal between 32K_XP (pin 12) and 32K_XN (pin 13) for accurate RTC timekeeping.",
          "name": "External Crystal Oscillator",
          "id": "external_crystal_oscillator",
          "protocol": {
            "role": [
              "master"
            ],
            "type": "oscillators"
          },
          "requires": [
            {
              "count": 1,
              "function": "32K_XP"
            },
            {
              "count": 1,
              "function": "32K_XN"
            }
          ]
        },
        {
          "description": "Single 50-ohm RF feedpoint (LNA_IN, pin 2) shared between 2.4 GHz Wi-Fi and Bluetooth. Requires PI matching network per Espressif Hardware Design Guidelines.",
          "name": "2.4 GHz RF Antenna (Wi-Fi + Bluetooth)",
          "id": "rf_antenna",
          "constraints": {
            "requires_impedance_matching": true
          },
          "protocol": {
            "role": "peer",
            "type": "custom"
          },
          "requires": [
            {
              "function": "LNA_IN",
              "count": 1
            }
          ]
        },
        {
          "description": "Required external loop-filter network: 10 nF from CAP1 (pin 48) to ground, plus 3.3 nF and 20 kOhm in parallel between CAP2 (pin 47) and CAP1.",
          "name": "BBPLL Loop Filter",
          "id": "bbpll_loop_filter",
          "protocol": {
            "role": [
              "master"
            ],
            "type": "analog"
          },
          "requires": [
            {
              "function": "CAP1",
              "count": 1
            },
            {
              "function": "CAP2",
              "count": 1
            }
          ]
        },
        {
          "description": "Software-routable GPIO via the GPIO matrix. 34 GPIOs total; GPIO34-39 are input-only (no internal pulls). GPIO6-11 are reserved for SPI flash on most designs. Per-pin I_OH (typ, VDD=3.3 V): 40 mA in VDD3P3_CPU/VDD3P3_RTC domains; 20 mA in VDD_SDIO domain.",
          "requires": [
            {
              "count": 1,
              "function": "GPIO"
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "input",
              "output"
            ],
            "type": "digital"
          },
          "name": "GPIO",
          "id": "gpio"
        },
        {
          "protocol": {
            "role": [
              "master"
            ],
            "type": "adc"
          },
          "name": "ADC1",
          "id": "adc1",
          "requires": [
            {
              "function": "ADC1",
              "count": 1
            }
          ],
          "description": "ADC1 channel input. 8 channels (CH0-CH7) on dedicated RTC/sensor pins. Unaffected by Wi-Fi activity."
        },
        {
          "protocol": {
            "role": [
              "master"
            ],
            "type": "adc"
          },
          "name": "ADC2",
          "id": "adc2",
          "requires": [
            {
              "count": 1,
              "function": "ADC2"
            }
          ],
          "description": "ADC2 channel input. 10 channels (CH0-CH9). ADC2 is unusable while Wi-Fi is active."
        },
        {
          "requires": [
            {
              "function": "DAC",
              "count": 1
            }
          ],
          "name": "DAC",
          "id": "dac",
          "protocol": {
            "role": "output",
            "type": "analog"
          },
          "description": "8-bit DAC output. Two channels available: DAC_1 on GPIO25 (pin 14), DAC_2 on GPIO26 (pin 15)."
        },
        {
          "description": "Capacitive touch sensor input. 10 channels (TOUCH0-T9). Has not passed Conducted Susceptibility certification - limited use in harsh EMI environments.",
          "name": "Capacitive Touch Sensor",
          "id": "capacitive_touch_sensor",
          "protocol": {
            "role": [
              "master"
            ],
            "type": "custom"
          },
          "requires": [
            {
              "function": "TOUCH",
              "count": 1
            }
          ]
        },
        {
          "description": "RTC-domain GPIO routable through the RTC IO_MUX. Usable in deep-sleep and as wake source.",
          "requires": [
            {
              "function": "RTC_GPIO",
              "count": 1
            }
          ],
          "name": "RTC GPIO",
          "id": "rtc_gpio",
          "protocol": {
            "role": [
              "input",
              "output"
            ],
            "type": "digital"
          }
        },
        {
          "description": "Default ROM bootloader / programming UART on GPIO1 (TX, pin 41) and GPIO3 (RX, pin 40). Up to 5 Mbps. Optional hardware flow control on U0CTS (pin 38) / U0RTS (pin 39).",
          "name": "UART0",
          "id": "uart0",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "transmitter",
              "receiver"
            ],
            "type": "uart"
          },
          "requires": [
            {
              "count": 1,
              "function": "U0TXD"
            },
            {
              "function": "U0RXD",
              "count": 1
            }
          ]
        },
        {
          "description": "UART1 default IOMUX pins: U1TXD on SD_DATA_3 (pin 29), U1RXD on SD_DATA_2 (pin 28). Optional flow control on U1CTS (pin 31) / U1RTS (pin 30). All routable via GPIO matrix.",
          "requires": [
            {
              "function": "U1TXD",
              "count": 1
            },
            {
              "function": "U1RXD",
              "count": 1
            }
          ],
          "name": "UART1",
          "id": "uart1",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "transmitter",
              "receiver"
            ],
            "type": "uart"
          }
        },
        {
          "description": "UART2 default IOMUX pins: U2TXD on GPIO17 (pin 27), U2RXD on GPIO16 (pin 25). Optional flow control on U2CTS (pin 33) / U2RTS (pin 32). All routable via GPIO matrix.",
          "name": "UART2",
          "id": "uart2",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "transmitter",
              "receiver"
            ],
            "type": "uart"
          },
          "requires": [
            {
              "count": 1,
              "function": "U2TXD"
            },
            {
              "function": "U2RXD",
              "count": 1
            }
          ]
        },
        {
          "description": "Standard 4-wire SPI (SPI1) on the IOMUX flash pins (28-33). Reserved for in-system SPI flash on most designs. Optional SPIWP/SPIHD lines on the same pin bank extend this to Quad-SPI (QIO/QOUT) for flash/PSRAM access.",
          "constraints": {
            "max_lane_rate_mbps": 80,
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master"
            ],
            "type": "spi"
          },
          "name": "General Purpose SPI",
          "id": "spi_flash",
          "requires": [
            {
              "count": 1,
              "function": "SPICLK"
            },
            {
              "count": 1,
              "function": "SPID"
            },
            {
              "count": 1,
              "function": "SPIQ"
            },
            {
              "function": "SPICS0",
              "count": 1
            }
          ]
        },
        {
          "requires": [
            {
              "function": "HSPICLK",
              "count": 1
            },
            {
              "function": "HSPID",
              "count": 1
            },
            {
              "function": "HSPIQ",
              "count": 1
            },
            {
              "function": "HSPICS0",
              "count": 1
            }
          ],
          "name": "High-Speed SPI",
          "id": "hspi",
          "constraints": {
            "max_lane_rate_mbps": 80,
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "spi"
          },
          "description": "HSPI (SPI2) controller. Default IOMUX pins on MTMS/GPIO14 (CLK), MTCK/GPIO13 (D), MTDI/GPIO12 (Q), MTDO/GPIO15 (CS0). Add HSPIWP/HSPIHD for QSPI. Up to 80 Mbps via IOMUX."
        },
        {
          "name": "Virtual SPI",
          "id": "vspi",
          "constraints": {
            "max_lane_rate_mbps": 80,
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "spi"
          },
          "requires": [
            {
              "count": 1,
              "function": "VSPICLK"
            },
            {
              "function": "VSPID",
              "count": 1
            },
            {
              "function": "VSPIQ",
              "count": 1
            },
            {
              "count": 1,
              "function": "VSPICS0"
            }
          ],
          "description": "VSPI (SPI3) controller. Default IOMUX pins on GPIO18 (CLK), GPIO23 (D), GPIO19 (Q), GPIO5 (CS0). Add VSPIWP/VSPIHD for QSPI."
        },
        {
          "description": "SDIO host on the HS1 slot (4-bit mode). HS1_CLK on pin 31, HS1_CMD on pin 30, HS1_DATA0..3 on pins 32, 33, 28, 29. Add HS1_DATA4..7 (pins 25, 27, 34, 35) for 8-bit mode.",
          "requires": [
            {
              "function": "HS1_CLK",
              "count": 1
            },
            {
              "count": 1,
              "function": "HS1_CMD"
            },
            {
              "count": 1,
              "function": "HS1_DATA0"
            },
            {
              "count": 1,
              "function": "HS1_DATA1"
            },
            {
              "function": "HS1_DATA2",
              "count": 1
            },
            {
              "function": "HS1_DATA3",
              "count": 1
            }
          ],
          "name": "SDIO Host 1",
          "id": "sdio_host_hs1",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master"
            ],
            "type": "sdio"
          }
        },
        {
          "description": "SDIO host on the HS2 slot. HS2_CLK on MTMS/GPIO14 (pin 17), HS2_CMD on MTDO/GPIO15 (pin 21), HS2_DATA0..3 on pins 22, 24, 18, 20.",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master"
            ],
            "type": "sdio"
          },
          "name": "SDIO Host 2",
          "id": "sdio_host_hs2",
          "requires": [
            {
              "count": 1,
              "function": "HS2_CLK"
            },
            {
              "count": 1,
              "function": "HS2_CMD"
            },
            {
              "count": 1,
              "function": "HS2_DATA0"
            },
            {
              "count": 1,
              "function": "HS2_DATA1"
            },
            {
              "function": "HS2_DATA2",
              "count": 1
            },
            {
              "count": 1,
              "function": "HS2_DATA3"
            }
          ]
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "SD_CLK"
            },
            {
              "count": 1,
              "function": "SD_CMD"
            },
            {
              "count": 1,
              "function": "SD_DATA0"
            },
            {
              "count": 1,
              "function": "SD_DATA1"
            },
            {
              "function": "SD_DATA2",
              "count": 1
            },
            {
              "function": "SD_DATA3",
              "count": 1
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "slave"
            ],
            "type": "sdio"
          },
          "name": "SDIO Slave",
          "id": "sdio_slave",
          "description": "SDIO slave interface. SD_CLK on pin 31, SD_CMD on pin 30, SD_DATA0..3 on pins 32, 33, 28, 29. Shares pins with SPI flash interface on most designs."
        },
        {
          "requires": [
            {
              "function": "MTMS",
              "count": 1
            },
            {
              "function": "MTDI",
              "count": 1
            },
            {
              "count": 1,
              "function": "MTCK"
            },
            {
              "count": 1,
              "function": "MTDO"
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "slave",
            "type": "jtag"
          },
          "name": "JTAG",
          "id": "jtag",
          "description": "JTAG debug port. MTMS on pin 17, MTDI on pin 18, MTCK on pin 20, MTDO on pin 21. Compatible with Xtensa OCD/OpenOCD."
        },
        {
          "name": "Clock Output",
          "id": "clock_output",
          "protocol": {
            "role": [
              "clock_provider"
            ],
            "type": "clock_output"
          },
          "requires": [
            {
              "function": "CLK_OUT",
              "count": 1
            }
          ],
          "max_instances": 3,
          "description": "General-purpose clock output. Available on GPIO0 (pin 23), GPIO3/U0RXD (pin 40, conflicts with UART0 RX), or GPIO1/U0TXD (pin 41, conflicts with UART0 TX). Selectable source (XTAL, PLL, RTC); divider configurable."
        },
        {
          "constraints": {
            "max_lane_rate_mbps": 100,
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "host",
            "type": "ethernet"
          },
          "name": "Ethernet MAC (RMII)",
          "id": "ethernet_mac_rmii",
          "requires": [
            {
              "count": 1,
              "function": "EMAC_TX_CLK"
            },
            {
              "function": "EMAC_TXD0",
              "count": 1
            },
            {
              "count": 1,
              "function": "EMAC_TXD1"
            },
            {
              "function": "EMAC_TX_EN",
              "count": 1
            },
            {
              "function": "EMAC_RXD0",
              "count": 1
            },
            {
              "count": 1,
              "function": "EMAC_RXD1"
            },
            {
              "count": 1,
              "function": "EMAC_RX_DV"
            }
          ],
          "description": "10/100 Mbps Ethernet MAC in RMII mode. Requires external PHY. EMAC_TX_CLK (pin 23) accepts the 50 MHz reference clock; alternatively the ESP32 can drive EMAC_CLK_OUT (pin 25) or EMAC_CLK_OUT_180 (pin 27). MII mode adds EMAC_TXD2/3, EMAC_RXD2/3, EMAC_TX_ER, EMAC_RX_ER, EMAC_RX_CLK."
        },
        {
          "requires": [
            {
              "function": "SCL",
              "count": 1
            },
            {
              "function": "SDA",
              "count": 1
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "i2c"
          },
          "name": "I2C_in",
          "id": "i2c_in",
          "description": "I2C controller 0 (inbound bus). SCL and SDA are routed to any pair of bidirectional GPIOs through the GPIO matrix per the datasheet â€” both lines require open-drain capable pins, so input-only GPIO34-39 are not eligible. Standard up to 400 kHz; higher rates possible."
        },
        {
          "description": "I2C controller 1 (outbound bus). SCL and SDA are routed to any pair of bidirectional GPIOs through the GPIO matrix per the datasheet â€” both lines require open-drain capable pins, so input-only GPIO34-39 are not eligible.",
          "requires": [
            {
              "function": "SCL",
              "count": 1
            },
            {
              "count": 1,
              "function": "SDA"
            }
          ],
          "name": "I2C_out",
          "id": "i2c_out",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "i2c"
          }
        },
        {
          "requires": [
            {
              "count": 3,
              "function": "GPIO"
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "i2s"
          },
          "name": "I2S 0",
          "id": "i2s0",
          "description": "I2S controller 0 (BCLK, WS, DATA). All signals routable via GPIO matrix. Supports TDM and PDM."
        },
        {
          "description": "I2S controller 1. All signals routable via GPIO matrix.",
          "requires": [
            {
              "function": "GPIO",
              "count": 3
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master",
              "slave"
            ],
            "type": "i2s"
          },
          "name": "I2S 1",
          "id": "i2s1"
        },
        {
          "description": "LED Controller (LEDC). 16 channels (8 high-speed + 8 low-speed), up to 80 MHz source clock, 16-bit duty resolution. Intended for LED dimming and other slow-rate PWM tasks. All outputs routable via the GPIO matrix.",
          "name": "LED PWM (LEDC)",
          "id": "ledc_pwm",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master"
            ],
            "type": "pwm"
          },
          "requires": [
            {
              "function": "GPIO",
              "count": 1
            }
          ]
        },
        {
          "description": "Motor Control PWM (MCPWM). 2 independent units, each with 3 PWM output pairs (6 outputs per unit). Hardware dead-time generation, fault detection, capture, and sync inputs. Intended for BLDC, stepper, half-bridge, and full-bridge motor drive. All signals routable via the GPIO matrix.",
          "requires": [
            {
              "count": 1,
              "function": "GPIO"
            }
          ],
          "name": "Motor Control PWM",
          "id": "mcpwm",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "master"
            ],
            "type": "pwm"
          }
        },
        {
          "name": "TWAI",
          "id": "twai_can",
          "constraints": {
            "max_lane_rate_mbps": 1,
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "peer",
            "type": "can"
          },
          "requires": [
            {
              "count": 1,
              "function": "TWAI_RX"
            },
            {
              "function": "TWAI_TX",
              "count": 1
            },
            {
              "function": "TWAI_BUS_OFF_ON",
              "count": 1
            },
            {
              "function": "TWAI_CLKOUT",
              "count": 1
            }
          ],
          "description": "Two-Wire Automotive Interface, ISO 11898-1 compatible (CAN 2.0). Requires external CAN transceiver. TX and RX assignable to any GPIO via the matrix. Up to 1 Mbps."
        },
        {
          "name": "Pulse Counter",
          "id": "pulse_counter",
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": "input",
            "type": "digital"
          },
          "requires": [
            {
              "function": "GPIO",
              "count": 1
            }
          ],
          "description": "Hardware pulse counter; 8 independent channels with optional control inputs. Routable via GPIO matrix."
        },
        {
          "description": "Remote Control peripheral: 8 channels of programmable infrared / sub-GHz waveform TX/RX. Routable via GPIO matrix.",
          "requires": [
            {
              "count": 1,
              "function": "RMT_SIG_IN"
            },
            {
              "count": 1,
              "function": "RMT_SIG_OUT"
            }
          ],
          "constraints": {
            "requires_matching_voltage_domain": true
          },
          "protocol": {
            "role": [
              "input",
              "output"
            ],
            "type": "digital"
          },
          "name": "RMT (Remote Control)",
          "id": "rmt"
        }
      ],
      "power_domains": [
        {
          "voltage_range_V": [
            2.3,
            3.6
          ],
          "name": "VDDA / VDD3P3 (analog & digital core supply)",
          "id": "vdda_analog",
          "isolation_type": "non_isolated",
          "nominal_voltage_V": 3.3,
          "description": "Primary 3.3 V supply rail powering VDDA (analog/RF), VDD3P3 (digital core/IO), and VDD3P3_RTC. Datasheet recommends >=500 mA capable source for combined Wi-Fi/BT operation.",
          "ground_reference": "common",
          "max_current_mA": 500
        },
        {
          "nominal_voltage_V": 3.3,
          "ground_reference": "common",
          "max_current_mA": 40,
          "description": "Digital I/O power domain. VDD_SDIO can be driven externally or internally from VDD3P3_RTC via 6 ohm; VDD3P3_CPU range is 1.8-3.6 V; VDD_SDIO 3.3V mode range is 2.3-3.6 V. Per-pin I_OH (typ, VDD=3.3 V): 40 mA for VDD3P3_CPU and VDD3P3_RTC domains; 20 mA for VDD_SDIO domain (derates from ~30 mA to ~10 mA as more pins source simultaneously, per datasheet Table 5-3 note 3).",
          "name": "VDD_SDIO / VDD3P3_CPU (digital I/O supply)",
          "id": "io_3v3",
          "voltage_range_V": [
            1.8,
            3.6
          ],
          "isolation_type": "non_isolated"
        },
        {
          "isolation_type": "non_isolated",
          "name": "Ground",
          "id": "gnd",
          "voltage_range_V": [
            0,
            0
          ],
          "ground_reference": "common",
          "max_current_mA": 1200,
          "description": "Common ground via exposed thermal pad (pin 49) and any GND-tied substrate pins. Cumulative IO output current absolute max is 1200 mA per datasheet table 5-1.",
          "nominal_voltage_V": 0
        }
      ]
    },
    {
      "resources": [
        {
          "name": "QFN-48 6x6 mm package",
          "id": "pkg_qfn48",
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "MECHANICAL_MOUNT",
              "description": "Reflow-soldered surface-mount footprint. 48 perimeter pads on 0.40 mm pitch plus a central exposed thermal pad providing both the electrical ground return and the primary heat-dissipation path.",
              "signal_class": "mechanical_drive",
              "direction": "bidirectional"
            }
          ],
          "notes": "Package land pattern follows JEDEC MO-220 for 6x6 mm QFN-48 (VKKD-2 or equivalent). The exposed thermal pad must be soldered to the PCB ground plane with a via array per Espressif Hardware Design Guidelines for thermal and electrical performance.",
          "description": "Quad Flat No-lead, 48 perimeter pads + central exposed thermal pad. 6.00 x 6.00 mm body, 0.85 mm typical height, 0.40 mm pitch."
        }
      ],
      "interfaces": [
        {
          "description": "Reflow solder to PCB land pattern. Center thermal pad must connect to ground plane with vias for thermal and electrical return.",
          "requires": [
            {
              "count": 1,
              "function": "MECHANICAL_MOUNT"
            }
          ],
          "name": "Surface Mount Footprint",
          "id": "footprint_mounting",
          "protocol": {
            "role": "mounting_point",
            "type": "mechanical_connection"
          }
        }
      ],
      "dimensions_mm": {
        "width": 6,
        "height": 0.85,
        "length": 6
      },
      "metadata": {
        "field_serviceable": false,
        "enclosure_type": "ic_package",
        "mounting_method": "surface_mount",
        "requires_special_tools": true
      },
      "package_type": "QFN-48",
      "domain": "mechanical"
    },
    {
      "operating_temperature_C": [
        -40,
        125
      ],
      "resources": [
        {
          "notes": "Also serves as the only electrical ground for the package (pin 49). A poorly soldered or via-starved thermal pad will both increase RJA and create ground-bounce that disturbs Wi-Fi/BT operation.",
          "name": "Exposed Thermal Pad",
          "id": "thermal_pad",
          "connector_type": "surface_mount",
          "functions": [
            {
              "shareable_with": [],
              "name": "HEAT_SINK",
              "direction": "source",
              "description": "Primary heat-dissipation path from the die into the PCB. The exposed pad must be soldered to a copper plane with a via array so the chip can sustain its 792 mW typical / 1.1 W peak dissipation within the 125 Â°C junction limit."
            }
          ],
          "description": "Central exposed pad on QFN-48 bottom face. Primary heat sink path; must be soldered to PCB ground/thermal plane with vias."
        }
      ],
      "interfaces": [
        {
          "requires": [
            {
              "count": 1,
              "function": "HEAT_SINK"
            }
          ],
          "protocol": {
            "role": "thermal_source",
            "type": "thermal_connection"
          },
          "name": "Thermal Dissipation to PCB",
          "id": "thermal_dissipation",
          "description": "Thermal pad reflowed to PCB ground/thermal plane with via array."
        }
      ],
      "metadata": {
        "cooling_method": "passive",
        "requires_thermal_management": false,
        "thermal_monitoring_available": false,
        "thermal_design_power_W": 0.79
      },
      "domain": "thermal"
    },
    {
      "interfaces": [
        {
          "protocol": {
            "role": [
              "station",
              "access_point"
            ],
            "type": "wifi"
          },
          "name": "Wi-Fi (Station / SoftAP)",
          "id": "wifi",
          "requires": [
            {
              "function": "WIFI_ANTENNA",
              "count": 1
            }
          ],
          "description": "802.11 b/g/n, 2.4 GHz. Up to 150 Mbps (HT40 in 802.11n). Up to +20.5 dBm TX (802.11b), +18 dBm (802.11n). Hardware crypto supports CCMP, TKIP, WAPI, WEP and CRC."
        },
        {
          "description": "Bluetooth v4.2 BR/EDR + BLE dual-mode. NZIF receiver, +9 dBm TX, -94 dBm BLE sensitivity, AFH, SCO/eSCO, CVSD/SBC audio codec.",
          "protocol": {
            "role": "peer",
            "type": "bluetooth"
          },
          "name": "Bluetooth 4.2 (Classic + LE)",
          "id": "bluetooth",
          "requires": [
            {
              "function": "BLE_ANTENNA",
              "count": 1
            }
          ]
        }
      ],
      "metadata": {
        "max_bandwidth_mbps": 150,
        "network_protocols": [
          "wifi",
          "bluetooth"
        ],
        "frequency_bands_ghz": [
          2.4
        ],
        "wireless_standards": [
          "802.11b",
          "802.11g",
          "802.11n",
          "Bluetooth 4.2 BR/EDR",
          "Bluetooth LE"
        ]
      },
      "domain": "network",
      "resources": [
        {
          "port_specifications": {
            "port_type": "wireless"
          },
          "description": "802.11 b/g/n MAC + PHY. Station, SoftAP, and Promiscuous modes; up to 4 virtual interfaces simultaneously.",
          "name": "Wi-Fi 2.4 GHz Radio",
          "id": "wifi_radio",
          "functions": [
            {
              "description": "2.4 GHz Wi-Fi MAC/PHY logical port. Shares the single LNA_IN feedpoint with the Bluetooth radio via an internal T/R switch.",
              "signal_class": "data",
              "direction": "bidirectional",
              "shareable_with": [],
              "name": "WIFI_ANTENNA"
            }
          ],
          "notes": "Logical radio resource â€” no dedicated physical pin. RF energy enters/leaves through LNA_IN (pin 2). ADC2 is unusable while this radio is active because the Wi-Fi calibration block contends for the ADC2 controller.",
          "resource_type": "logical_port"
        },
        {
          "notes": "Logical radio resource â€” no dedicated physical pin. RF energy enters/leaves through LNA_IN (pin 2).",
          "resource_type": "logical_port",
          "name": "Bluetooth 4.2 BR/EDR + LE Radio",
          "id": "bluetooth_radio",
          "functions": [
            {
              "shareable_with": [],
              "name": "BLE_ANTENNA",
              "direction": "bidirectional",
              "description": "Bluetooth Classic + LE logical radio port. Shares the single LNA_IN feedpoint with the Wi-Fi radio via an internal T/R switch â€” concurrent BT/Wi-Fi operation is time-multiplexed by the modem coexistence arbiter.",
              "signal_class": "data"
            }
          ],
          "port_specifications": {
            "port_type": "wireless"
          },
          "description": "Bluetooth Classic (BR/EDR) and Bluetooth Low Energy dual-mode controller. Up to +9 dBm TX, -94 dBm BLE sensitivity."
        }
      ]
    }
  ],
  "previewArtifactId": "art_thumbnail",
  "purchaseInfo": [
    {
      "notes": "Sold as Tape & Reel (TR) only with 3000-piece minimum order. Unit price $1.848 at MOQ. Marked NRND by manufacturer; consider ESP32-D0WD-V3 for new designs.",
      "availabilityStatus": "in_stock",
      "priceTimestamp": "2026-05-16T21:16:30.000Z",
      "isAffiliate": false,
      "productStatus": "active",
      "currentPriceUSD": "1.85",
      "vendorPartId": "1904-ESP32-D0WDQ6-ND",
      "currency": "USD",
      "vendor": "DigiKey",
      "stockQuantityAvailable": 815,
      "minimumOrderQuantity": 3000,
      "link": "https://www.digikey.com/en/products/detail/espressif-systems/ESP32-D0WDQ6/8028404"
    }
  ],
  "usage_notes": "This is the bare ESP32-D0WDQ6 SoC. For most designs, prefer a pre-certified module (ESP32-WROOM-32E, ESP32-WROVER-E) which integrates this chip plus flash, crystal, antenna, and RF matching with FCC/CE/IC certifications. The bare chip is appropriate when (a) shrinking BOM/board area, (b) you have RF design expertise to lay out the matching network and antenna, and (c) you can run your own regulatory certification. Note that ESP32-D0WDQ6 is marked NRND (Not Recommended for New Designs) by Espressif as of datasheet v5.2 - new designs should consider ESP32-D0WD-V3 (5x5 package) or migrate to ESP32-S3/ESP32-C6.",
  "design_rules": [
    "CHIP_PU (pin 9) must not be left floating. Provide a deterministic logic level via pull-up + power-on-reset circuit.",
    "VDD3P3_RTC, VDD3P3, and VDD_SDIO recommended decoupling: 10 uF bulk + 100 nF + 10 nF per supply pin per ESP32 Hardware Design Guidelines.",
    "CAP1 (pin 48) must have 10 nF capacitor to ground. CAP2 (pin 47) must have 3.3 nF cap and 20 kOhm resistor in parallel to CAP1.",
    "External SPI flash REQUIRED for boot - this variant has no in-package flash. Connect flash to SD_DATA[0:3], SD_CLK, SD_CMD (pins 28-33) or via SPI master on remapped pins.",
    "Strapping pins (GPIO0, GPIO2, GPIO5, MTDI/GPIO12, MTDO/GPIO15) must reach stable logic levels for at least 1 ms after CHIP_PU goes high.",
    "Power supply must source at least 500 mA at 3.3 V for combined Wi-Fi/BT operation; transient peaks during TX can exceed 240 mA.",
    "Single 2.4 GHz antenna feedpoint (LNA_IN, pin 2). 50-ohm matching network required between chip and antenna; reference Espressif Hardware Design Guidelines for PI matching topology.",
    "Exposed thermal pad (pin 49) must be soldered to PCB ground/thermal plane with via array - this is the primary thermal path and electrical ground return."
  ],
  "application_examples": [
    "Wi-Fi/Bluetooth IoT sensor hubs",
    "Smart home gateways",
    "Industrial automation controllers",
    "Bluetooth audio devices (SBC codec)",
    "Smart-agriculture / asset-tracking nodes",
    "Camera-streaming devices over Wi-Fi"
  ],
  "metadata": {
    "type": "microcontroller",
    "schema_version": "1.5.0",
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-d0wdq6/thumbnail.png",
    "taxonomy": [
      "microcontroller",
      "connectivity.wireless"
    ],
    "id": "esp32-d0wdq6",
    "tags": [
      "esp32",
      "soc",
      "wifi",
      "bluetooth",
      "ble",
      "xtensa-lx6",
      "dual-core",
      "qfn-48",
      "2.4ghz",
      "iot"
    ],
    "manufacturer": "Espressif Systems",
    "version": "1.0",
    "part_number": "ESP32-D0WDQ6",
    "name": "Espressif ESP32-D0WDQ6",
    "description": "Bare Espressif ESP32 SoC IC in QFN-48 6x6 mm package. Dual-core Xtensa LX6 32-bit MCU up to 240 MHz with integrated 2.4 GHz Wi-Fi 802.11 b/g/n and Bluetooth 4.2 BR/EDR + BLE. 520 KB SRAM, 448 KB ROM, no in-package flash or PSRAM (external SPI flash required). 34 programmable GPIOs (5 strapping, 6 input-only), 18 ADC channels, 2 DACs, 10 capacitive-touch inputs, 4 SPI, 2 I2C, 3 UART, 2 I2S, SDIO host/slave, Ethernet MAC, TWAI (CAN 2.0), pulse-counter. Hardware AES/SHA/RSA acceleration. NRND (Not Recommended for New Designs) status as of datasheet v5.2.",
    "datasheet_url": "https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf"
  }
}