{
  "metadata": {
    "schema_version": "1.4.0",
    "id": "rev-21-1652-neo-vortex-brushless-motor",
    "name": "NEO Vortex Brushless Motor",
    "type": "motor",
    "manufacturer": "REV Robotics",
    "part_number": "REV-21-1652",
    "datasheet_url": "https://www.revrobotics.com/rev-21-1652/",
    "description": "High-power sensored brushless motor with dock interface and 1/2 in hex through-bore rotor.",
    "version": "0.2.0",
    "tags": [
      "brushless",
      "bldc",
      "sensored",
      "frc",
      "rev-ion"
    ]
  },
  "warnings": [
    "Whitelist additions needed: functions phase_c and encoder_index are not present in protopart-whitelist.json; add them to make this part canonical."
  ],
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "sensor_5v",
          "name": "Sensor 5V",
          "nominal_voltage_V": 5,
          "min_voltage_V": 4.5,
          "max_voltage_V": 5.5,
          "max_current_mA": 200
        }
      ],
      "resources": [
        {
          "id": "phase_a",
          "name": "Phase A dock contact",
          "connector_type": "dock_contact",
          "description": "Motor phase A power contact in the dock interface.",
          "functions": [
            {
              "name": "phase_a"
            }
          ]
        },
        {
          "id": "phase_b",
          "name": "Phase B dock contact",
          "connector_type": "dock_contact",
          "description": "Motor phase B power contact in the dock interface.",
          "functions": [
            {
              "name": "phase_b"
            }
          ]
        },
        {
          "id": "phase_c",
          "name": "Phase C dock contact",
          "connector_type": "dock_contact",
          "description": "Motor phase C power contact in the dock interface.",
          "functions": [
            {
              "name": "phase_c"
            }
          ]
        },
        {
          "id": "jst_encoder_connector",
          "name": "JST-PH 6 encoder connector",
          "connector_type": "jst_ph_6",
          "description": "JST-PH 6 encoder connector.",
          "functions": [
            {
              "name": "encoder_connector"
            }
          ]
        }
      ],
      "interfaces": [
        {
          "id": "bldc_phase_dock",
          "name": "Brushless phase dock",
          "protocol": {
            "type": "custom",
            "role": "peer"
          },
          "requires": [
            {
              "function": "phase_a",
              "count": 1
            },
            {
              "function": "phase_b",
              "count": 1
            },
            {
              "function": "phase_c",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_connector_type": "dock_contact"
          },
          "description": "3-phase dock interface to a compatible motor controller (e.g., docked SPARK Flex)."
        },
        {
          "id": "encoder_connector",
          "name": "JST-PH 6 encoder connector",
          "protocol": {
            "type": "custom",
            "role": "peer"
          },
          "requires": [
            {
              "function": "encoder_connector",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_connector_type": "jst_ph_6"
          },
          "description": "6-pin JST-PH sensor connector (via Solo Adapter): 5V/GND, quadrature A/B, index/C, temperature analog."
        }
      ]
    },
    {
      "domain": "mechanical",
      "resources": [
        {
          "id": "mounting_holes_x4",
          "name": "Mounting holes x4",
          "connector_type": "threaded_hole",
          "description": "#10-32 threaded mounting hole (2 in bolt circle).",
          "functions": [
            {
              "name": "mounting_holes_x4"
            }
          ]
        },
        {
          "id": "hex_bore",
          "name": "1/2 in hex rotor bore",
          "connector_type": "custom",
          "description": "1/2 in hex through-bore output interface.",
          "functions": [
            {
              "name": "mechanical_drive"
            }
          ]
        }
      ],
      "interfaces": [
        {
          "id": "face_mount",
          "name": "Face mount",
          "protocol": {
            "type": "mechanical_connection",
            "role": "mounting_point"
          },
          "requires": [
            {
              "function": "mounting_holes_x4",
              "count": 1
            }
          ],
          "max_instances": 1,
          "description": "Mounting pattern: 4x M3 x 25 mm socket head cap screws inserted through counterbored clearance holes; tighten evenly (ideal torque 11.5 ±0.9 in-lb / 1.3 ±0.1 Nm per REV documentation)."
        },
        {
          "id": "rotor_hex_bore",
          "name": "1/2 in hex rotor bore",
          "protocol": {
            "type": "mechanical_connection",
            "role": "custom"
          },
          "requires": [
            {
              "function": "mechanical_drive",
              "count": 1
            }
          ],
          "max_instances": 1,
          "description": "Output rotor interface: 1/2 in hex through-bore."
        }
      ]
    }
  ]
}