There are plenty of descriptions on how to read the joystick, accelerometer and button values from a Wii Nunchuck using I2C but I haven’t seen any waveforms. So here are mine. Click on the images to see them in full size.

The I2C bus was running at about 100kHz. The time between the handshake and the first data read sequence is about 1.8ms and the time between each subsequent data read sequence is also about 1.8ms, although I feel that these times can probably be reduced.

Unlike many code examples I have seen there are no delays between each write operation in the handshake or between the write and read operations of the data read sequence.

First up is the handshake to send “unencrypted” data:

Next is the data read sequence containing a six byte chuck of data with the values we need:

Hopefully these will be useful to people developing application with a Wii Nunchuck.