Wiimote/Extension Controllers
This is an old revision of this page, as edited by Spam cleanup script (talk | contribs) at 23:18, 17 June 2007. It may differ significantly from the current revision. |
The Wiimote includes a 6-pin expansion port that allows external peripherals to be connected to it. Communications are bidirectional synchronous serial (the protocol is unknown), and the devices provide a virtual register block of length 0x100 that is mapped at 0xa40000 in the Wiimote's address space. Communications are encrypted, as detailed in Wiimote#Extension Controllers. Nintendo has currently released two extensions, the Nunchuk and the Classic Controller.
Peripheral Protocol is 400kHz "fast" I2C, with slave address 0x52. It should be possible to make homebrew peripherals; see the Tenkey project (japanese) or the Twiidler project
Nunchuk
The Nunchuk is identified by the 16-bit constant 0x0000 (0xFEFE encrypted) at register address 0xa400fe. It provides three-axis acceleration data, two digital buttons, and an X-Y analog stick.
Data Format
The Nunchuk reports its information as 6 bytes of data, readable at 0xa40008 and streamable using Data Reporting Modes that include Extension bytes (unused bytes are filled with 0x00). The data is packed into the six bytes as follows (after decryption):