Use the WiiMote as a mouse in Linux

In my search for using the WiiMote as a musical instrument, I found out it’s rather easy to set up your system to use the WiiMote as a mouse. Some of the steps needed to configure your system are actually the same, for being complete I’ll document all steps in this article.

Prerequisites (what you need to get it working):

  • Hardware
    • Computer able to run Ubuntu (I prefer Ubuntu Studio).
    • Bluetooth adapter (an adapter for using an open wireless protocol for exchanging data over short distances).
    • Wii Remote (also known as a wiimote, the primary controller for Nintendo’s Wii console)
  • Software
    • Ubuntu Studio (a multimedia editing/creation flavor of Ubuntu. It’s built for the GNU/Linux audio, video, and graphic enthusiast or professional)
    • CWiid(a collection of Linux tools written in C for interfacing to the Nintendo Wiimote)

Allright let’s get started :

Where possible I’ll provide the links to the necessary download locations.

You either have a pre-installed Bluetooth adapter on your computer or you can buy one in the shop (make sure it’s Linux compatible).

As we’re using Ubuntu Studio, you can download the DVD Image and burn it to DVD.

You should think over what you going to do with your configuration, repartition your hard disk (or don’t), and install Ubuntu Studio

Make sure you’ve got a Wii Remote with enough power.

Open a terminal session in Ubuntu then copy and paste the following instructions:

sudo apt-get install libcwiid1 lswm wmgui wminput

Sometimes it comes in handy to know your gear so, at this point, you can turn on the Wii remote to scan by pressing 1 and 2 simultaneously (all the lights will flash) then running:

hcitool scan

After you installed the necessary packages, you will be able to give it the first shot by entering wmgui in a terminal window

wmgui

Select “connect” from the file menu, press 1+2 on the Wiimote when prompted then click OK. Lights and rumble can be turned on and off from the controls menu, and which inputs are displayed from the settings menu. Using this, you can test the IR camera (I didn’t have infrared lights so I used a candle (BE VERY CAREFULL WITH OPEN FIRE IN AND AROUND YOUR LIVING AREA not to set the place on fire)), the accelerometers, and check the inputs from the Nunchuck or Classic Controller.

Now you know the basic set-up is working (your computer running Ubuntu Studio, your Bluetooth adapter, your Wii Remote, and the “connection” between it all).

From here on things are different, from the article about using the WiiMote as a musical instrument (check here).

For using the WiiMote as a mouse we need a mouse emulator (a small program that converts WiiMote output to mouse output) the one we are going to use is called uinput.

Before being able to use uinput we need to load it into the kernel, this can be done in two ways: manually after every reboot or we can load it every time the system starts up.

Manually

Copy and paste the following instructions:

sudo modprobe uinput

Loading it up every time the system starts up by adding uinput into /etc/modules:

gksudo gedit /etc/modules

Edit and save /etc/modules (mine looks like this)

Now reboot your system if you choose the latter option (editing /etc/modules).

We need the MAC-address of our WiiMote, there are multiple ways of getting this address:

hcitool scan
lswm

Now we can start doing our mouse thing by telling wminput to listen to the right WiiMote (telling the WiiMote to listen to which MAC address) (make sure you use your own MAC-address !!!):

sudo wminput 00:24:F3:E3:E6:CD

(if you get the following error “unable to open uinput” try using the wminput command in SU mode as you didn’t have enough rights to use uinput).

Now you’re ready to rock and roll!!

Two more things:

  • You can close the terminal window if you want to
  • If you’re ready using your WiiMote press the off button on your Wiimote.

Suggestions for improving this article are welcome, please let me know and drop me a line!