What are the two motors inside an Xbox 360 pad?
The Microsoft Xbox 360 Controller contains two electric motors mounted in the grips. Each motor is a small DC motor with an eccentric weight bolted to its output shaft. When current flows, the motor spins, the unbalanced weight throws the grip around its axis, and your hand feels vibration.
The left grip holds the heavy rumble motor. It is the larger of the two, runs slower, and produces the low-frequency thump you feel during explosions and engine sounds in games. The right grip holds the trembler motor, which is smaller, spins faster, and produces the high-frequency buzz used for impacts and gunfire.
This split was Microsoft's choice and Sony copied it with the DualShock 4. The two-motor design is sometimes called "rumble with two haptic frequencies" in marketing copy. What you have is two unbalanced DC motors. There is no piezo, no linear actuator, no force-feedback transducer of the kind defined for joysticks in the USB HID specification.
The lifespan numbers matter. The heavy motor typically runs 5,000 to 15,000 hours before its bearings or brushes give out. The trembler runs faster and lasts roughly 3,000 to 8,000 hours, sometimes less if the eccentric weight loosens on the shaft. By 2026, most used 360 pads in circulation have at least one motor with measurable degradation.
How does JoyCheck fire both motors through the W3C Gamepad API?
JoyCheck uses the GamepadHapticActuator interface in the W3C Gamepad API. The interface exposes a playEffect() method that takes a type string and an options object with duration, strongMagnitude, and weakMagnitude parameters, each scaled from 0.0 to 1.0.
For an Xbox 360 controller, strongMagnitude drives the heavy left motor and weakMagnitude drives the trembler right motor. The mapping comes from Windows XInput, which the browser reads through on Chrome and Edge, and which the Linux hid-xpad driver mirrors on Linux desktops.
The JoyCheck dual-motor test runs in three phases. First, both motors fire together at full magnitude for one second, which confirms the rumble subsystem is alive end-to-end. Second, only the heavy motor fires for half a second at full magnitude, isolating the left side. Third, only the trembler fires for half a second, isolating the right side. The user holds the pad and reports which pulses they felt.
Browser support is the practical constraint. Chrome and Edge support playEffect() cleanly. Firefox added support in version 113 behind a preference flag and shipped it on by default in 114. Safari supports the actuator on macOS but not on iOS as of 17.4. For the most reliable Xbox 360 rumble test, use Chrome or Edge on a desktop machine.
Why does one motor commonly die before the other?
The trembler is the most common single-point failure on a used Xbox 360 controller. Three mechanical reasons explain it.
The trembler motor spins faster (approximately 11,000 RPM) than the heavy motor (approximately 4,500 RPM), which means more revolutions per hour of use and faster bearing wear. The eccentric weight on the trembler shaft is held by a press fit that loosens over time; once it loosens, the throw decreases and the user reports "weak rumble" even before the motor itself fails. The smaller motor also runs hotter under sustained use, which degrades the brush contact faster.
The result, in 2026, is that the trembler-dead-heavy-alive pattern is the single most common rumble failure on the used market. About one in four used 360 pads I have tested have a silent trembler under a clean rumble command. The heavy motor fails too, but later and less often.
The other failure mode worth naming is shaft separation. The eccentric weight is a brass cylinder pressed onto the motor shaft. If the pad has been dropped hard, the cylinder can shear off the shaft entirely. The motor still spins; there is just no unbalanced load, so the user feels nothing. This is the same failure path described in the iFixit guide for Xbox 360 controller rumble motor replacement.
How do you run the JoyCheck rumble test, step by step?
The full dual-motor test takes ten seconds once the controller is connected.
- Open JoyCheck in Chrome, Edge, or Firefox on a desktop. Safari on macOS works but Safari on iOS does not support the haptic actuator interface.
- Connect the controller. Wired pads plug into USB-A directly. Wireless pads need the Microsoft Xbox 360 Wireless Receiver on a free USB port and the pad's Guide button held until the LED ring stops blinking.
- Press the Guide button once. The W3C Gamepad API requires a button press to expose the controller to JavaScript. This is a browser security guard.
- Click "Run rumble test" on the JoyCheck page. The diagnostic fires three pulses: dual-motor 1 second, heavy-motor only 0.5 seconds, trembler only 0.5 seconds.
- Hold the pad firmly in both hands. The pulses are easy to feel when the pad is held; they are easy to miss when the pad is sitting on a desk because the desk dampens the vibration.
- Report each pulse. JoyCheck asks "did you feel pulse 1 / pulse 2 / pulse 3" after the test runs. The result table marks each motor as live or silent.
A pad that fails the heavy-motor pulse but passes the trembler-only pulse is unusual; the more common pattern is the reverse. A pad that fails both is almost always a wiring issue inside the grip rather than two simultaneous motor failures.
What are the alternative ways to run the rumble test, and why are they not recommended?
Three other paths exist for testing Xbox 360 rumble on a PC. Each has a tradeoff.
| Tool | Platform | Per-motor control | Install | Notes |
|---|---|---|---|---|
| JoyCheck | Any modern browser | Yes, both motors independently | None | Default recommendation |
| Xbox 360 Accessories utility | Windows 10 and 11 | Yes | Yes, signed Microsoft installer (discontinued, still works) | Useful if Chrome blocks the page |
| DS4Windows fork | Windows | Yes | Yes | Designed for DualShock 4, also reads 360 pad via XInput |
| SDL2 rumble example | Linux, macOS, Windows | Yes | Yes, compile from source | Useful for developers; overkill for diagnostic |
evdev directly | Linux | Yes | None beyond kernel | Command line only; useful for headless servers |
The Xbox 360 Accessories utility is technically discontinued; Microsoft no longer links to it from the official Xbox support pages. The installer still runs on Windows 10 and 11, and the rumble test pane inside still works. It is the most direct alternative if for some reason the W3C Gamepad API is unavailable in your browser, but it is Windows-only and asks for admin privileges to install a kernel driver, which the browser does not need.
The SDL2 rumble example, available in the open-source SDL repository on GitHub, is the canonical cross-platform reference. It is useful if you are developing a game and want to verify rumble at the SDL layer. As a diagnostic for the end user, it is more friction than the browser test.
The evdev path on Linux is the lowest-level option. fftest /dev/input/eventN against the controller's event node fires rumble through the kernel directly, as documented in the Linux input subsystem reference. It works on headless servers and embedded systems, but the typical user is not running diagnostics on a headless box.
What if the rumble test passes but the pad still feels weak?
A passing rumble test means both motors fire. It does not mean both motors fire at full magnitude.
The trembler weight loosening case described above is the most common pattern that passes a binary rumble test (motor spins) but feels weak in actual gameplay (no throw). If the JoyCheck test reports both motors live and the pad still feels mushy in games, the next step is a teardown and a visual check of the eccentric weights on both motor shafts. The iFixit guide for the Xbox 360 Wireless Controller teardown covers the disassembly in detail.
The other case worth naming is game-side rumble scaling. Some PC games scale rumble magnitude based on a setting that defaults below 1.0. If the JoyCheck test fires the motors at full strength and you can feel them clearly, but the same pad feels weak in a specific game, check the game's settings. Steam Input has a rumble override on the Xbox 360 Controller layout that defaults to 100 percent but can be reduced per-game.
Frequently asked questions: what do Xbox 360 controller owners ask?
What is an Xbox 360 rumble test?
An Xbox 360 rumble test fires the controller's two vibration motors and verifies both produce force at the requested magnitude. The heavy left motor and the smaller trembler right motor are tested independently so you can identify which side has failed without taking the pad apart.
How do I test Xbox 360 rumble in my browser?
Open JoyCheck on any modern desktop browser, plug in the controller, press the Guide button to expose the pad to JavaScript, and click "Run rumble test". The diagnostic fires three calibrated pulses: dual-motor, heavy-only, trembler-only. You report which pulses you felt.
Why does only one side of my Xbox 360 controller rumble?
The smaller trembler motor on the right grip is the most common single-point failure on used pads, with a typical lifespan of 3,000 to 8,000 active hours. The heavy left motor lasts longer because it spins slower. If only the heavy side fires, the trembler motor or its eccentric weight has failed.
Can I fix a dead Xbox 360 rumble motor without replacing the controller?
Yes. Replacement motors cost about €4 each from the same suppliers that sell stick modules. The replacement requires opening the pad with a Torx T8 screwdriver, desoldering the dead motor's leads from the PCB, and soldering the new motor in. iFixit rates the procedure as moderate difficulty.
Does the W3C Gamepad API support rumble on all browsers?
The GamepadHapticActuator interface ships in Chrome 81 and later, Edge 81 and later, Firefox 114 and later (113 behind a flag), and Safari on macOS. Safari on iOS does not support the actuator as of 17.4. For Xbox 360 rumble testing, Chrome and Edge on Windows are the most reliable targets.
Can JoyCheck detect rumble failures accurately?
JoyCheck fires the motors at known magnitudes and asks you to report what you felt. The detection is your perception, not a sensor reading; the controller does not have a built-in accelerometer that confirms motor output. The diagnostic is reliable because rumble is something you cannot miss when it works.
Does JoyCheck send any data to a server?
No. JoyCheck reads the controller and fires the haptic effects entirely in the browser through the W3C Gamepad API. There is no analytics call on the rumble result, no upload of the diagnostic, and no account required. The only network traffic is the initial page load; close the tab and the session is gone.
Sources & references
- W3C, "Gamepad API specification": www.w3.org/TR/gamepad
- Mozilla Developer Network, "GamepadHapticActuator": developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator
- Microsoft, "XInput and DirectInput overview": learn.microsoft.com/en-us/windows/win32/xinput/xinput-and-directinput
- Microsoft, "Xbox 360 Controller for Windows support": support.xbox.com/en-US/help/hardware-network/controller/xbox-360-controller-for-windows
- iFixit, "Xbox 360 Wireless Controller repair guides": www.ifixit.com/Device/Xbox_360_Wireless_Controller