FFB-Probe report

Run on 2026-10-03 · probe 1.1.2

Test strength: 75% (default)

This page is a website sample of the full FFB-Probe report. The friendly view below is the easier-to-read form; the JSON payload further down the page is the exact data a real local report submits when you click Share. The sample Share button is disabled here so this demonstration cannot add fake rows to the public database.

Share with the community

Sharing is private and really helps the community. Every real report adds another data point to the public hardware database — what your stick reports, what worked, what didn't.

Device: Microsoft SideWinder Force Feedback 2 045e:001b

Device class
joystick
Axes / buttons / POVs
4 / 8 / 1
FF sample period
1000000 µs
FF time resolution
1000000 µs
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

NameType flags
Constant ForceDIEFT_CONSTANTFORCE | FFATTACK | FFFADE | STARTDELAY
Ramp ForceDIEFT_RAMPFORCE | FFATTACK | FFFADE | STARTDELAY
SquareDIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY
SineDIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY
TriangleDIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY
Sawtooth UpDIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY
Sawtooth DownDIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY
SpringDIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY
DamperDIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY
InertiaDIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY
FrictionDIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY
Custom ForceDIEFT_CUSTOMFORCE | SATURATION | DEADBAND | STARTDELAY

System

Family
Windows
Version
Microsoft Windows NT 10
Build
Microsoft Windows NT 10.0.26200.0
Architecture
X64
.NET runtime
.NET 10.0.7

Responses

EffectLabelsNotes PRIVATE
Polarity sweep — DI north (away) (0°)Pulled back, Strong pull[probe-measured] stick moved during playback (X peak +1.2%, Y peak +71.4% of range; dominant +Y)
Polarity sweep — DI east (right) (90°)Pulled left[probe-measured] stick moved during playback (X peak -68.9%, Y peak +0.8% of range; dominant -X)
Polarity sweep — DI south (toward) (180°)Pulled forward[probe-measured] stick moved during playback (X peak -0.6%, Y peak -73.0% of range; dominant -Y)
Polarity sweep — DI west (left) (270°)Pulled rightSlight overshoot before settling | [probe-measured] stick moved during playback (X peak +70.3%, Y peak -1.1% of range; dominant +X)
Two-axis diagonal — diagonalPulled diagonally[probe-measured] stick moved during playback (X peak -48.7%, Y peak -50.2% of range; dominant -Y)
SquareSharp pulses, Fast, Strong[probe-measured] stick moved during playback (X peak +0.7%, Y peak +34.2% of range; dominant +Y)
SineSmooth oscillation, Rocking back and forth[probe-measured] stick moved during playback (X peak +0.4%, Y peak +22.6% of range; dominant +Y)
TriangleSmooth oscillation, Slow[probe-measured] stick moved during playback (X peak -0.5%, Y peak +19.8% of range; dominant +Y)
Sawtooth UpAsymmetric ramp pulses, Repeated ramping[probe-measured] stick moved during playback (X peak +0.6%, Y peak +27.3% of range; dominant +Y)
Sawtooth DownAsymmetric ramp pulses[probe-measured] stick moved during playback (X peak -0.4%, Y peak -26.1% of range; dominant -Y)
SpringCentered, Returns to center, Strong spring[probe-measured] no motion at rest (X peak +0.3%, Y peak -0.2% of range) — expected for a condition effect unless the stick is deflected
DamperDamped, Resists motion[probe-measured] no motion at rest (X peak 0.0%, Y peak +0.1% of range) — expected for a condition effect unless the stick is deflected
InertiaHeavy, Lagging[probe-measured] no motion at rest (X peak -0.2%, Y peak 0.0% of range) — expected for a condition effect unless the stick is deflected
FrictionSticky, Drag[probe-measured] no motion at rest (X peak +0.1%, Y peak +0.3% of range) — expected for a condition effect unless the stick is deflected
Ramp sweep — DI north (away) (0°)Built up gradually, Pulled back[probe-measured] stick moved during playback (X peak +0.9%, Y peak +64.8% of range; dominant +Y)
Ramp sweep — DI east (right) (90°)Built up gradually, Pulled left[probe-measured] stick moved during playback (X peak -61.5%, Y peak +0.4% of range; dominant -X)
Saturation — 1 co-directional constantsPulled back, Soft pull—
Saturation — 2 co-directional constantsPulled back, Strong pull—
Saturation — 3 co-directional constantsPulled back, Strong pullNo firmer than step 2

The Notes column is the one field on this report that is not uploaded to the public hardware database. Everything else on this page — capability flags, supported effects, chip labels, HRESULT codes, failed effects, run errors — appears on ffb-probe.com/db exactly as printed here.

Diagnostics

Diagnostics are public on the device page. They use closed result names and path-redacted errors; free-text response notes stay server-side.

Per-effect HRESULTs

EffectCreatePlayStop
Polarity sweep — DI north (away) (0°)OKOKOK
Polarity sweep — DI east (right) (90°)OKOKOK
Polarity sweep — DI south (toward) (180°)OKOKOK
Polarity sweep — DI west (left) (270°)OKOKOK
Two-axis diagonal — diagonalOKOKOK
SquareOKOKOK
SineOKOKOK
TriangleOKOKOK
Sawtooth UpOKOKOK
Sawtooth DownOKOKOK
SpringOKOKOK
DamperOKOKOK
InertiaOKOKOK
FrictionOKOKOK
Ramp sweep — DI north (away) (0°)OKOKOK
Ramp sweep — DI east (right) (90°)OKOKOK
Saturation — 1 co-directional constantsOK(none)(none)
Saturation — 2 co-directional constantsOK(none)(none)
Saturation — 3 co-directional constantsOK(none)(none)

JSON payload

This is the literal report payload submitted to ffb-probe.com when you click Share; nothing else is attached to that upload request. The app's separate update check sends no report or device data. This website sample is inert.

{
  "schema": 1,
  "submitted_date": "2026-10-03",
  "device": {
    "vid": "045e",
    "pid": "001b",
    "name": "Microsoft SideWinder Force Feedback 2",
    "device_type": "joystick",
    "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": "1.1.2",
  "run": {
    "strength_pct": 75,
    "strength_source": "default"
  },
  "responses": [
    {
      "effect": "Polarity sweep — DI north (away) (0°)",
      "labels": [
        "Pulled back",
        "Strong pull"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak +1.2%, Y peak +71.4% of range; dominant +Y)"
    },
    {
      "effect": "Polarity sweep — DI east (right) (90°)",
      "labels": [
        "Pulled left"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -68.9%, Y peak +0.8% of range; dominant -X)"
    },
    {
      "effect": "Polarity sweep — DI south (toward) (180°)",
      "labels": [
        "Pulled forward"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -0.6%, Y peak -73.0% of range; dominant -Y)"
    },
    {
      "effect": "Polarity sweep — DI west (left) (270°)",
      "labels": [
        "Pulled right"
      ],
      "notes": "Slight overshoot before settling | [probe-measured] stick moved during playback (X peak +70.3%, Y peak -1.1% of range; dominant +X)"
    },
    {
      "effect": "Two-axis diagonal — diagonal",
      "labels": [
        "Pulled diagonally"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -48.7%, Y peak -50.2% of range; dominant -Y)"
    },
    {
      "effect": "Square",
      "labels": [
        "Sharp pulses",
        "Fast",
        "Strong"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak +0.7%, Y peak +34.2% of range; dominant +Y)"
    },
    {
      "effect": "Sine",
      "labels": [
        "Smooth oscillation",
        "Rocking back and forth"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak +0.4%, Y peak +22.6% of range; dominant +Y)"
    },
    {
      "effect": "Triangle",
      "labels": [
        "Smooth oscillation",
        "Slow"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -0.5%, Y peak +19.8% of range; dominant +Y)"
    },
    {
      "effect": "Sawtooth Up",
      "labels": [
        "Asymmetric ramp pulses",
        "Repeated ramping"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak +0.6%, Y peak +27.3% of range; dominant +Y)"
    },
    {
      "effect": "Sawtooth Down",
      "labels": [
        "Asymmetric ramp pulses"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -0.4%, Y peak -26.1% of range; dominant -Y)"
    },
    {
      "effect": "Spring",
      "labels": [
        "Centered",
        "Returns to center",
        "Strong spring"
      ],
      "notes": "[probe-measured] no motion at rest (X peak +0.3%, Y peak -0.2% of range) — expected for a condition effect unless the stick is deflected"
    },
    {
      "effect": "Damper",
      "labels": [
        "Damped",
        "Resists motion"
      ],
      "notes": "[probe-measured] no motion at rest (X peak 0.0%, Y peak +0.1% of range) — expected for a condition effect unless the stick is deflected"
    },
    {
      "effect": "Inertia",
      "labels": [
        "Heavy",
        "Lagging"
      ],
      "notes": "[probe-measured] no motion at rest (X peak -0.2%, Y peak 0.0% of range) — expected for a condition effect unless the stick is deflected"
    },
    {
      "effect": "Friction",
      "labels": [
        "Sticky",
        "Drag"
      ],
      "notes": "[probe-measured] no motion at rest (X peak +0.1%, Y peak +0.3% of range) — expected for a condition effect unless the stick is deflected"
    },
    {
      "effect": "Ramp sweep — DI north (away) (0°)",
      "labels": [
        "Built up gradually",
        "Pulled back"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak +0.9%, Y peak +64.8% of range; dominant +Y)"
    },
    {
      "effect": "Ramp sweep — DI east (right) (90°)",
      "labels": [
        "Built up gradually",
        "Pulled left"
      ],
      "notes": "[probe-measured] stick moved during playback (X peak -61.5%, Y peak +0.4% of range; dominant -X)"
    },
    {
      "effect": "Saturation — 1 co-directional constants",
      "labels": [
        "Pulled back",
        "Soft pull"
      ]
    },
    {
      "effect": "Saturation — 2 co-directional constants",
      "labels": [
        "Pulled back",
        "Strong pull"
      ]
    },
    {
      "effect": "Saturation — 3 co-directional constants",
      "labels": [
        "Pulled back",
        "Strong pull"
      ],
      "notes": "No firmer than step 2"
    }
  ],
  "diagnostics": {
    "public_db_note": "Diagnostics are public on the device page. They use closed result names and path-redacted errors; free-text response notes stay server-side.",
    "per_effect": [
      {
        "effect": "Polarity sweep — DI north (away) (0°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Polarity sweep — DI east (right) (90°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Polarity sweep — DI south (toward) (180°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Polarity sweep — DI west (left) (270°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Two-axis diagonal — diagonal",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "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"
      },
      {
        "effect": "Ramp sweep — DI north (away) (0°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Ramp sweep — DI east (right) (90°)",
        "create_result": "OK",
        "play_result": "OK",
        "stop_result": "OK"
      },
      {
        "effect": "Saturation — 1 co-directional constants",
        "create_result": "OK",
        "play_result": "(none)",
        "stop_result": "(none)"
      },
      {
        "effect": "Saturation — 2 co-directional constants",
        "create_result": "OK",
        "play_result": "(none)",
        "stop_result": "(none)"
      },
      {
        "effect": "Saturation — 3 co-directional constants",
        "create_result": "OK",
        "play_result": "(none)",
        "stop_result": "(none)"
      }
    ],
    "failed_effects": [],
    "errors": []
  }
}