{
  "schema": 1,
  "submitted_date": "2026-05-05",
  "device": {
    "vid": "045e",
    "pid": "001b",
    "name": "Microsoft SideWinder Force Feedback 2",
    "axes": 4,
    "buttons": 8,
    "povs": 1,
    "ff_sample_period_us": 1000000,
    "ff_min_time_resolution_us": 1000000,
    "firmware_revision": "0x0000",
    "hardware_revision": "0x001B",
    "ff_driver_version": "0x0001",
    "capability_flags": "DIDC_ATTACHED | DIDC_EMULATED | DIDC_FORCEFEEDBACK | DIDC_FFATTACK | DIDC_FFFADE | DIDC_SATURATION | DIDC_DEADBAND",
    "supported_effects": [
      {
        "name": "Constant Force",
        "type_flags": "DIEFT_CONSTANTFORCE | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Ramp Force",
        "type_flags": "DIEFT_RAMPFORCE | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Square",
        "type_flags": "DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Sine",
        "type_flags": "DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Triangle",
        "type_flags": "DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Sawtooth Up",
        "type_flags": "DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Sawtooth Down",
        "type_flags": "DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY"
      },
      {
        "name": "Spring",
        "type_flags": "DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY"
      },
      {
        "name": "Damper",
        "type_flags": "DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY"
      },
      {
        "name": "Inertia",
        "type_flags": "DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY"
      },
      {
        "name": "Friction",
        "type_flags": "DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY"
      },
      {
        "name": "Custom Force",
        "type_flags": "DIEFT_CUSTOMFORCE | SATURATION | DEADBAND | STARTDELAY"
      }
    ]
  },
  "os": {
    "family": "Windows",
    "version": "Microsoft Windows NT 10",
    "build": "Microsoft Windows NT 10.0.26200.0",
    "architecture": "X64",
    "dotnet_runtime": ".NET 10.0.7"
  },
  "probe_version": "0.8.2-beta.1",
  "responses": [
    {
      "effect": "Polarity sweep — DI east (0°)",
      "labels": ["Pulled back", "Strong pull"],
      "notes": null
    },
    {
      "effect": "Polarity sweep — DI south (90°)",
      "labels": ["Pulled left"],
      "notes": null
    },
    {
      "effect": "Polarity sweep — DI west (180°)",
      "labels": ["Pulled forward"],
      "notes": null
    },
    {
      "effect": "Polarity sweep — DI north (270°)",
      "labels": ["Pulled right"],
      "notes": "Slight overshoot before settling — feels stronger than the south direction"
    },
    {
      "effect": "Two-axis diagonal — diagonal (X=75%, Y=75%)",
      "labels": ["Pulled diagonally"],
      "notes": null
    },
    {
      "effect": "Square",
      "labels": ["Sharp pulses", "Fast", "Strong"],
      "notes": null
    },
    {
      "effect": "Sine",
      "labels": ["Smooth oscillation", "Rocking back and forth"],
      "notes": null
    },
    {
      "effect": "Triangle",
      "labels": ["Smooth oscillation", "Slow"],
      "notes": null
    },
    {
      "effect": "Sawtooth Up",
      "labels": ["Asymmetric ramp pulses", "Repeated ramping"],
      "notes": null
    },
    {
      "effect": "Sawtooth Down",
      "labels": ["Asymmetric ramp pulses"],
      "notes": null
    },
    {
      "effect": "Spring",
      "labels": ["Centered", "Returns to center", "Strong spring"],
      "notes": null
    },
    {
      "effect": "Damper",
      "labels": ["Damped", "Resists motion"],
      "notes": null
    },
    {
      "effect": "Inertia",
      "labels": ["Heavy", "Lagging"],
      "notes": null
    },
    {
      "effect": "Friction",
      "labels": ["Sticky", "Drag"],
      "notes": null
    },
    {
      "effect": "Saturation — 1 co-directional constants",
      "labels": ["Pulled diagonally", "Soft pull"],
      "notes": null
    },
    {
      "effect": "Saturation — 2 co-directional constants",
      "labels": ["Pulled diagonally", "Strong pull"],
      "notes": null
    },
    {
      "effect": "Saturation — 3 co-directional constants",
      "labels": ["Pulled diagonally", "Strong pull"],
      "notes": "Reached the actuator's apparent ceiling around step 3"
    }
  ],
  "diagnostics": {
    "public_db_note": "These fields are kept for FFB-Bridge internal triage and are NOT displayed on the public hardware page. None of the values are PII.",
    "per_effect": [
      {
        "effect": "Square",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Sine",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Triangle",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Sawtooth Up",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Sawtooth Down",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Spring",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Damper",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Inertia",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Friction",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      }
    ],
    "failed_effects": [],
    "errors": []
  }
}