{
  "metadata": {
    "schema_version": "1.5.0",
    "id": "rev-21-2998-maxswerve-spark-max-mount",
    "name": "3in MAXSwerve Module - SPARK MAX Mounting Bracket",
    "type": "bracket",
    "manufacturer": "REV Robotics",
    "part_number": "REV-21-2998",
    "datasheet_url": "https://docs.revrobotics.com/ion-build/build-guides/maxswerve-module-assembly/maxswerve-spark-max-mounting-bracket-assembly",
    "description": "Reversible bracket for mounting a SPARK MAX motor controller (REV-11-2158) to any corner of a 3in MAXSwerve drivetrain module (REV-21-3005). The bracket slides over the MAXSwerve module's mounting tabs and is secured together with the inserted 2x1 MAXTube using two 3in #10-32 socket/button head cap screws and #10-32 Nylock nuts (REV-29-2934 + REV-29-1016). An optional fourth #10-32 clearance hole lets teams fasten the bracket directly to the module with a #10-32 3/8in button-head cap screw (REV-29-1221; threadlocker recommended). The SPARK MAX is zip-tie anchored to the bracket. Reversible to suit any corner of the drivetrain.",
    "version": "1.0",
    "taxonomy": [
      "robotics.frc",
      "mechanical.mounting"
    ],
    "tags": [
      "maxswerve",
      "spark-max",
      "bracket",
      "mount",
      "2x1-maxtube",
      "#10-32",
      "rev",
      "rev-ion",
      "FRC",
      "reversible"
    ],
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/rev-21-2998-maxswerve-spark-max-mount/thumbnail.png"
  },
  "domains": [
    {
      "domain": "mechanical",
      "package_type": "sheet_metal_bracket",
      "metadata": {
        "mounting_method": "Slides over MAXSwerve module tabs; fastened with 2x #10-32 SHCS + Nylock nuts through 2x1 MAXTube and module, plus optional 4th #10-32 hole directly into the module.",
        "field_serviceable": true,
        "requires_special_tools": false
      },
      "resources": [
        {
          "id": "maxtube_mounting_holes",
          "name": "MAXTube Mounting Holes",
          "connector_type": "through_hole",
          "description": "Two #10-32 clearance holes used to fasten the bracket and an inserted 2x1 MAXTube to the MAXSwerve module corner. The bracket slides over the module's mounting tabs, then 2x 3in #10-32 socket/button head cap screws (REV-29-2934) pass through and are captured with #10-32 Nylock nuts (REV-29-1016). Mirrors the #10-32 mount convention of the MAXSwerve module (REV-21-3005) and 2x1 MAXTube. Per R-M-001/R-G-002, exact per-hole XY coordinates are not emitted because no dimensioned drawing for this variant publishes them.",
          "functions": [
            {
              "name": "Frame Mounting",
              "description": "Through-hole bolt-down mounting feature (2x #10-32 clearance holes) that fastens the bracket plus 2x1 MAXTube frame member to the MAXSwerve module corner using #10-32 SHCS + Nylock nuts.",
              "direction": "sink",
              "signal_class": "mechanical_drive",
              "shareable_with": []
            }
          ]
        },
        {
          "id": "maxswerve_mounting_hole",
          "name": "MAXSwerve Mounting Hole",
          "connector_type": "through_hole",
          "description": "Optional fourth #10-32 clearance hole that secures the bracket directly to the MAXSwerve module. Teams use a #10-32 3/8in button-head socket cap screw (REV-29-1221) here; REV recommends threadlocker. Optional reinforcement feature. Exact position not published in a dimensioned drawing; coordinates unconfirmed and not emitted.",
          "functions": [
            {
              "name": "Module Mounting",
              "description": "Through-hole fastening point (1x #10-32 clearance hole) that anchors the bracket directly to the MAXSwerve module with a #10-32 3/8in button-head cap screw.",
              "direction": "sink",
              "signal_class": "mechanical_drive",
              "shareable_with": []
            }
          ]
        },
        {
          "id": "spark_max_controller_mount",
          "name": "SPARK MAX Controller Mount",
          "connector_type": "through_hole",
          "description": "Zip-tie anchor feature on the bracket that accepts and retains the SPARK MAX motor controller (REV-11-2158). The SPARK MAX is anchored to this face with zip ties, holding the controller at the MAXSwerve corner. Anchor-point pattern/count for the SPARK MAX is not called out in a dimensioned drawing for this variant; coordinates unconfirmed and not emitted.",
          "functions": [
            {
              "name": "Zip-Tie Anchoring",
              "description": "Zip-tie anchoring feature that accepts and retains a SPARK MAX motor controller (REV-11-2158) secured to the bracket with zip ties.",
              "direction": "source",
              "signal_class": "mechanical_drive",
              "shareable_with": []
            }
          ]
        }
      ],
      "interfaces": [
        {
          "id": "through_hole_mounting",
          "name": "Through Hole Mounting",
          "protocol": {
            "type": "threaded_connection",
            "role": "structural_support"
          },
          "requires": [
            {
              "function": "Frame Mounting",
              "count": 1
            },
            {
              "function": "Module Mounting",
              "count": 1
            }
          ],
          "max_instances": 1,
          "description": "Through-hole fastening of the bracket to the drivetrain. Fastens the bracket plus an inserted 2x1 MAXTube to a MAXSwerve module corner using 2x 3in #10-32 socket/button head cap screws (REV-29-2934) and 2x #10-32 Nylock nuts (REV-29-1016), and optionally anchors directly to the module with a #10-32 3/8in button-head cap screw (REV-29-1221, threadlocker recommended). The bracket slides over the module mounting tabs first. Reversible for any corner of the MAXSwerve drivetrain. #10-32 hardware mirrors the MAXSwerve module (REV-21-3005) chassis-mount and 2x1 MAXTube ION mount conventions."
        },
        {
          "id": "controller_mount",
          "name": "Controller Mount",
          "protocol": {
            "type": "mechanical_connection",
            "role": "mounting_point"
          },
          "requires": [
            {
              "function": "Zip-Tie Anchoring",
              "count": 1
            }
          ],
          "max_instances": 1,
          "description": "Receives and retains a SPARK MAX motor controller (REV-11-2158) zip-tie anchored to the bracket face. This is the bracket's primary purpose: positioning a SPARK MAX at a MAXSwerve drivetrain corner."
        }
      ]
    }
  ],
  "usage_notes": "Mounts a SPARK MAX motor controller (REV-11-2158) to any corner of a 3in MAXSwerve drivetrain (REV-21-3005). To install: insert a 2x1 MAXTube into the module's mounting slot, slide the bracket over the module tabs, then fasten through with 2x 3in #10-32 cap screws (REV-29-2934) and 2x #10-32 Nylock nuts (REV-29-1016). Optionally add a #10-32 3/8in button-head screw (REV-29-1221) through the fourth hole directly into the module (threadlocker recommended). The bracket is reversible so the same part works on every corner.",
  "warnings": [
    "Use threadlocker on the optional fourth screw that fastens the bracket directly to the module, per REV documentation.",
    "Sold as a dropdown variant of the MAXSwerve Spare Parts listing; confirm SKU REV-21-2998 is selected when ordering."
  ],
  "node_geometry": {
    "xScale": 1,
    "yScale": 1,
    "outline": {
      "preset": "rounded_rectangle"
    }
  },
  "artifacts": [
    {
      "id": "art_thumbnail",
      "name": "Thumbnail",
      "type": "image",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/rev-21-2998-maxswerve-spark-max-mount/thumbnail.png"
    },
    {
      "id": "art_build_guide",
      "name": "MAXSwerve SPARK MAX Mounting Bracket Assembly (build guide)",
      "type": "link",
      "url": "https://docs.revrobotics.com/ion-build/build-guides/maxswerve-module-assembly/maxswerve-spark-max-mounting-bracket-assembly"
    },
    {
      "id": "art_product_page",
      "name": "REV Robotics Product Page (MAXSwerve Spare Parts)",
      "type": "link",
      "url": "https://www.revrobotics.com/MAXSwerve-Spare-Parts/"
    },
    {
      "id": "art_image_installed",
      "name": "Bracket Installed on MAXSwerve Corner",
      "type": "image",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/rev-21-2998-maxswerve-spark-max-mount/artifacts/art_image_installed.jpg",
      "storagePath": "protoparts/rev-21-2998-maxswerve-spark-max-mount/artifacts/art_image_installed.jpg",
      "mimeType": "image/jpeg",
      "size": 2631392
    },
    {
      "id": "art_image_fourth_hole",
      "name": "Optional Fourth Mounting Hole Detail",
      "type": "image",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/rev-21-2998-maxswerve-spark-max-mount/artifacts/art_image_fourth_hole.jpg",
      "storagePath": "protoparts/rev-21-2998-maxswerve-spark-max-mount/artifacts/art_image_fourth_hole.jpg",
      "mimeType": "image/jpeg",
      "size": 295351
    }
  ],
  "previewArtifactId": "art_thumbnail"
}