{
  "metadata": {
    "id": "micro-dc-motors-12v-gearmotor-encoder-4pk",
    "name": "12V DC Gear Motor with Quadrature Encoder",
    "type": "actuator",
    "description": "High-power 12 V brushed DC gear motors with integrated quadrature Hall encoder and 6-wire harness. Typical 37 mm-class gearbox with 6 mm D-shaft.",
    "manufacturer": "Micro DC Motors",
    "part_number": "NFP-JGB37-3530-EN",
    "datasheet_url": "https://microdcmotors.com/product/12v-24v-mini-geared-dc-motor-with-encoder-model-nfp-jgb37-3530-en",
    "tags": [
      "dc-motor",
      "gearmotor",
      "quadrature-encoder",
      "12v",
      "hall"
    ],
    "schema_version": "1.4.0",
    "version": "1.1.0",
    "taxonomy": [
      "actuator.motor.dc_motor",
      "sensor.encoder"
    ]
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "motor_bus",
          "name": "Motor Supply",
          "nominal_voltage_V": 12,
          "voltage_range_V": [
            9,
            14
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "isolated",
          "description": "Brushed DC motor supply rail"
        },
        {
          "id": "encoder_vcc",
          "name": "Encoder Logic Supply",
          "nominal_voltage_V": 5,
          "voltage_range_V": [
            3.3,
            5
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Hall encoder logic supply"
        }
      ],
      "resources": [
        {
          "id": "harness_6wire",
          "name": "6-wire harness",
          "description": "Color-coded pigtail: Red, Black, Green, Blue, Yellow, White",
          "functions": [
            {
              "name": "MOTOR_POS",
              "description": "Motor terminal + (red)",
              "direction": "sink",
              "shareable_with": [],
              "signal_class": "power"
            },
            {
              "name": "MOTOR_NEG",
              "description": "Motor terminal − (black)",
              "direction": "sink",
              "shareable_with": [],
              "signal_class": "power"
            },
            {
              "name": "ENC_GND",
              "description": "Encoder ground (green)",
              "direction": "sink",
              "shareable_with": [],
              "signal_class": "ground"
            },
            {
              "name": "ENC_VCC",
              "description": "Encoder Vcc 3.3–5 V (blue)",
              "direction": "sink",
              "shareable_with": [],
              "signal_class": "power"
            },
            {
              "name": "ENC_A",
              "description": "Encoder channel A (yellow)",
              "direction": "source",
              "shareable_with": [],
              "signal_class": "sense"
            },
            {
              "name": "ENC_B",
              "description": "Encoder channel B (white)",
              "direction": "source",
              "shareable_with": [],
              "signal_class": "sense"
            }
          ],
          "power_domain_id": "motor_bus",
          "connector_type": "cable"
        }
      ],
      "interfaces": [
        {
          "id": "dc_motor_drive",
          "name": "Brushed DC Motor Drive",
          "protocol": {
            "type": "dc_motor",
            "role": "device"
          },
          "requires": [
            {
              "function": "MOTOR_POS",
              "count": 1
            },
            {
              "function": "MOTOR_NEG",
              "count": 1
            }
          ],
          "description": "Connect to H-bridge or motor driver capable of bidirectional 12 V operation"
        },
        {
          "id": "quadrature_encoder",
          "name": "Quadrature Encoder",
          "protocol": {
            "type": "quadrature",
            "role": "device"
          },
          "requires": [
            {
              "function": "ENC_VCC",
              "count": 1
            },
            {
              "function": "ENC_GND",
              "count": 1
            },
            {
              "function": "ENC_A",
              "count": 1
            },
            {
              "function": "ENC_B",
              "count": 1
            }
          ],
          "constraints": {
            "logic_levels_V": [
              0,
              5
            ],
            "nominal_cpr_motor_shaft": 16
          },
          "description": "Hall-effect AB encoder; counts per output shaft depend on gear ratio"
        }
      ],
      "supply_voltage_V": [
        9,
        14
      ],
      "metadata": {
        "supports_hot_plug": false
      }
    },
    {
      "domain": "mechanical",
      "resources": [
        {
          "id": "output_shaft",
          "name": "Output D-shaft",
          "description": "Primary output shaft for coupling",
          "functions": [
            {
              "name": "ROTARY_OUTPUT",
              "description": "Delivers torque/speed from gearbox",
              "direction": "source",
              "shareable_with": [],
              "signal_class": "mechanical_drive"
            }
          ],
          "connector_type": "d_shaft"
        }
      ],
      "interfaces": [
        {
          "id": "rotary_output",
          "name": "Rotary Output",
          "protocol": {
            "type": "mechanical_rotation",
            "role": "actuator"
          },
          "requires": [
            {
              "function": "ROTARY_OUTPUT",
              "count": 1
            }
          ],
          "constraints": {
            "shaft_diameter_mm": 6
          }
        }
      ],
      "dimensions_mm": {
        "diameter": 37,
        "length": 53
      },
      "metadata": {
        "mounting_method": "face_mount_M3",
        "enclosure_type": "metal_gearmotor"
      }
    }
  ],
  "design_rules": [
    "Share ground between encoder and controller",
    "Do not power encoder from the motor supply",
    "Twist encoder A/B with ground and keep away from motor leads",
    "Use flyback diodes or appropriate H-bridge with diodes"
  ],
  "usage_notes": "Typical encoder 16 CPR on motor shaft; output CPR equals gear ratio × 16 × 4 for quadrature edges. Many 37 mm motors draw >5 A at stall; size driver accordingly.",
  "application_examples": [
    "Robotics drive modules",
    "Closed-loop speed control",
    "Two-wheel balancing robots",
    "Line followers"
  ],
  "warnings": [
    "Reverse-polarity on encoder Vcc will damage the sensor",
    "Do not exceed 14 V on motor unless specified by vendor",
    "Support motor to avoid encoder damage from axial loads"
  ]
}