Line 151:
Line 151:
| style="border: 1px solid #ccc; padding: 0.2em;" | 0x10
| style="border: 1px solid #ccc; padding: 0.2em;" | 0x10
| style="border: 1px solid #ccc; padding: 0.2em;" | 1
| style="border: 1px solid #ccc; padding: 0.2em;" | 1
−
| style="border: 1px solid #ccc; padding: 0.2em;" | Unknown
+
| style="border: 1px solid #ccc; padding: 0.2em;" | [[#Rumble|Rumble]]
|- style="background-color: #eef;"
|- style="background-color: #eef;"
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | O
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | O
Line 1,225:
Line 1,225:
[[File:Wii_Remote_Rumble.jpg|200px|thumb|right|Wii remote rumble motor]]The Wii Remote includes a rumble feature, which is implemented as a small motor attached to an off-center weight. It will cause the controller to vibrate when activated.
[[File:Wii_Remote_Rumble.jpg|200px|thumb|right|Wii remote rumble motor]]The Wii Remote includes a rumble feature, which is implemented as a small motor attached to an off-center weight. It will cause the controller to vibrate when activated.
−
The rumble motor can be turned on or off through any of the Output Reports. Setting the LSB (bit 0) of the first byte of any output report will activate the rumble motor, and unsetting it will deactivate it. For example, the following report will turn the rumble motor on:
+
The rumble motor is primarilly controlled via the report with ID 0x10:
+
+
(a2) 10 RR
+
+
Setting RR to 1 enables rumble, and setting it to 0 disables rumble. However, note that the rumble motor can be turned on or off through any of the Output Reports, not just 0x10. Setting the LSB (bit 0) of the first byte of any output report will activate the rumble motor, and unsetting it will deactivate it. For example, the following report will turn the rumble motor on:
(a2) 11 01
(a2) 11 01
−
However, this will also have the side-effect of turning off all LEDs. Since there is no output report that only affects the rumble motor, and all of them do affect it, an implementation might need to store both the rumble and LED values locally (for example), and use the same Output Report for both. Another possibility would be using the status request report (0x15). The rumble bit needs to be set properly with every single report sent, to avoid inadvertently turning the rumble motor off.
+
However, this will also have the side-effect of turning off all LEDs. The rumble bit needs to be set properly with every single report sent, to avoid inadvertently turning the rumble motor off.
Different photos of the rumble motor hardware show different markings. One example is ''SEM 8728DA''. The Wii Remote drives it at 3.3 VDC and it draws 35 mA. It would be reasonable to think that the rumble motor could be removed and the motor replaced with another device with equal voltage and equal or less current draw.
Different photos of the rumble motor hardware show different markings. One example is ''SEM 8728DA''. The Wii Remote drives it at 3.3 VDC and it draws 35 mA. It would be reasonable to think that the rumble motor could be removed and the motor replaced with another device with equal voltage and equal or less current draw.