FFB-Probe report
This page is your 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 submitted to ffb-probe.com if you click Share. The two are the same data — nothing more, nothing less.
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 east (0°) | Pulled back, Strong pull | — |
| Polarity sweep — DI south (90°) | Pulled left | — |
| Polarity sweep — DI west (180°) | Pulled forward | — |
| Polarity sweep — DI north (270°) | Pulled right | Slight overshoot before settling — feels stronger than the south direction |
| Two-axis diagonal — diagonal (X=75%, Y=75%) | Pulled diagonally | — |
| Square | Sharp pulses, Fast, Strong | — |
| Sine | Smooth oscillation, Rocking back and forth | — |
| Triangle | Smooth oscillation, Slow | — |
| Sawtooth Up | Asymmetric ramp pulses, Repeated ramping | — |
| Sawtooth Down | Asymmetric ramp pulses | — |
| Spring | Centered, Returns to center, Strong spring | — |
| Damper | Damped, Resists motion | — |
| Inertia | Heavy, Lagging | — |
| Friction | Sticky, Drag | — |
| Saturation — 1 co-directional constants | Pulled diagonally, Soft pull | — |
| Saturation — 2 co-directional constants | Pulled diagonally, Strong pull | — |
| Saturation — 3 co-directional constants | Pulled diagonally, Strong pull | Reached the actuator's apparent ceiling around step 3 |
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
These fields are public — they appear on the device's page at ffb-probe.com/db alongside the capability snapshot. None of the values are PII; pointer addresses are stripped, file paths are regex-redacted to <path>.
Per-effect HRESULTs
| Effect | Create | Play | Stop |
|---|---|---|---|
| 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 |
JSON payload
This is the literal payload submitted to ffb-probe.com when you click Share. Everything you see here is everything that's sent — no hidden side-channel.
{
"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": []
}
}