Making a Wii remote talk to Pure Data (PD)

From CCRMA Wiki
Revision as of 14:01, 17 November 2010 by Ravik (Talk | contribs)

Jump to: navigation, search


Making a Wii remote talk to PD could be fun. You have a pretty-accurate/not-over-sensitive accelerometer inside a Wii remote. Also, there are a bunch of LEDs and a pager motor (vibrator) inside the Wii that can be used for a lot of fancy purposes. In this guide, we assume that you are running Ubuntu on the Beagleboard. You need a bluetooth dongle to let the Beagleboard and the Wii remote pair with each other. To finish this task, we need to install a bunch of Ubuntu packages and PD patches.


Making sure the devices are in place

1) Plug in the dongle into the Beagleboard. Ubuntu should detect the dongle automatically and supply it with the necessary drivers. Check the status of the dongle with the command lsusb. If lsusb is not installed, you should run the command sudo apt-get install lsusb. Once the package is installed, run the command lsusb just to make sure the dongle plugged into the computer.

2) Install the bluez package: We do the same as we did in step 1 to install packages.

3) bluez installs a program called hcitool, which is basically a bluetooth device scanner. Once you run this program, you should get an output like this:

00:22:41:CB:1C:D3	cmn53 
00:22:41:FF:4C:53	Jimmy Sago's MacBook Pro 
8C:56:C5:53:9C:B2	Nintendo RVL-CNT-01 
5C:59:48:CE:97:2C	Creand River's MacBook Pro

The line that contains "Nintendo" is the Wii Remote. Note the mac address in that line. We need it and it's IMPORTANT!

4) Now install the package called wminput. This package helps us connect the Wiimote to the Beagleboard. Note that in order to put the Wiimote in a discoverable mode, you should press the buttons 1 and 2 together and the LEDs on the Wiimote continue to blink for around 15-20 seconds. The Wiimote continues to be in the discoverable mode as long as the LEDs blink.

5) Run the wminput program to pair up the devices. You might have to run this program in sudo mode (the command is sudo wminput) since you are pairing up the system with another device, so you need some administrative rights. Once the command is executed, you should get an output like this:

Put Wiimote in discoverable mode now (press 1+2)...

6) Once the Wiimote is connected, the device acts like a mouse by default. Since we are on a display-less Beagleboard, we cannot see that. Run the command dmesg to make sure its connected. The command produces a multi-page output and in the last line of that output, you should see this:

[ 2854.231475] input: Nintendo Wiimote as /devices/virtual/input/input2

This finishes our preliminary setup.