{
  "metadata": {
    "id": "rev-31-1595-driver-hub",
    "name": "REV Driver Hub",
    "description": "Android-based driver station device with Ethernet networking, USB-C, and three USB 2.0 host ports.",
    "manufacturer": "REV Robotics",
    "part_number": "REV-Driver-Hub",
    "datasheet_url": "https://docs.revrobotics.com/",
    "tags": [
      "driver_hub",
      "usb",
      "ethernet",
      "network"
    ],
    "schema_version": "1.4.0",
    "version": "1.4",
    "taxonomy": [
      "robotics.frc"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "resources": [
        {
          "id": "ethernet",
          "name": "Ethernet Port",
          "description": "Wired network connection to robot or field network.",
          "functions": [
            {
              "name": "ETHERNET_NETWORK",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "rj45"
        },
        {
          "id": "usb_c",
          "name": "USB-C Port",
          "description": "USB-C port used for charging and data.",
          "functions": [
            {
              "name": "USB_C",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "usb_c"
        },
        {
          "id": "usb_2_host_1",
          "name": "USB 2.0 Host 1",
          "description": "USB 2.0 host port for controllers and HID devices.",
          "functions": [
            {
              "name": "USB_2_HOST",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "usb_a"
        },
        {
          "id": "usb_2_host_2",
          "name": "USB 2.0 Host 2",
          "description": "USB 2.0 host port for controllers and HID devices.",
          "functions": [
            {
              "name": "USB_2_HOST",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "usb_a"
        },
        {
          "id": "usb_2_host_3",
          "name": "USB 2.0 Host 3",
          "description": "USB 2.0 host port for controllers and HID devices.",
          "functions": [
            {
              "name": "USB_2_HOST",
              "direction": "bidirectional",
              "signal_class": "data"
            }
          ],
          "connector_type": "usb_a"
        }
      ],
      "interfaces": [
        {
          "id": "ethernet-network",
          "name": "Ethernet Network Interface",
          "protocol": {
            "type": "ethernet",
            "role": "peer"
          },
          "requires": [
            {
              "function": "ETHERNET_NETWORK",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "description": "Wired Ethernet network interface."
        },
        {
          "id": "usb-c-interface",
          "name": "USB-C Interface",
          "protocol": {
            "type": "usb",
            "role": [
              "host",
              "device"
            ]
          },
          "requires": [
            {
              "function": "USB_C",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_connector_type": "usb_c"
          },
          "description": "USB-C interface for charging and data transfer."
        },
        {
          "id": "usb-2.0",
          "name": "USB 2.0 Host Interface 1",
          "protocol": {
            "type": "usb",
            "role": "host"
          },
          "requires": [
            {
              "function": "USB_2_HOST",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 3,
            "requires_connector_type": "usb_a"
          },
          "description": "Three USB 2.0 host ports for controllers and HID devices."
        }
      ],
      "metadata": {
        "supports_usb": true,
        "supports_ethernet": true
      }
    }
  ],
  "usage_notes": "USB 2.0 ports are intended for HID devices such as gamepads. Ethernet is used for robot or field networking. USB-C provides charging and maintenance access.",
  "application_examples": [
    "FTC Driver Station",
    "Robot control interface with multiple USB controllers"
  ],
  "warnings": [
    "USB 2.0 ports are host-only.",
    "USB-C port should not be used as a general USB host for peripherals."
  ]
}