There is a boring part of every computer introduction class that shows how a computer is made up of input, output, and processing. Maybe it wouldn’t be so boring if the input device was a nunchuck. [Brian Lough] thinks so and he belligerently asserts that nunchucks are the best input device ever. With a simple connection to a Wii controller and an associated library, you get access to an analog joystick, two buttons, and an accelerometer.
The nunchuck is meant to plug into a Wii controller and the connection is I2C, so that’s trivial to interface to an Arduino or other small microcontroller. The only issue is making the connection. We might have just snipped the wires, but [Brian] prefers to use a small breakout board that plugs into the stock connector and provides solder points for your own cable. There are options for the breakout boards, and [Brian] has his own design that you can get from OSHPark for about a buck for three boards. You can also just jam wire into the connector, but that’s not always robust.
The controllers use 3.3V which isn’t unusual these days. There’s an available library that makes reading them easy. Obviously, not all applications will be a natural fit, but we did like them on the Tetris game [Brian] created. It is also natural for any kind of motion control like his gimbal mount example.
Even if you don’t have junk Wii controllers hanging around, they are common enough on the resale market and you can buy new third-party controllers without spending much. Makes us sorry we threw away ours in the last move.
If you want to get serious hacking a nunchuck, you can go full custom. Or, just give up, and turn one into a Raspberry Pi.
Huh, this all looks familiar… :) https://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/
Yeah since when has hackaday turned into a wayback machine..
you must be new here
but in all fairness, it’s a decent refresher after 13 years that this thing still exists and still gives you great options to play with / integrate it into projects. So there’s nothing wrong with this in my opinion.
There must have been 4-5 occasions where there was an article about something that there was an article about already, but come one, so many articles getting published on here and the rate of repetition is minimal.
Ha, I actually have one of those adapters in my junk drawer since the last time this was circulating. Never got around to do anything with it due to it being packed away in moves and such.
If memory serves right, my initial stumbling block was that the Wiichuck wants 3.3V, and the junk drawer from before has 5V Arduinos.
Given some documentation ( https://playground.arduino.cc/Main/I2CBi-directionalLevelShifter/ ) it lloks like it’s plug and pray:
> usually works, even though it violates official specifications in multiple ways
All you have to do is to configure the AVR correctly to use open drain *per I2C specs* and connect pull-up resistors to 3.3V. That’s all and no level shifter needed.
Thanks! I’ll do some googling. Do you happen to have a decent reference on hand as well?
I saw this video and when the Raspberry pi pico came out I thought it would be a great idea to have a nunchuck adapter shield because the raspberry pi pico can act as a usb device.
Sone non-official Nunchucks require the I2C library to deal with clock stretching.
Good stuff.
I need to revisit this. I wrote a code to read the joystick and buttons on a RPi a while back, but I don’t remember reading the accelerometer.
I went a step further and bought 20 extension cables from China for ~$2 each. I snipped off the “wrong” end of the cable with about six inches of wire (in case I wanted to make a control someday). Then I wired up the other end to something that was a bit more appropriate for breadboarding than bare wires. As a bonus, I had an extra 3 feet or so of length to the controller.