{
  "metadata": {
    "id": "arduino-uno-r4-wifi",
    "name": "Arduino Uno R4 WiFi",
    "type": "microcontroller",
    "description": "Arduino Uno R4 WiFi microcontroller development board with Renesas RA4M1 and ESP32-S3 WiFi module. Modern Arduino Uno form factor with wireless connectivity.",
    "manufacturer": "Arduino",
    "part_number": "ABX00087",
    "datasheet_url": "https://docs.arduino.cc/resources/datasheets/ABX00087-datasheet.pdf",
    "tags": [
      "mcu",
      "board",
      "5v",
      "usb",
      "wifi",
      "bluetooth",
      "renesas",
      "esp32",
      "arduino",
      "microcontroller",
      "wireless"
    ],
    "schema_version": "1.4.0",
    "version": "0.3.0",
    "taxonomy": [
      "microcontroller.arduino",
      "connectivity.wireless"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "vin",
          "name": "VIN (Raw Input)",
          "nominal_voltage_V": 12,
          "voltage_range_V": [
            6,
            24
          ],
          "voltage_tolerance_percent": 10,
          "max_current_mA": 500,
          "regulation_type": "unregulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "efficiency_percent": 90,
          "voltage_ripple_mV": 50,
          "compatible_domains": [],
          "description": "External power input through barrel jack or VIN pin"
        },
        {
          "id": "usb_5v",
          "name": "USB 5V",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            4.5,
            5.5
          ],
          "voltage_tolerance_percent": 10,
          "max_current_mA": 500,
          "regulation_type": "regulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "efficiency_percent": 90,
          "voltage_ripple_mV": 50,
          "compatible_domains": [],
          "description": "USB-supplied power with built-in protection"
        },
        {
          "id": "regulated_5v",
          "name": "Regulated 5V",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            4.8,
            5.2
          ],
          "voltage_tolerance_percent": 4,
          "max_current_mA": 800,
          "regulation_type": "regulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "efficiency_percent": 90,
          "voltage_ripple_mV": 10,
          "compatible_domains": [
            "usb_5v"
          ],
          "description": "Regulated 5V output for powering external components"
        },
        {
          "id": "regulated_3v3",
          "name": "Regulated 3.3V",
          "nominal_voltage_V": 3.3,
          "voltage_range_V": [
            3.1,
            3.5
          ],
          "voltage_tolerance_percent": 6,
          "max_current_mA": 800,
          "regulation_type": "regulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "efficiency_percent": 85,
          "voltage_ripple_mV": 5,
          "compatible_domains": [
            "regulated_5v"
          ],
          "description": "3.3V output for ESP32-S3 and Qwiic connector"
        },
        {
          "id": "digital_io",
          "name": "Digital I/O",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            4.5,
            5.5
          ],
          "voltage_tolerance_percent": 10,
          "max_current_mA": 40,
          "regulation_type": "regulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "compatible_domains": [
            "regulated_5v"
          ],
          "description": "5V logic level for digital I/O pins"
        },
        {
          "id": "analog_ref",
          "name": "Analog Reference",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            1.1,
            5.5
          ],
          "voltage_tolerance_percent": 1,
          "max_current_mA": 1,
          "regulation_type": "regulated",
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "compatible_domains": [
            "regulated_5v"
          ],
          "description": "Precision reference for ADC measurements"
        }
      ],
      "resources": [
        {
          "id": "vin",
          "functions": [
            {
              "name": "power_input"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "vin",
          "description": "External power input pin"
        },
        {
          "id": "usb_5v",
          "functions": [
            {
              "name": "power_input"
            }
          ],
          "connector_type": "usb",
          "power_domain_id": "usb_5v",
          "description": "USB power input"
        },
        {
          "id": "5v_out",
          "functions": [
            {
              "name": "power_output"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "regulated_5v",
          "voltage_output_V": 5,
          "max_continuous_current_mA": 800,
          "description": "5V power output pin"
        },
        {
          "id": "3v3_out",
          "functions": [
            {
              "name": "power_output"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "regulated_3v3",
          "voltage_output_V": 3.3,
          "max_continuous_current_mA": 800,
          "description": "3.3V power output pin"
        },
        {
          "id": "gnd1",
          "functions": [
            {
              "name": "ground"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "regulated_5v",
          "description": "Ground pin 1"
        },
        {
          "id": "gnd2",
          "functions": [
            {
              "name": "ground"
            }
          ],
          "connector_type": "pin",
          "power_domain_id": "regulated_3v3",
          "description": "Ground pin 2"
        }
      ],
      "interfaces": [
        {
          "id": "power_output",
          "protocol": {
            "type": "power",
            "role": "output"
          },
          "requires": [
            {
              "function": "power_output",
              "count": 1
            },
            {
              "function": "ground",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 10,
            "requires_matching_voltage_domain": false
          },
          "power_delivery": {
            "max_voltage_V": 5,
            "max_current_mA": 800,
            "efficiency_percent": 90,
            "regulation_tolerance_percent": 4,
            "ripple_voltage_mV": 10
          },
          "description": "Power supply output interface",
          "name": "Power Output"
        },
        {
          "id": "digital_output",
          "protocol": {
            "type": "digital",
            "role": "transmitter"
          },
          "requires": [
            {
              "function": "digital_io",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "Digital output interface",
          "name": "Digital Output"
        },
        {
          "id": "digital_input",
          "protocol": {
            "type": "digital",
            "role": "receiver"
          },
          "requires": [
            {
              "function": "digital_io",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "Digital input interface",
          "name": "Digital Input"
        },
        {
          "id": "analog_input",
          "protocol": {
            "type": "analog",
            "role": "receiver"
          },
          "requires": [
            {
              "function": "analog_input",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "Analog input interface",
          "name": "Analog Input"
        },
        {
          "id": "analog_output",
          "protocol": {
            "type": "analog",
            "role": "transmitter"
          },
          "requires": [
            {
              "function": "analog_output",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "Analog output interface (DAC)",
          "name": "Analog Output"
        },
        {
          "id": "i2c_master",
          "protocol": {
            "type": "i2c",
            "role": "master"
          },
          "requires": [
            {
              "function": "i2c_sda",
              "count": 1
            },
            {
              "function": "i2c_scl",
              "count": 1
            }
          ],
          "exclusive": false,
          "protocol_max_freq_Hz": 400000,
          "pullups_on_master": false,
          "supports_clock_stretching": true,
          "constraints": {
            "max_connections": 8,
            "requires_matching_voltage_domain": true
          },
          "description": "I2C master communication interface",
          "name": "I2C Master"
        },
        {
          "id": "spi_master",
          "protocol": {
            "type": "spi",
            "role": "master"
          },
          "requires": [
            {
              "function": "spi_mosi",
              "count": 1
            },
            {
              "function": "spi_miso",
              "count": 1
            },
            {
              "function": "spi_sck",
              "count": 1
            },
            {
              "function": "spi_ss",
              "count": 1
            }
          ],
          "exclusive": false,
          "protocol_max_freq_Hz": 8000000,
          "constraints": {
            "max_connections": 8,
            "requires_matching_voltage_domain": true
          },
          "description": "SPI master communication interface",
          "name": "SPI Master"
        },
        {
          "id": "uart_transmitter",
          "protocol": {
            "type": "uart",
            "role": "transmitter"
          },
          "requires": [
            {
              "function": "uart_tx",
              "count": 1
            }
          ],
          "protocol_max_freq_Hz": 115200,
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "UART transmitter interface",
          "name": "UART Transmitter"
        },
        {
          "id": "uart_receiver",
          "protocol": {
            "type": "uart",
            "role": "receiver"
          },
          "requires": [
            {
              "function": "uart_rx",
              "count": 1
            }
          ],
          "protocol_max_freq_Hz": 115200,
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true
          },
          "description": "UART receiver interface",
          "name": "UART Receiver"
        },
        {
          "id": "wifi_client",
          "protocol": {
            "type": "wifi",
            "role": "client"
          },
          "requires": [
            {
              "function": "wifi_antenna",
              "count": 1
            }
          ],
          "exclusive": false,
          "protocol_max_freq_Hz": 2400000000,
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": false
          },
          "description": "WiFi client interface",
          "name": "Wifi Client"
        },
        {
          "id": "bluetooth_client",
          "protocol": {
            "type": "bluetooth",
            "role": "client"
          },
          "requires": [
            {
              "function": "bluetooth_antenna",
              "count": 1
            }
          ],
          "exclusive": false,
          "protocol_max_freq_Hz": 2400000000,
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": false
          },
          "description": "Bluetooth client interface",
          "name": "Bluetooth Client"
        }
      ],
      "supply_voltage_V": [
        6,
        24
      ],
      "power_consumption_mW": 800,
      "pin_count": 30,
      "metadata": {
        "supports_usb": true,
        "supports_hot_plug": true,
        "max_operating_freq_Hz": 48000000,
        "emc_compliance": [
          "CE",
          "FCC"
        ],
        "safety_standards": [
          "UL",
          "CSA"
        ],
        "package_type": "PCB Module"
      }
    },
    {
      "domain": "mechanical",
      "resources": [
        {
          "id": "mount_hole_1",
          "functions": [
            {
              "name": "mounting_hole"
            }
          ],
          "connector_type": "through_hole",
          "hole_diameter_mm": 3.2,
          "thread_spec": "M3",
          "max_force_N": 50,
          "description": "Top-left mounting hole"
        },
        {
          "id": "mount_hole_2",
          "functions": [
            {
              "name": "mounting_hole"
            }
          ],
          "connector_type": "through_hole",
          "hole_diameter_mm": 3.2,
          "thread_spec": "M3",
          "max_force_N": 50,
          "description": "Top-right mounting hole"
        },
        {
          "id": "mount_hole_3",
          "functions": [
            {
              "name": "mounting_hole"
            }
          ],
          "connector_type": "through_hole",
          "hole_diameter_mm": 3.2,
          "thread_spec": "M3",
          "max_force_N": 50,
          "description": "Bottom-left mounting hole"
        },
        {
          "id": "mount_hole_4",
          "functions": [
            {
              "name": "mounting_hole"
            }
          ],
          "connector_type": "through_hole",
          "hole_diameter_mm": 3.2,
          "thread_spec": "M3",
          "max_force_N": 50,
          "description": "Bottom-right mounting hole"
        }
      ],
      "interfaces": [
        {
          "id": "pcb_mounting",
          "protocol": {
            "type": "threaded_connection",
            "role": "mounting_point"
          },
          "requires": [
            {
              "function": "mounting_hole",
              "count": 4
            }
          ],
          "connection_type": "removable",
          "installation_torque_Nm": 0.3,
          "working_load_N": 200,
          "description": "PCB mounting interface using 4 corner holes",
          "name": "PCB Mounting"
        }
      ],
      "package_type": "PCB Module",
      "dimensions_mm": {
        "length": 68.6,
        "width": 53.4,
        "height": 12
      },
      "weight_g": 30,
      "mount_holes": [
        {
          "x": 3.2,
          "y": 3.2,
          "diam_mm": 3.2
        },
        {
          "x": 65.4,
          "y": 3.2,
          "diam_mm": 3.2
        },
        {
          "x": 3.2,
          "y": 50.2,
          "diam_mm": 3.2
        },
        {
          "x": 65.4,
          "y": 50.2,
          "diam_mm": 3.2
        }
      ],
      "metadata": {
        "mounting_method": "through_hole",
        "enclosure_type": "open_pcb",
        "assembly_time_min": 5,
        "field_serviceable": true
      }
    },
    {
      "domain": "thermal",
      "resources": [],
      "interfaces": [],
      "operating_temperature_C": [
        0,
        60
      ],
      "metadata": {
        "thermal_design_power_W": 0.8,
        "requires_thermal_management": false,
        "thermal_monitoring_available": false,
        "cooling_method": "passive"
      }
    }
  ],
  "design_rules": [
    "Maximum 40mA per I/O pin",
    "Maximum 200mA total I/O current",
    "VIN must be 6-24V when using external power",
    "USB and VIN power sources are mutually exclusive",
    "Do not exceed 5.5V on any I/O pin when powered by USB",
    "Use external pull-up resistors for I2C communication",
    "Ensure proper decoupling capacitors for stable operation",
    "Use level shifting only if interfacing external 3.3V logic to the 5V shield pins",
    "Ensure the WiFi antenna area isn't blocked by metal enclosures"
  ],
  "validation_requirements": [
    "Check power supply compatibility",
    "Verify I/O voltage levels",
    "Validate current limits",
    "Check communication protocol compatibility",
    "Ensure proper grounding",
    "Verify analog reference voltage",
    "Verify the board enumerates as a USB device when connected",
    "Run a simple LED matrix demo to confirm the RA4M1 is running",
    "Use the provided WiFi library to connect to a test network"
  ],
  "usage_notes": "Select 'Arduino UNO R4 WiFi' in the Arduino IDE Board Manager to compile and upload. The ESP32-S3 comes pre-programmed to handle WiFi/Bluetooth. Use libraries like WiFiS3 or ArduinoIoTCloud to leverage wireless capabilities. The 12x8 LED matrix is accessible via Arduino graphics libraries.",
  "application_examples": [
    "IoT sensor hub collecting data and sending to cloud via WiFi",
    "CAN Bus to WiFi gateway for car diagnostics logging",
    "Interactive art or name badges using the LED matrix and WiFi",
    "Small robotic projects that can be controlled over Bluetooth",
    "Home automation prototypes combining sensor inputs and WiFi connectivity"
  ],
  "compatibility_notes": "Electrical pinout and voltage levels mirror the classic Uno, so existing Arduino shields (5V logic) are compatible. Code that directly manipulated AVR registers will not work on the RA4M1. Many popular libraries have been updated for Uno R4, but some less common ones might require manual porting.",
  "warnings": [
    "Avoid shorting the 5V and 3.3V supply pins",
    "Do not exceed 5V on any I/O pin",
    "When using VIN at the upper range, the regulator will handle it but may generate heat",
    "The WiFi module emits radio frequency signals",
    "When connecting to the CAN pins, always use a proper transceiver and wiring",
    "The ESP32-S3 can get warm during network usage"
  ]
}