FFB-Probe report
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.
Device: Microsoft SideWinder Force Feedback 2 045e:001b
Supported effects
| Name | Type flags |
|---|---|
| Constant Force | DIEFT_CONSTANTFORCE | FFATTACK | FFFADE | STARTDELAY |
| Ramp Force | DIEFT_RAMPFORCE | FFATTACK | FFFADE | STARTDELAY |
| Square | DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY |
| Sine | DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY |
| Triangle | DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY |
| Sawtooth Up | DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY |
| Sawtooth Down | DIEFT_PERIODIC | FFATTACK | FFFADE | STARTDELAY |
| Spring | DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY |
| Damper | DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY |
| Inertia | DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY |
| Friction | DIEFT_CONDITION | SATURATION | DEADBAND | STARTDELAY |
| Custom Force | DIEFT_CUSTOMFORCE | SATURATION | DEADBAND | STARTDELAY |
System
Responses
| Effect | Labels | Notes 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 right | Slight overshoot before settling | [probe-measured] stick moved during playback (X peak +70.3%, Y peak -1.1% of range; dominant +X) |
| Two-axis diagonal — diagonal | Pulled diagonally | [probe-measured] stick moved during playback (X peak -48.7%, Y peak -50.2% of range; dominant -Y) |
| Square | Sharp pulses, Fast, Strong | [probe-measured] stick moved during playback (X peak +0.7%, Y peak +34.2% of range; dominant +Y) |
| Sine | Smooth oscillation, Rocking back and forth | [probe-measured] stick moved during playback (X peak +0.4%, Y peak +22.6% of range; dominant +Y) |
| Triangle | Smooth oscillation, Slow | [probe-measured] stick moved during playback (X peak -0.5%, Y peak +19.8% of range; dominant +Y) |
| Sawtooth Up | Asymmetric ramp pulses, Repeated ramping | [probe-measured] stick moved during playback (X peak +0.6%, Y peak +27.3% of range; dominant +Y) |
| Sawtooth Down | Asymmetric ramp pulses | [probe-measured] stick moved during playback (X peak -0.4%, Y peak -26.1% of range; dominant -Y) |
| Spring | Centered, 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 |
| Damper | Damped, 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 |
| Inertia | Heavy, 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 |
| Friction | Sticky, 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 constants | Pulled back, Soft pull | — |
| Saturation — 2 co-directional constants | Pulled back, Strong pull | — |
| Saturation — 3 co-directional constants | Pulled back, Strong pull | No 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
| Effect | Create | Play | Stop |
|---|---|---|---|
| Polarity sweep — DI north (away) (0°) | OK | OK | OK |
| Polarity sweep — DI east (right) (90°) | OK | OK | OK |
| Polarity sweep — DI south (toward) (180°) | OK | OK | OK |
| Polarity sweep — DI west (left) (270°) | OK | OK | OK |
| Two-axis diagonal — diagonal | OK | OK | OK |
| Square | OK | OK | OK |
| Sine | OK | OK | OK |
| Triangle | OK | OK | OK |
| Sawtooth Up | OK | OK | OK |
| Sawtooth Down | OK | OK | OK |
| Spring | OK | OK | OK |
| Damper | OK | OK | OK |
| Inertia | OK | OK | OK |
| Friction | OK | OK | OK |
| Ramp sweep — DI north (away) (0°) | OK | OK | OK |
| Ramp sweep — DI east (right) (90°) | OK | OK | OK |
| Saturation — 1 co-directional constants | OK | (none) | (none) |
| Saturation — 2 co-directional constants | OK | (none) | (none) |
| Saturation — 3 co-directional constants | OK | (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": []
}
}