{
  "warnings": [
    "All GPIO signals are 3.3V logic. ESP32 GPIOs are NOT 5V-tolerant - driving them with 5V can damage the module.",
    "GPIOs 6-11 (header pins D0, D1, D2, D3, CMD, CLK) are wired to the on-package SPI flash and MUST NOT be used as general I/O on the WROOM-32E variant.",
    "GPIOs 16 and 17 are usable on the default ESP32-WROOM-32E module (no PSRAM). They are NOT usable on WROVER-E / WROVER-IE variants or on -R2 (ESP32-D0WDR2-V3) sub-variants of WROOM-32E, where the in-package PSRAM consumes both pins.",
    "GPIOs 0, 2, 5, 12, and 15 are strapping pins - pulling them to conflicting levels during reset can prevent boot or change flash voltage.",
    "Power the board via Micro-USB OR the 5V header pin OR the 3V3 header pin - never two of these simultaneously, or the board / supply can be damaged.",
    "Earlier ESP32-DevKitC V4 boards may have a 0402 cap (C15) near GPIO0 that causes spurious boot-into-download or distorts a clock signal output on GPIO0. Remove C15 if you hit either issue.",
    "TX (GPIO1) and RX (GPIO3) are shared with the on-board USB-to-UART bridge. To use UART0 with an external peer, unplug USB or tri-state the bridge by holding the bridge IC in reset."
  ],
  "domains": [
    {
      "pin_count": 38,
      "supply_voltage_V": [
        3,
        5.25
      ],
      "interfaces": [
        {
          "name": "Power 3.3V",
          "id": "power_3v3",
          "protocol": {
            "role": "peer",
            "type": "power"
          },
          "requires": [
            {
              "count": 1,
              "function": "3V3"
            }
          ],
          "description": "Functions: 3V3.",
          "max_instances": 1
        },
        {
          "name": "Power 5V",
          "id": "power_5v",
          "protocol": {
            "role": "peer",
            "type": "power"
          },
          "requires": [
            {
              "count": 1,
              "function": "5V0"
            }
          ],
          "description": "Functions: 5V0.",
          "max_instances": 1
        },
        {
          "name": "Ground",
          "id": "ground",
          "protocol": {
            "role": "peer",
            "type": "power"
          },
          "requires": [
            {
              "function": "GND",
              "count": 1
            }
          ],
          "description": "Functions: GND.",
          "max_instances": 3
        },
        {
          "name": "Chip Enable / Reset",
          "id": "chip_enable_reset",
          "protocol": {
            "role": "input",
            "type": "digital"
          },
          "requires": [
            {
              "count": 1,
              "function": "EN"
            },
            {
              "count": 1,
              "function": "PU"
            }
          ],
          "description": "Functions: EN, PU.",
          "max_instances": 1
        },
        {
          "description": "Functions: BOOT, LOG, VDD_FLASH.",
          "max_instances": 3,
          "requires": [
            {
              "function": "BOOT",
              "count": 1
            },
            {
              "count": 1,
              "function": "LOG"
            },
            {
              "count": 1,
              "function": "VDD_FLASH"
            }
          ],
          "name": "Boot Configuration",
          "id": "boot_configuration",
          "protocol": {
            "role": "input",
            "type": "digital"
          }
        },
        {
          "name": "GPIO Input Only",
          "id": "gpio_input_only",
          "protocol": {
            "role": "input",
            "type": "digital"
          },
          "requires": [
            {
              "function": "GPIO Input Only",
              "count": 1
            }
          ],
          "description": "Functions: GPIO Input Only.",
          "max_instances": 4
        },
        {
          "description": "Functions: GPIO Input / Output.",
          "max_instances": 22,
          "requires": [
            {
              "function": "GPIO Input / Output",
              "count": 1
            }
          ],
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "name": "GPIO Input / Output",
          "id": "gpio_input_output"
        },
        {
          "description": "Functions: ADC1.",
          "max_instances": 6,
          "name": "ADC1",
          "id": "adc1",
          "protocol": {
            "role": "input",
            "type": "analog"
          },
          "requires": [
            {
              "count": 1,
              "function": "ADC1"
            }
          ]
        },
        {
          "name": "ADC2",
          "id": "adc2",
          "protocol": {
            "role": "input",
            "type": "analog"
          },
          "requires": [
            {
              "count": 1,
              "function": "ADC2"
            }
          ],
          "description": "Functions: ADC2.",
          "max_instances": 10
        },
        {
          "description": "Functions: DAC.",
          "max_instances": 2,
          "requires": [
            {
              "count": 1,
              "function": "DAC"
            }
          ],
          "protocol": {
            "role": "output",
            "type": "analog"
          },
          "name": "DAC",
          "id": "dac"
        },
        {
          "protocol": {
            "role": "input",
            "type": "analog"
          },
          "name": "Hall Sensor",
          "id": "hall_sensor",
          "requires": [
            {
              "count": 1,
              "function": "S_VP"
            },
            {
              "count": 1,
              "function": "S_VN"
            }
          ],
          "description": "Functions: S_VP, S_VN.",
          "max_instances": 2
        },
        {
          "protocol": {
            "role": "input",
            "type": "analog"
          },
          "name": "Voltage Detection",
          "id": "voltage_detection",
          "requires": [
            {
              "function": "Voltage Detection",
              "count": 1
            }
          ],
          "description": "Functions: Voltage Detection.",
          "max_instances": 2
        },
        {
          "requires": [
            {
              "function": "RTC GPIO",
              "count": 1
            }
          ],
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "name": "RTC GPIO",
          "id": "rtc_gpio",
          "description": "Functions: RTC GPIO.",
          "max_instances": 16
        },
        {
          "description": "Functions: TOUCH0, TOUCH1, TOUCH2, TOUCH3, TOUCH4, TOUCH5, TOUCH6, TOUCH7, TOUCH8, TOUCH9.",
          "max_instances": 10,
          "requires": [
            {
              "count": 1,
              "function": "TOUCH0"
            },
            {
              "function": "TOUCH1",
              "count": 1
            },
            {
              "function": "TOUCH2",
              "count": 1
            },
            {
              "count": 1,
              "function": "TOUCH3"
            },
            {
              "function": "TOUCH4",
              "count": 1
            },
            {
              "count": 1,
              "function": "TOUCH5"
            },
            {
              "count": 1,
              "function": "TOUCH6"
            },
            {
              "function": "TOUCH7",
              "count": 1
            },
            {
              "count": 1,
              "function": "TOUCH8"
            },
            {
              "count": 1,
              "function": "TOUCH9"
            }
          ],
          "name": "Touch Sensor",
          "id": "touch_sensor",
          "protocol": {
            "role": "input",
            "type": "custom"
          }
        },
        {
          "description": "Functions: 32K_XP, 32K_XN.",
          "max_instances": 2,
          "requires": [
            {
              "count": 1,
              "function": "32K_XP"
            },
            {
              "function": "32K_XN",
              "count": 1
            }
          ],
          "name": "RTC Crystal Oscillator",
          "id": "rtc_crystal_oscillator",
          "protocol": {
            "role": "peer",
            "type": "oscillators"
          }
        },
        {
          "protocol": {
            "role": "peer",
            "type": "uart"
          },
          "name": "UART",
          "id": "uart",
          "requires": [
            {
              "count": 1,
              "function": "TX"
            },
            {
              "count": 1,
              "function": "RX"
            }
          ],
          "max_instances": 2,
          "description": "Functions: TX, RX."
        },
        {
          "protocol": {
            "role": "peer",
            "type": "uart"
          },
          "name": "Arduino Serial",
          "id": "arduino_serial",
          "requires": [
            {
              "function": "TX",
              "count": 1
            },
            {
              "count": 1,
              "function": "RX"
            }
          ],
          "max_instances": 2,
          "description": "Functions: TX, RX."
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "HSPI_SS"
            },
            {
              "function": "HSPI_SCK",
              "count": 1
            },
            {
              "count": 1,
              "function": "HSPI_MISO"
            },
            {
              "function": "HSPI_MOSI",
              "count": 1
            }
          ],
          "name": "High-Speed SPI",
          "id": "hspi",
          "protocol": {
            "role": "master",
            "type": "spi"
          },
          "description": "Functions: HSPI_SS, HSPI_SCK, HSPI_MISO, HSPI_MOSI.",
          "max_instances": 4
        },
        {
          "description": "Functions: VSPI_SS, VSPI_SCK, VSPI_MISO, VSPI_MOSI.",
          "max_instances": 4,
          "protocol": {
            "role": "master",
            "type": "spi"
          },
          "name": "Virtual SPI",
          "id": "vspi",
          "requires": [
            {
              "function": "VSPI_SS",
              "count": 1
            },
            {
              "count": 1,
              "function": "VSPI_SCK"
            },
            {
              "function": "VSPI_MISO",
              "count": 1
            },
            {
              "count": 1,
              "function": "VSPI_MOSI"
            }
          ]
        },
        {
          "name": "I2C / Wire",
          "id": "i2c_wire",
          "protocol": {
            "role": "master",
            "type": "i2c"
          },
          "requires": [
            {
              "function": "WIRE_SDA",
              "count": 1
            },
            {
              "count": 1,
              "function": "WIRE_SCL"
            }
          ],
          "description": "Functions: WIRE_SDA, WIRE_SCL.",
          "max_instances": 2
        },
        {
          "name": "External Flash Memory SPI",
          "id": "external_flash_memory_spi",
          "protocol": {
            "role": "master",
            "type": "spi"
          },
          "requires": [
            {
              "count": 1,
              "function": "CLK"
            },
            {
              "function": "CMD",
              "count": 1
            },
            {
              "function": "D0",
              "count": 1
            },
            {
              "function": "D1",
              "count": 1
            },
            {
              "count": 1,
              "function": "D2"
            },
            {
              "function": "D3",
              "count": 1
            }
          ],
          "description": "Functions: CLK, CMD, D0, D1, D2, D3.",
          "max_instances": 6
        },
        {
          "description": "Functions: MTDI, MTDO, MTCK, MTMS.",
          "max_instances": 4,
          "name": "JTAG",
          "id": "jtag",
          "protocol": {
            "role": "target",
            "type": "jtag"
          },
          "requires": [
            {
              "count": 1,
              "function": "MTDI"
            },
            {
              "function": "MTDO",
              "count": 1
            },
            {
              "function": "MTCK",
              "count": 1
            },
            {
              "function": "MTMS",
              "count": 1
            }
          ]
        },
        {
          "description": "Functions: SDIO.",
          "max_instances": 1,
          "protocol": {
            "role": "peer",
            "type": "sdio"
          },
          "name": "SDIO",
          "id": "sdio",
          "requires": [
            {
              "count": 1,
              "function": "SDIO"
            }
          ]
        },
        {
          "description": "Functions: Open Drain Capability.",
          "max_instances": 32,
          "requires": [
            {
              "count": 1,
              "function": "Open Drain Capability"
            }
          ],
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "name": "Open Drain Capability",
          "id": "open_drain_capability"
        },
        {
          "description": "Functions: IE, ID.",
          "max_instances": 32,
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "name": "Input Enable Capability",
          "id": "input_enable_capability",
          "requires": [
            {
              "function": "IE",
              "count": 1
            },
            {
              "count": 1,
              "function": "ID"
            }
          ]
        },
        {
          "description": "Functions: WPU.",
          "max_instances": 13,
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "name": "Weak Pull-Up Capability",
          "id": "weak_pull_up_capability",
          "requires": [
            {
              "function": "WPU",
              "count": 1
            }
          ]
        },
        {
          "name": "Weak Pull-Down Capability",
          "id": "weak_pull_down_capability",
          "protocol": {
            "role": "peer",
            "type": "digital"
          },
          "requires": [
            {
              "count": 1,
              "function": "Weak Pull-Down Capability"
            }
          ],
          "description": "Functions: Weak Pull-Down Capability.",
          "max_instances": 3
        }
      ],
      "power_domains": [
        {
          "voltage_range_V": [
            4.75,
            5.25
          ],
          "name": "5V input rail",
          "id": "usb_5v",
          "description": "5V rail sourced from Micro-USB VBUS or the 5V header pin. Current limited by USB host or external supply.",
          "max_current_mA": 500,
          "nominal_voltage_V": 5
        },
        {
          "max_current_mA": 600,
          "description": "On-board AMS1117-3.3 LDO output. Supplies the ESP32-WROOM-32E module and the 3V3 header pin.",
          "nominal_voltage_V": 3.3,
          "name": "3.3V logic rail",
          "id": "io_3v3",
          "voltage_range_V": [
            3,
            3.6
          ]
        },
        {
          "name": "Ground",
          "id": "gnd",
          "voltage_range_V": [
            0,
            0
          ],
          "max_current_mA": 1000,
          "description": "Common board ground.",
          "nominal_voltage_V": 0
        }
      ],
      "resources": [
        {
          "name": "3v3",
          "id": "3v3",
          "functions": [
            {
              "name": "power_input",
              "direction": "sink",
              "description": "Power input on this header pin."
            },
            {
              "direction": "source",
              "name": "power_output",
              "description": "Power output on this header pin."
            },
            {
              "name": "power_3v3",
              "direction": "bidirectional",
              "description": "3.3 V board rail on J2 pin 1.",
              "signal_class": "power"
            },
            {
              "description": "3V3 alias. 3.3 V board rail on J2 pin 1.",
              "signal_class": "power",
              "direction": "bidirectional",
              "name": "3V3"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "io_3v3",
          "description": "3.3V header pin (J2 pin 1). Output of the on-board LDO when powered from USB/5V; can also be used as a regulated 3.3V input to bypass the LDO."
        },
        {
          "functions": [
            {
              "name": "reset",
              "direction": "sink",
              "description": "Active-low ESP32 reset input."
            },
            {
              "description": "ESP32 enable/reset input.",
              "signal_class": "control",
              "direction": "sink",
              "name": "enable"
            },
            {
              "description": "CHIP_PU input: high enables the chip; low powers it down.",
              "signal_class": "control",
              "direction": "sink",
              "name": "chip_pu"
            },
            {
              "direction": "sink",
              "name": "EN",
              "description": "EN alias. ESP32 enable/reset input.",
              "signal_class": "control"
            },
            {
              "direction": "sink",
              "name": "PU",
              "description": "PU alias. CHIP_PU input: high enables the chip; low powers it down.",
              "signal_class": "control"
            }
          ],
          "connector_type": "pin",
          "name": "EN",
          "id": "en",
          "description": "CHIP_PU / EN active-low reset. Pull low to reset the ESP32. Also tied to the on-board EN push-button.",
          "power_domain_id": "io_3v3"
        },
        {
          "name": "VP",
          "id": "vp",
          "functions": [
            {
              "direction": "sink",
              "name": "input_disable",
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "SENSOR_VP analog input on GPIO36.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "sensor_vp"
            },
            {
              "description": "S_VP alias. SENSOR_VP analog input on GPIO36.",
              "signal_class": "analog",
              "name": "S_VP",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "ID",
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "GPIO Input Only",
              "description": "GPIO36 input-only digital pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC1_CH0 ADC input.",
              "signal_class": "analog",
              "name": "ADC1",
              "direction": "sink"
            },
            {
              "description": "RTC GPIO0 function on GPIO36.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "sink"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "io_3v3",
          "description": "GPIO36 (VP / S_VP / SENSOR_VP). Input-only RTC GPIO; ADC1 channel 0."
        },
        {
          "description": "GPIO39 (VN / S_VN / SENSOR_VN). Input-only RTC GPIO; ADC1 channel 3.",
          "power_domain_id": "io_3v3",
          "name": "VN",
          "id": "vn",
          "functions": [
            {
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_disable"
            },
            {
              "description": "SENSOR_VN analog input on GPIO39.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "sensor_vn"
            },
            {
              "name": "S_VN",
              "direction": "sink",
              "description": "S_VN alias. SENSOR_VN analog input on GPIO39.",
              "signal_class": "analog"
            },
            {
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "ID"
            },
            {
              "description": "GPIO39 input-only digital pad.",
              "signal_class": "digital",
              "direction": "sink",
              "name": "GPIO Input Only"
            },
            {
              "description": "ADC1_CH3 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC1"
            },
            {
              "description": "RTC GPIO3 function on GPIO39.",
              "signal_class": "rtc",
              "direction": "sink",
              "name": "RTC GPIO"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin"
        },
        {
          "name": "Pin 34",
          "id": "pin_34",
          "functions": [
            {
              "name": "input_disable",
              "direction": "sink",
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "ID",
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "GPIO Input Only",
              "description": "GPIO34 input-only digital pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC1_CH6 ADC input.",
              "signal_class": "analog",
              "name": "ADC1",
              "direction": "sink"
            },
            {
              "description": "VDET_1 analog input on GPIO34.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "Voltage Detection"
            },
            {
              "description": "RTC GPIO4 function on GPIO34.",
              "signal_class": "rtc",
              "direction": "sink",
              "name": "RTC GPIO"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "description": "GPIO34 (VDET_1). Input-only RTC GPIO; ADC1 channel 6.",
          "power_domain_id": "io_3v3"
        },
        {
          "description": "GPIO35 (VDET_2). Input-only RTC GPIO; ADC1 channel 7.",
          "power_domain_id": "io_3v3",
          "functions": [
            {
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_disable"
            },
            {
              "direction": "sink",
              "name": "ID",
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "name": "GPIO Input Only",
              "direction": "sink",
              "description": "GPIO35 input-only digital pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC1_CH7 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC1"
            },
            {
              "description": "VDET_2 analog input on GPIO35.",
              "signal_class": "analog",
              "name": "Voltage Detection",
              "direction": "sink"
            },
            {
              "description": "RTC GPIO5 function on GPIO35.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "sink"
            },
            {
              "direction": "source",
              "name": "Open Drain Capability",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 35",
          "id": "pin_35"
        },
        {
          "description": "GPIO32. ADC1_CH4, TOUCH9, XTAL_32K_P (32 kHz crystal input).",
          "power_domain_id": "io_3v3",
          "name": "Pin 32",
          "id": "pin_32",
          "functions": [
            {
              "direction": "sink",
              "name": "input_disable",
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "xtal_32k_p",
              "description": "32.768 kHz crystal oscillator input on GPIO32.",
              "signal_class": "clock"
            },
            {
              "direction": "sink",
              "name": "touch9",
              "description": "Touch sensor channel 9.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "TOUCH9 alias. Touch sensor channel 9.",
              "signal_class": "capacitive_touch",
              "name": "TOUCH9",
              "direction": "sink"
            },
            {
              "description": "32K_XP alias. 32.768 kHz crystal oscillator input on GPIO32.",
              "signal_class": "clock",
              "name": "32K_XP",
              "direction": "sink"
            },
            {
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "name": "ID",
              "direction": "sink"
            },
            {
              "description": "GPIO32 digital I/O pad.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "GPIO Input / Output"
            },
            {
              "direction": "sink",
              "name": "ADC1",
              "description": "ADC1_CH4 ADC input.",
              "signal_class": "analog"
            },
            {
              "description": "RTC GPIO9 function on GPIO32.",
              "signal_class": "rtc",
              "direction": "bidirectional",
              "name": "RTC GPIO"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin"
        },
        {
          "name": "Pin 33",
          "id": "pin_33",
          "functions": [
            {
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "name": "input_disable",
              "direction": "sink"
            },
            {
              "name": "xtal_32k_n",
              "direction": "source",
              "description": "32.768 kHz crystal oscillator output on GPIO33.",
              "signal_class": "clock"
            },
            {
              "description": "Touch sensor channel 8.",
              "signal_class": "capacitive_touch",
              "name": "touch8",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "TOUCH8",
              "description": "TOUCH8 alias. Touch sensor channel 8.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "32K_XN alias. 32.768 kHz crystal oscillator output on GPIO33.",
              "signal_class": "clock",
              "direction": "source",
              "name": "32K_XN"
            },
            {
              "direction": "sink",
              "name": "ID",
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "GPIO33 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "description": "ADC1_CH5 ADC input.",
              "signal_class": "analog",
              "name": "ADC1",
              "direction": "sink"
            },
            {
              "description": "RTC GPIO8 function on GPIO33.",
              "signal_class": "rtc",
              "direction": "bidirectional",
              "name": "RTC GPIO"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "io_3v3",
          "description": "GPIO33. ADC1_CH5, TOUCH8, XTAL_32K_N."
        },
        {
          "power_domain_id": "io_3v3",
          "description": "GPIO25. ADC2_CH8 and DAC1.",
          "functions": [
            {
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_disable"
            },
            {
              "direction": "sink",
              "name": "ID",
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "GPIO25 digital I/O pad.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "GPIO Input / Output"
            },
            {
              "description": "ADC2_CH8 ADC input.",
              "signal_class": "analog",
              "name": "ADC2",
              "direction": "sink"
            },
            {
              "description": "DAC_1 output on GPIO25.",
              "signal_class": "analog",
              "direction": "source",
              "name": "DAC"
            },
            {
              "description": "RTC GPIO6 function on GPIO25.",
              "signal_class": "rtc",
              "direction": "bidirectional",
              "name": "RTC GPIO"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 25",
          "id": "pin_25"
        },
        {
          "description": "GPIO26. ADC2_CH9 and DAC2.",
          "power_domain_id": "io_3v3",
          "name": "Pin 26",
          "id": "pin_26",
          "functions": [
            {
              "name": "input_disable",
              "direction": "sink",
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "name": "ID",
              "direction": "sink"
            },
            {
              "description": "GPIO26 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "name": "ADC2",
              "direction": "sink",
              "description": "ADC2_CH9 ADC input.",
              "signal_class": "analog"
            },
            {
              "direction": "source",
              "name": "DAC",
              "description": "DAC_2 output on GPIO26.",
              "signal_class": "analog"
            },
            {
              "description": "RTC GPIO7 function on GPIO26.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin"
        },
        {
          "description": "GPIO27. ADC2_CH7, TOUCH7.",
          "power_domain_id": "io_3v3",
          "name": "Pin 27",
          "id": "pin_27",
          "functions": [
            {
              "description": "Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_disable"
            },
            {
              "description": "Touch sensor channel 7.",
              "signal_class": "capacitive_touch",
              "name": "touch7",
              "direction": "sink"
            },
            {
              "description": "TOUCH7 alias. Touch sensor channel 7.",
              "signal_class": "capacitive_touch",
              "name": "TOUCH7",
              "direction": "sink"
            },
            {
              "description": "ID alias. Pad supports input-disable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "ID"
            },
            {
              "description": "GPIO27 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "description": "ADC2_CH7 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC2"
            },
            {
              "description": "RTC GPIO17 function on GPIO27.",
              "signal_class": "rtc",
              "direction": "bidirectional",
              "name": "RTC GPIO"
            },
            {
              "direction": "source",
              "name": "Open Drain Capability",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin"
        },
        {
          "description": "GPIO14. ADC2_CH6, TOUCH6, MTMS (JTAG TMS), HSPI_CLK.",
          "power_domain_id": "io_3v3",
          "functions": [
            {
              "description": "SPI clock signal on GPIO14.",
              "name": "spi_sck",
              "direction": "source"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "name": "weak_pullup",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "hspi_sck",
              "direction": "source",
              "description": "HSPI clock output on GPIO14.",
              "signal_class": "digital"
            },
            {
              "name": "jtag_tms",
              "direction": "sink",
              "description": "JTAG MTMS / TMS on GPIO14.",
              "signal_class": "digital"
            },
            {
              "name": "touch6",
              "direction": "sink",
              "description": "Touch sensor channel 6.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "TOUCH6 alias. Touch sensor channel 6.",
              "signal_class": "capacitive_touch",
              "name": "TOUCH6",
              "direction": "sink"
            },
            {
              "name": "HSPI_SCK",
              "direction": "source",
              "description": "HSPI_SCK alias. HSPI clock output on GPIO14.",
              "signal_class": "digital"
            },
            {
              "description": "MTMS alias. JTAG MTMS / TMS on GPIO14.",
              "signal_class": "digital",
              "name": "MTMS",
              "direction": "sink"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "name": "WPU",
              "direction": "bidirectional",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO14 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC2_CH6 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC2"
            },
            {
              "description": "RTC GPIO16 function on GPIO14.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 14",
          "id": "pin_14"
        },
        {
          "functions": [
            {
              "description": "SPI MISO signal on GPIO12.",
              "direction": "sink",
              "name": "spi_miso"
            },
            {
              "direction": "sink",
              "name": "input_enable",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "name": "weak_pullup",
              "direction": "bidirectional"
            },
            {
              "name": "vdd_flash_strap",
              "direction": "sink",
              "description": "MTDI strap selects VDD_SDIO flash voltage at reset.",
              "signal_class": "strapping"
            },
            {
              "description": "HSPI MISO input on GPIO12.",
              "signal_class": "digital",
              "name": "hspi_miso",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "jtag_tdi",
              "description": "JTAG MTDI / TDI on GPIO12.",
              "signal_class": "digital"
            },
            {
              "name": "touch5",
              "direction": "sink",
              "description": "Touch sensor channel 5.",
              "signal_class": "capacitive_touch"
            },
            {
              "direction": "sink",
              "name": "TOUCH5",
              "description": "TOUCH5 alias. Touch sensor channel 5.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "HSPI_MISO alias. HSPI MISO input on GPIO12.",
              "signal_class": "digital",
              "name": "HSPI_MISO",
              "direction": "sink"
            },
            {
              "name": "MTDI",
              "direction": "sink",
              "description": "MTDI alias. JTAG MTDI / TDI on GPIO12.",
              "signal_class": "digital"
            },
            {
              "description": "VDD_FLASH alias. MTDI strap selects VDD_SDIO flash voltage at reset.",
              "signal_class": "strapping",
              "name": "VDD_FLASH",
              "direction": "sink"
            },
            {
              "name": "IE",
              "direction": "sink",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "WPU"
            },
            {
              "description": "GPIO12 digital I/O pad.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "GPIO Input / Output"
            },
            {
              "direction": "sink",
              "name": "ADC2",
              "description": "ADC2_CH5 ADC input.",
              "signal_class": "analog"
            },
            {
              "name": "RTC GPIO",
              "direction": "bidirectional",
              "description": "RTC GPIO15 function on GPIO12.",
              "signal_class": "rtc"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 12",
          "id": "pin_12",
          "description": "GPIO12. ADC2_CH5, TOUCH5, MTDI (JTAG TDI), HSPI_Q. Strapping pin (controls flash voltage at boot).",
          "power_domain_id": "io_3v3"
        },
        {
          "power_domain_id": "gnd",
          "name": "GND",
          "id": "gnd",
          "functions": [
            {
              "name": "ground",
              "direction": "bidirectional",
              "description": "Board ground reference."
            },
            {
              "direction": "bidirectional",
              "name": "GND",
              "description": "GND alias. Board ground reference.",
              "signal_class": "power"
            }
          ],
          "connector_type": "pin"
        },
        {
          "power_domain_id": "io_3v3",
          "description": "GPIO13. ADC2_CH4, TOUCH4, MTCK (JTAG TCK), HSPI_D.",
          "functions": [
            {
              "direction": "source",
              "name": "spi_mosi",
              "description": "SPI MOSI signal on GPIO13."
            },
            {
              "direction": "sink",
              "name": "input_enable",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "HSPI MOSI output on GPIO13.",
              "signal_class": "digital",
              "direction": "source",
              "name": "hspi_mosi"
            },
            {
              "name": "jtag_tck",
              "direction": "sink",
              "description": "JTAG MTCK / TCK on GPIO13.",
              "signal_class": "digital"
            },
            {
              "direction": "sink",
              "name": "touch4",
              "description": "Touch sensor channel 4.",
              "signal_class": "capacitive_touch"
            },
            {
              "direction": "sink",
              "name": "TOUCH4",
              "description": "TOUCH4 alias. Touch sensor channel 4.",
              "signal_class": "capacitive_touch"
            },
            {
              "name": "HSPI_MOSI",
              "direction": "source",
              "description": "HSPI_MOSI alias. HSPI MOSI output on GPIO13.",
              "signal_class": "digital"
            },
            {
              "description": "MTCK alias. JTAG MTCK / TCK on GPIO13.",
              "signal_class": "digital",
              "name": "MTCK",
              "direction": "sink"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO13 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC2_CH4 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC2"
            },
            {
              "direction": "bidirectional",
              "name": "RTC GPIO",
              "description": "RTC GPIO14 function on GPIO13.",
              "signal_class": "rtc"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            },
            {
              "name": "Weak Pull-Down Capability",
              "direction": "bidirectional",
              "description": "Pad has an internal weak pull-down.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 13",
          "id": "pin_13"
        },
        {
          "functions": [
            {
              "description": "Reserved on this board for on-module SPI flash.",
              "direction": "bidirectional",
              "name": "spi_flash"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "weak_pullup"
            },
            {
              "description": "SPI flash data 2; reserved on this board.",
              "signal_class": "digital",
              "name": "spi_flash_d2",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "name": "D2",
              "description": "D2 alias. SPI flash data 2; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "name": "WPU",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin",
          "name": "D2",
          "id": "d2",
          "power_domain_id": "io_3v3",
          "description": "D2 / SD_DATA2 / GPIO9 (J2-16). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O."
        },
        {
          "description": "D3 / SD_DATA3 / GPIO10 (J2-17). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O.",
          "power_domain_id": "io_3v3",
          "name": "D3",
          "id": "d3",
          "functions": [
            {
              "description": "Reserved on this board for on-module SPI flash.",
              "name": "spi_flash",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "name": "weak_pullup",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "SPI flash data 3; reserved on this board.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "spi_flash_d3"
            },
            {
              "description": "D3 alias. SPI flash data 3; reserved on this board.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "D3"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "direction": "bidirectional",
              "name": "WPU",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin"
        },
        {
          "functions": [
            {
              "description": "Reserved on this board for on-module SPI flash.",
              "direction": "bidirectional",
              "name": "spi_flash"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "name": "weak_pullup",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "spi_flash_cmd",
              "direction": "bidirectional",
              "description": "SPI flash command; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "CMD alias. SPI flash command; reserved on this board.",
              "signal_class": "digital",
              "name": "CMD",
              "direction": "bidirectional"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "name": "WPU",
              "direction": "bidirectional",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin",
          "name": "CMD",
          "id": "cmd",
          "description": "CMD / SD_CMD / GPIO11 (J2-18). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O.",
          "power_domain_id": "io_3v3"
        },
        {
          "power_domain_id": "usb_5v",
          "description": "5V header pin (J2 pin 19). Can be used as a 5V input (board power) OR as a 5V output when powered via Micro-USB.",
          "name": "5V",
          "id": "5v",
          "functions": [
            {
              "description": "Power input on this header pin.",
              "direction": "sink",
              "name": "power_input"
            },
            {
              "direction": "source",
              "name": "power_output",
              "description": "Power output on this header pin."
            },
            {
              "name": "power_5v0",
              "direction": "bidirectional",
              "description": "5 V board rail on J2 pin 19.",
              "signal_class": "power"
            },
            {
              "direction": "bidirectional",
              "name": "5V0",
              "description": "5V0 alias. 5 V board rail on J2 pin 19.",
              "signal_class": "power"
            }
          ],
          "connector_type": "pin"
        },
        {
          "power_domain_id": "io_3v3",
          "description": "CLK / SD_CLK / GPIO6 (J3-19). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O.",
          "functions": [
            {
              "description": "Reserved on this board for on-module SPI flash.",
              "name": "spi_flash",
              "direction": "bidirectional"
            },
            {
              "direction": "source",
              "name": "spi_flash_sck",
              "description": "SPI flash clock; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "name": "weak_pullup",
              "direction": "bidirectional",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "source",
              "name": "CLK",
              "description": "CLK alias. SPI flash clock; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "name": "WPU",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "name": "CLK",
          "id": "clk"
        },
        {
          "name": "D0",
          "id": "d0",
          "functions": [
            {
              "direction": "bidirectional",
              "name": "spi_flash",
              "description": "Reserved on this board for on-module SPI flash."
            },
            {
              "direction": "bidirectional",
              "name": "spi_flash_d0",
              "description": "SPI flash data 0; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "name": "weak_pullup",
              "direction": "bidirectional"
            },
            {
              "direction": "bidirectional",
              "name": "D0",
              "description": "D0 alias. SPI flash data 0; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "name": "IE",
              "direction": "sink",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "WPU"
            },
            {
              "direction": "source",
              "name": "Open Drain Capability",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "description": "D0 / SD_DATA0 / GPIO7 (J3-18). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O.",
          "power_domain_id": "io_3v3"
        },
        {
          "name": "D1",
          "id": "d1",
          "functions": [
            {
              "description": "Reserved on this board for on-module SPI flash.",
              "name": "spi_flash",
              "direction": "bidirectional"
            },
            {
              "description": "SPI flash data 1; reserved on this board.",
              "signal_class": "digital",
              "name": "spi_flash_d1",
              "direction": "bidirectional"
            },
            {
              "name": "input_enable",
              "direction": "sink",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "name": "weak_pullup",
              "direction": "bidirectional",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "bidirectional",
              "name": "D1",
              "description": "D1 alias. SPI flash data 1; reserved on this board.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "direction": "bidirectional",
              "name": "WPU",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin",
          "description": "D1 / SD_DATA1 / GPIO8 (J3-17). Wired to on-module SPI flash on the ESP32-WROOM-32E and should not be used as general I/O.",
          "power_domain_id": "io_3v3"
        },
        {
          "functions": [
            {
              "name": "touch3",
              "direction": "sink",
              "description": "Touch sensor channel 3.",
              "signal_class": "capacitive_touch"
            },
            {
              "name": "jtag_tdo",
              "direction": "source",
              "description": "JTAG MTDO / TDO on GPIO15.",
              "signal_class": "digital"
            },
            {
              "direction": "source",
              "name": "hspi_ss",
              "description": "HSPI chip-select output on GPIO15.",
              "signal_class": "digital"
            },
            {
              "name": "boot_log",
              "direction": "source",
              "description": "MTDO strap controls U0TXD boot log output.",
              "signal_class": "strapping"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "name": "weak_pullup",
              "direction": "bidirectional",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "TOUCH3 alias. Touch sensor channel 3.",
              "signal_class": "capacitive_touch",
              "direction": "sink",
              "name": "TOUCH3"
            },
            {
              "name": "HSPI_SS",
              "direction": "source",
              "description": "HSPI_SS alias. HSPI chip-select output on GPIO15.",
              "signal_class": "digital"
            },
            {
              "description": "MTDO alias. JTAG MTDO / TDO on GPIO15.",
              "signal_class": "digital",
              "name": "MTDO",
              "direction": "source"
            },
            {
              "name": "LOG",
              "direction": "source",
              "description": "LOG alias. MTDO strap controls U0TXD boot log output.",
              "signal_class": "strapping"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "name": "WPU",
              "direction": "bidirectional",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO15 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "direction": "sink",
              "name": "ADC2",
              "description": "ADC2_CH3 ADC input.",
              "signal_class": "analog"
            },
            {
              "description": "RTC GPIO13 function on GPIO15.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 15",
          "id": "pin_15",
          "description": "GPIO15. ADC2_CH3, TOUCH3, MTDO (JTAG TDO). Strapping pin (controls boot-mode messages).",
          "power_domain_id": "io_3v3"
        },
        {
          "functions": [
            {
              "direction": "sink",
              "name": "touch2",
              "description": "Touch sensor channel 2.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "direction": "sink",
              "name": "TOUCH2",
              "description": "TOUCH2 alias. Touch sensor channel 2.",
              "signal_class": "capacitive_touch"
            },
            {
              "direction": "sink",
              "name": "IE",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "GPIO2 digital I/O pad.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "GPIO Input / Output"
            },
            {
              "name": "ADC2",
              "direction": "sink",
              "description": "ADC2_CH2 ADC input.",
              "signal_class": "analog"
            },
            {
              "name": "RTC GPIO",
              "direction": "bidirectional",
              "description": "RTC GPIO12 function on GPIO2.",
              "signal_class": "rtc"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            },
            {
              "description": "Pad has an internal weak pull-down.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "Weak Pull-Down Capability"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 2",
          "id": "pin_2",
          "description": "GPIO2. ADC2_CH2, TOUCH2. Strapping pin (must be low or floating at boot).",
          "power_domain_id": "io_3v3"
        },
        {
          "power_domain_id": "io_3v3",
          "description": "GPIO0. ADC2_CH1, TOUCH1. BOOT strapping pin - hold LOW at reset to enter firmware download mode (used by the on-board BOOT push-button).",
          "functions": [
            {
              "name": "touch1",
              "direction": "sink",
              "description": "Touch sensor channel 1.",
              "signal_class": "capacitive_touch"
            },
            {
              "name": "boot",
              "direction": "sink",
              "description": "GPIO0 boot strap; low at reset enters download mode.",
              "signal_class": "strapping"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "name": "weak_pullup",
              "direction": "bidirectional",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "TOUCH1",
              "description": "TOUCH1 alias. Touch sensor channel 1.",
              "signal_class": "capacitive_touch"
            },
            {
              "name": "BOOT",
              "direction": "sink",
              "description": "BOOT alias. GPIO0 boot strap; low at reset enters download mode.",
              "signal_class": "strapping"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "name": "WPU",
              "direction": "bidirectional"
            },
            {
              "description": "GPIO0 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "direction": "sink",
              "name": "ADC2",
              "description": "ADC2_CH1 ADC input.",
              "signal_class": "analog"
            },
            {
              "description": "RTC GPIO11 function on GPIO0.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 0",
          "id": "pin_0"
        },
        {
          "description": "GPIO4. ADC2_CH0, TOUCH0.",
          "power_domain_id": "io_3v3",
          "functions": [
            {
              "description": "Touch sensor channel 0.",
              "signal_class": "capacitive_touch",
              "direction": "sink",
              "name": "touch0"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "TOUCH0",
              "description": "TOUCH0 alias. Touch sensor channel 0.",
              "signal_class": "capacitive_touch"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO4 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "description": "ADC2_CH0 ADC input.",
              "signal_class": "analog",
              "direction": "sink",
              "name": "ADC2"
            },
            {
              "description": "RTC GPIO10 function on GPIO4.",
              "signal_class": "rtc",
              "name": "RTC GPIO",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            },
            {
              "description": "Pad has an internal weak pull-down.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "Weak Pull-Down Capability"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 4",
          "id": "pin_4"
        },
        {
          "description": "GPIO16 / U2RXD (chip pin 27). Fully usable on the default ESP32-WROOM-32E module. NOTE: on WROVER-E / WROVER-IE and on -R2 sub-variants of WROOM-32E (ESP32-D0WDR2-V3 die with embedded 2 MB PSRAM), GPIO16 is consumed by the in-package PSRAM and cannot be used as general I/O.",
          "power_domain_id": "io_3v3",
          "name": "Pin 16",
          "id": "pin_16",
          "functions": [
            {
              "direction": "sink",
              "name": "uart_rx",
              "description": "UART receive input on GPIO16."
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "name": "IE",
              "direction": "sink",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO16 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "direction": "source",
              "name": "Open Drain Capability"
            }
          ],
          "connector_type": "pin"
        },
        {
          "functions": [
            {
              "description": "UART transmit output on GPIO17.",
              "direction": "source",
              "name": "uart_tx"
            },
            {
              "name": "input_enable",
              "direction": "sink",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "IE",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "description": "GPIO17 digital I/O pad.",
              "signal_class": "digital",
              "direction": "bidirectional",
              "name": "GPIO Input / Output"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 17",
          "id": "pin_17",
          "description": "GPIO17 / U2TXD (chip pin 28). Fully usable on the default ESP32-WROOM-32E module. NOTE: on WROVER-E / WROVER-IE and on -R2 sub-variants of WROOM-32E (ESP32-D0WDR2-V3 die with embedded 2 MB PSRAM), GPIO17 is consumed by the in-package PSRAM and cannot be used as general I/O.",
          "power_domain_id": "io_3v3"
        },
        {
          "functions": [
            {
              "name": "spi_cs",
              "direction": "source",
              "description": "SPI chip-select signal on GPIO5."
            },
            {
              "direction": "source",
              "name": "vspi_ss",
              "description": "VSPI chip-select output on GPIO5.",
              "signal_class": "digital"
            },
            {
              "description": "GPIO5 SDIO timing strap / SDIO alternate function.",
              "signal_class": "digital",
              "name": "sdio",
              "direction": "bidirectional"
            },
            {
              "direction": "sink",
              "name": "input_enable",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "bidirectional",
              "name": "weak_pullup",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "VSPI_SS alias. VSPI chip-select output on GPIO5.",
              "signal_class": "digital",
              "name": "VSPI_SS",
              "direction": "source"
            },
            {
              "description": "SDIO alias. GPIO5 SDIO timing strap / SDIO alternate function.",
              "signal_class": "digital",
              "name": "SDIO",
              "direction": "bidirectional"
            },
            {
              "name": "IE",
              "direction": "sink",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "bidirectional",
              "name": "WPU",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "GPIO5 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 5",
          "id": "pin_5",
          "description": "GPIO5. Default VSPI_CS0. Strapping pin (pulled up at boot).",
          "power_domain_id": "io_3v3"
        },
        {
          "functions": [
            {
              "direction": "source",
              "name": "spi_sck",
              "description": "SPI clock signal on GPIO18."
            },
            {
              "description": "VSPI clock output on GPIO18.",
              "signal_class": "digital",
              "name": "vspi_sck",
              "direction": "source"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "source",
              "name": "VSPI_SCK",
              "description": "VSPI_SCK alias. VSPI clock output on GPIO18.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "direction": "bidirectional",
              "name": "GPIO Input / Output",
              "description": "GPIO18 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "direction": "source",
              "name": "Open Drain Capability",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 18",
          "id": "pin_18",
          "description": "GPIO18. Default VSPI_SCK.",
          "power_domain_id": "io_3v3"
        },
        {
          "name": "Pin 19",
          "id": "pin_19",
          "functions": [
            {
              "direction": "sink",
              "name": "spi_miso",
              "description": "SPI MISO signal on GPIO19."
            },
            {
              "direction": "sink",
              "name": "vspi_miso",
              "description": "VSPI MISO input on GPIO19.",
              "signal_class": "digital"
            },
            {
              "name": "input_enable",
              "direction": "sink",
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "sink",
              "name": "VSPI_MISO",
              "description": "VSPI_MISO alias. VSPI MISO input on GPIO19.",
              "signal_class": "digital"
            },
            {
              "direction": "sink",
              "name": "IE",
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "bidirectional",
              "name": "GPIO Input / Output",
              "description": "GPIO19 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "io_3v3",
          "description": "GPIO19. Default VSPI_MISO."
        },
        {
          "power_domain_id": "io_3v3",
          "description": "GPIO21. Default I2C0_SDA.",
          "name": "Pin 21",
          "id": "pin_21",
          "functions": [
            {
              "description": "I2C data signal on GPIO21.",
              "name": "i2c_sda",
              "direction": "bidirectional"
            },
            {
              "name": "wire_sda",
              "direction": "bidirectional",
              "description": "Arduino Wire SDA / I2C data on GPIO21.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "description": "WIRE_SDA alias. Arduino Wire SDA / I2C data on GPIO21.",
              "signal_class": "digital",
              "name": "WIRE_SDA",
              "direction": "bidirectional"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "description": "GPIO21 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin"
        },
        {
          "functions": [
            {
              "name": "uart_rx",
              "direction": "sink",
              "description": "UART receive input on GPIO3."
            },
            {
              "name": "u0rxd",
              "direction": "sink",
              "description": "UART0 receive input on GPIO3.",
              "signal_class": "digital"
            },
            {
              "name": "serial_rx",
              "direction": "sink",
              "description": "Primary serial RX alias on GPIO3.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "direction": "bidirectional",
              "name": "weak_pullup",
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "description": "U0RXD alias. UART0 receive input on GPIO3.",
              "signal_class": "digital",
              "name": "U0RXD",
              "direction": "sink"
            },
            {
              "description": "SERIAL_RX alias. Primary serial RX alias on GPIO3.",
              "signal_class": "digital",
              "name": "SERIAL_RX",
              "direction": "sink"
            },
            {
              "direction": "sink",
              "name": "RX",
              "description": "RX alias. UART receive input on GPIO3."
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "name": "WPU",
              "direction": "bidirectional",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "direction": "bidirectional",
              "name": "GPIO Input / Output",
              "description": "GPIO3 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "RX",
          "id": "rx",
          "description": "GPIO3 / U0RXD. Primary serial receive; shared with the on-board USB-UART bridge.",
          "power_domain_id": "io_3v3"
        },
        {
          "name": "TX",
          "id": "tx",
          "functions": [
            {
              "direction": "source",
              "name": "uart_tx",
              "description": "UART transmit output on GPIO1."
            },
            {
              "description": "UART0 transmit output on GPIO1.",
              "signal_class": "digital",
              "name": "u0txd",
              "direction": "source"
            },
            {
              "name": "serial_tx",
              "direction": "source",
              "description": "Primary serial TX alias on GPIO1.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "description": "Pad has an internal weak pull-up.",
              "signal_class": "digital_pad",
              "direction": "bidirectional",
              "name": "weak_pullup"
            },
            {
              "description": "U0TXD alias. UART0 transmit output on GPIO1.",
              "signal_class": "digital",
              "direction": "source",
              "name": "U0TXD"
            },
            {
              "description": "SERIAL_TX alias. Primary serial TX alias on GPIO1.",
              "signal_class": "digital",
              "name": "SERIAL_TX",
              "direction": "source"
            },
            {
              "description": "TX alias. UART transmit output on GPIO1.",
              "name": "TX",
              "direction": "source"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "name": "WPU",
              "direction": "bidirectional",
              "description": "WPU alias. Pad has an internal weak pull-up.",
              "signal_class": "digital_pad"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO1 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "io_3v3",
          "description": "GPIO1 / U0TXD. Primary serial transmit; shared with the on-board USB-UART bridge. Strapping behavior: pulled up at boot."
        },
        {
          "description": "GPIO22. Default I2C0_SCL.",
          "power_domain_id": "io_3v3",
          "functions": [
            {
              "description": "I2C clock signal on GPIO22.",
              "name": "i2c_scl",
              "direction": "source"
            },
            {
              "name": "wire_scl",
              "direction": "source",
              "description": "Arduino Wire SCL / I2C clock on GPIO22.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "input_enable"
            },
            {
              "direction": "source",
              "name": "WIRE_SCL",
              "description": "WIRE_SCL alias. Arduino Wire SCL / I2C clock on GPIO22.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "direction": "sink",
              "name": "IE"
            },
            {
              "description": "GPIO22 digital I/O pad.",
              "signal_class": "digital",
              "name": "GPIO Input / Output",
              "direction": "bidirectional"
            },
            {
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad",
              "name": "Open Drain Capability",
              "direction": "source"
            }
          ],
          "connector_type": "pin",
          "name": "Pin 22",
          "id": "pin_22"
        },
        {
          "name": "Pin 23",
          "id": "pin_23",
          "functions": [
            {
              "description": "SPI MOSI signal on GPIO23.",
              "name": "spi_mosi",
              "direction": "source"
            },
            {
              "description": "VSPI MOSI output on GPIO23.",
              "signal_class": "digital",
              "name": "vspi_mosi",
              "direction": "source"
            },
            {
              "direction": "source",
              "name": "wire_mosi",
              "description": "Arduino SPI MOSI alias on GPIO23.",
              "signal_class": "digital"
            },
            {
              "description": "Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "input_enable",
              "direction": "sink"
            },
            {
              "direction": "source",
              "name": "VSPI_MOSI",
              "description": "VSPI_MOSI alias. VSPI MOSI output on GPIO23.",
              "signal_class": "digital"
            },
            {
              "name": "WIRE_MOSI",
              "direction": "source",
              "description": "WIRE_MOSI alias. Arduino SPI MOSI alias on GPIO23.",
              "signal_class": "digital"
            },
            {
              "description": "IE alias. Pad supports input-enable mode.",
              "signal_class": "digital_pad",
              "name": "IE",
              "direction": "sink"
            },
            {
              "name": "GPIO Input / Output",
              "direction": "bidirectional",
              "description": "GPIO23 digital I/O pad.",
              "signal_class": "digital"
            },
            {
              "name": "Open Drain Capability",
              "direction": "source",
              "description": "Pad supports open-drain output mode.",
              "signal_class": "digital_pad"
            }
          ],
          "connector_type": "pin",
          "description": "GPIO23. Default VSPI_MOSI.",
          "power_domain_id": "io_3v3"
        },
        {
          "power_domain_id": "gnd",
          "functions": [
            {
              "description": "Board ground reference.",
              "direction": "bidirectional",
              "name": "ground"
            },
            {
              "direction": "bidirectional",
              "name": "GND",
              "description": "GND alias. Board ground reference.",
              "signal_class": "power"
            }
          ],
          "connector_type": "pin",
          "name": "GND (J3-1)",
          "id": "gnd_j3_1"
        },
        {
          "functions": [
            {
              "description": "Board ground reference.",
              "direction": "bidirectional",
              "name": "ground"
            },
            {
              "name": "GND",
              "direction": "bidirectional",
              "description": "GND alias. Board ground reference.",
              "signal_class": "power"
            }
          ],
          "connector_type": "pin",
          "name": "GND (J3-7)",
          "id": "gnd_j3_7",
          "power_domain_id": "gnd"
        },
        {
          "functions": [
            {
              "direction": "bidirectional",
              "name": "micro_usb",
              "description": "Micro-USB power and USB-UART connector."
            }
          ],
          "connector_type": "micro_usb",
          "name": "Micro-USB",
          "id": "micro_usb",
          "description": "Micro-USB-B receptacle. Carries VBUS (5V) and USB 2.0 Full-Speed D+/D- routed through the on-board USB-to-UART bridge (CP2102N) to U0TXD/U0RXD on the ESP32.",
          "power_domain_id": "usb_5v"
        }
      ],
      "metadata": {
        "package_type": "PCB module / 2x 19-pin 2.54mm headers",
        "supports_usb": true
      },
      "domain": "electrical"
    },
    {
      "metadata": {
        "network_protocols": [
          "wifi",
          "bluetooth"
        ],
        "frequency_bands_ghz": [
          2.4
        ],
        "wireless_standards": [
          "802.11 b/g/n (2.4 GHz)",
          "Bluetooth 4.2 BR/EDR",
          "Bluetooth Low Energy 4.2"
        ]
      },
      "domain": "network",
      "interfaces": [
        {
          "description": "2.4 GHz 802.11 b/g/n. Supports station, soft-AP, and Wi-Fi Direct / ESP-NOW peer roles.",
          "name": "Wi-Fi",
          "id": "wifi_client",
          "protocol": {
            "role": [
              "client",
              "access_point",
              "peer"
            ],
            "type": "wifi"
          },
          "requires": [
            {
              "count": 1,
              "function": "wifi_rf"
            }
          ]
        },
        {
          "description": "Bluetooth 4.2 dual-mode: Classic BR/EDR plus Bluetooth Low Energy.",
          "requires": [
            {
              "function": "bluetooth_rf",
              "count": 1
            }
          ],
          "name": "Bluetooth (Classic + BLE)",
          "id": "bluetooth_peer",
          "protocol": {
            "role": "peer",
            "type": "bluetooth"
          }
        }
      ],
      "resources": [
        {
          "description": "Integrated 802.11 b/g/n radio inside the ESP32-WROOM-32E module. PCB trace antenna on the module.",
          "name": "2.4 GHz Wi-Fi radio (PCB trace antenna)",
          "id": "wifi_radio",
          "functions": [
            {
              "name": "wifi_rf",
              "direction": "bidirectional"
            }
          ],
          "resource_type": "physical_port"
        },
        {
          "resource_type": "physical_port",
          "name": "Bluetooth 4.2 dual-mode radio",
          "id": "bluetooth_radio",
          "functions": [
            {
              "direction": "bidirectional",
              "name": "bluetooth_rf"
            }
          ],
          "description": "Integrated Bluetooth 4.2 BR/EDR + BLE radio inside the ESP32-WROOM-32E module. Shares the PCB trace antenna with Wi-Fi."
        }
      ]
    },
    {
      "interfaces": [],
      "domain": "thermal",
      "operating_temperature_C": [
        -40,
        85
      ],
      "resources": []
    },
    {
      "dimensions_mm": {
        "width": 27.9,
        "length": 54.4,
        "height": 13
      },
      "resources": [],
      "interfaces": [],
      "domain": "mechanical"
    }
  ],
  "artifacts": [
    {
      "name": "ESP32-DevKitC V4 user guide (Espressif)",
      "id": "art_user_guide",
      "url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html",
      "type": "link"
    },
    {
      "url": "https://dl.espressif.com/dl/schematics/esp32_devkitc_v4_sch.pdf",
      "type": "datasheet",
      "name": "ESP32-DevKitC V4 schematic (PDF)",
      "id": "art_schematic"
    },
    {
      "name": "ESP32-DevKitC V4 PCB layout (PDF)",
      "id": "art_pcb_layout",
      "url": "https://dl.espressif.com/dl/schematics/esp32_devkitc_v4_pcb_layout.pdf",
      "type": "datasheet"
    },
    {
      "name": "ESP32-DevKitC V4 dimensions (PDF)",
      "id": "art_dimensions",
      "url": "https://dl.espressif.com/dl/schematics/esp32_devkitc_v4_dimensions.pdf",
      "type": "datasheet"
    },
    {
      "type": "datasheet",
      "url": "https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf",
      "name": "ESP32-WROOM-32E datasheet (PDF)",
      "id": "art_module_datasheet"
    },
    {
      "type": "image",
      "storagePath": "protoparts/esp32-devkitc-v4/artifacts/art_product_image.jpg",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-devkitc-v4/artifacts/art_product_image.jpg",
      "mimeType": "image/jpeg",
      "size": 161200,
      "name": "ESP32-DEVKITC-32E product photo",
      "id": "art_product_image"
    },
    {
      "url": "https://www.espressif.com/en/products/devkits/esp32-devkitc/overview",
      "type": "link",
      "name": "Espressif product page",
      "id": "art_product_page"
    },
    {
      "name": "Espressif ESP32-DevKitC V4 thumbnail",
      "id": "art_thumbnail",
      "type": "image",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-devkitc-v4/thumbnail.png"
    }
  ],
  "previewArtifactId": "art_thumbnail",
  "metadata": {
    "name": "Espressif ESP32-DevKitC V4",
    "version": "1.0",
    "part_number": "ESP32-DevKitC-V4",
    "datasheet_url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html",
    "description": "Espressif's reference ESP32 development board. Hosts an ESP32-WROOM-32E module (Xtensa LX6 dual-core 240 MHz, 4 MB flash, 2.4 GHz Wi-Fi + Bluetooth 4.2 dual-mode) on a 54.4 x 27.9 mm breakout PCB. Exposes 38 pins on two 19-pin 2.54 mm headers (J2/J3), a Micro-USB port wired to a USB-to-UART bridge (CP2102N) for power and programming, and EN (reset) + BOOT (download) push-buttons. Breadboard-friendly footprint.",
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/esp32-devkitc-v4/thumbnail.png",
    "taxonomy": [
      "microcontroller.development_board",
      "connectivity.wireless"
    ],
    "id": "esp32-devkitc-v4",
    "schema_version": "1.5.0",
    "type": "mcu_dev_board",
    "manufacturer": "Espressif Systems",
    "tags": [
      "esp32",
      "esp32-wroom-32e",
      "dev-board",
      "wifi",
      "bluetooth",
      "ble",
      "micro-usb",
      "xtensa",
      "dual-core"
    ]
  }
}