Wii remote
ATTENTION: This article is a work in progress and not completed.
The controllers of the nintendo gaming console Wii are called WiiMote. This article describes how to install and configure a software to use a WiiMote to control MythTV.
As of 12/29/2006 buttons are working, pointing/shaking is not!
Contents
Preparation
- Connect a linux supported bluetooth adapter (e.g. D-Link DBT-120)
- Install linux bluetooth support BlueZ
- Install Python, Python-XLib and PyBlueZ
- Hint for Ubuntu-Users: Type
# apt-get install bluez-utils python-xlib python-bluez
Check for working bluetooth installation
- First check, if the bluetooth adapter is installed correctly. Entering the following command should give you a list of all adapters.
# hcitool dev Devices: hci0 01:23:45:67:89:AB
- Next scan for bluetooth devices. To activate the discover mode of the WiiMote, press buttons 1 and 2 simultaneously, then enter the following command which should give you a list of all bluetooth devices in range.
# hcitool scan Scanning ... 99:88:77:66:55:44 Nintendo RVL-CNT-01
The WiiMote is named (as you can see) Nintendo RVL-CNT-01.
Install WiiMote Software
Now install the WiiMote software by downloading and unpacking the newest package from this site, or use the subversion repository to get the bleeding edge version.
Edit the configuration file wmd/Config.py Find MY_WIIMOTE_ADDR and set the address of your WiiMote which you got from the previous scan.
'MY_WIIMOTE_ADDR': "99:88:77:66:55:44",
Find commandMap and configure the buttons to suite your needs
'commandMap': { 'A': ['key', 'KEY_ENTER' ], 'B': ['key', 'KEY_ESC' ], 'H': ['quit', 1], # Home key: quits WMD '+': ['key', 'KEY_TAB' ], '-': ['key', [ 'KEY_LEFTSHIFT', 'KEY_TAB' ] ], '1': ['key', 'KEY_M' ], '2': ['key', 'KEY_I' ], 'U': ['key', 'KEY_UP' ], 'D': ['key', 'KEY_DOWN' ], 'L': ['key', 'KEY_LEFT' ], 'R': ['key', 'KEY_RIGHT' ] },
To test the WiiMote software run WMD.py. Press button 1 and 2 on your WiiMote and wait for the software to connect.
# ./WMD.py Registering key KEY_ENTER for button A with code 1c Registering key KEY_ESC for button B with code 1 Registering key KEY_DOWN for button D with code 6c Registering key KEY_TAB for button + with code f Registering key ['KEY_LEFTSHIFT', 'KEY_TAB'] for button - with code 2a Registering key ['KEY_LEFTSHIFT', 'KEY_TAB'] for button - with code f Registering key KEY_LEFT for button L with code 69 Registering key KEY_M for button 1 with code 32 Registering key KEY_I for button 2 with code 17 Registering key KEY_UP for button U with code 67 Registering key KEY_RIGHT for button R with code 6a [[1074025828, 3], [1074025831, 0], [1074025831, 1], [1074025828, 2], [1074025830, 0], [1074025830, 1], [1074025828, 1], [1074025828, 0], [1074025829, 28], [1074025829, 1], [1074025829, 108], [1074025829, 15], [1074025829, 42], [1074025829, 15], [1074025829, 105], [1074025829, 50], [1074025829, 23], [1074025829, 103], [1074025829, 106]] Could not import pygame. Set DISABLE_PYGAME=1 CONNECTING Looking for Wiimote services at address 99:88:77:66:55:44 Victory! We have found that Wiimote! We are now connected to Wiimote at address 99:88:77:66:55:44 CONNECTED Event type WM_CLOCK_BEAT is being ignored [112, 0, 22, 126, 124, 129, 28, 151, 150, 154, 18, 0, 0, 0, 0, 0, 0, 0, 0]
Now press any buttons on your WiiMote and you should see the corresponding events
... CONNECTED Event type WM_CLOCK_BEAT is being ignored [112, 0, 22, 126, 124, 129, 28, 151, 150, 154, 18, 0, 0, 0, 0, 0, 0, 0, 0] Send Key DOWN: 50 Buttons down: ['1'] mSend Key UP: 50 Buttons up: ['1'] Send Key DOWN: 23 Buttons down: ['2'] iSend Key UP: 23 Buttons up: ['2'] Send Key DOWN: 15 Buttons down: ['+'] Send Key UP: 15 Buttons up: ['+']
If you see an error message complaining about a missing uinput-device you have to load the uinput kernel module first.
# modprobe uinput
Preparing for MythTV use
To use the WiiMote for mythtv we just need to start the main python script WMD.py. Create a file /usr/local/bin/mythtv_wiimote.sh with the following content
#!/bin/sh while [ 1 ]; do $HOME/wmd-trunk/WMD.py ; sleep 5 done
and add it to your X startup file ~/.xinitrc
# Using the wiimote to control mythtv /usr/local/bin/mythtv_wiimote.sh & xset -dpms s off xsetroot -solid black xsetroot -bg black xsetroot -cursor $HOME/etc/X11_EmptyCursor $HOME/etc/X11_EmptyCursor /usr/bin/evilwm & mythwelcome
To use your WiiMote just press button 1 and 2 and it should connect to your mythtv box.