Still under construction, you can see a full description in italian here

I was initially inspired by this video from Johnny Chung Lee and started to think if I can do such a thing on linux.
Thus came the idea for a driver that enables to use fingers as a mouse. Let’s start with some theory first…

What’s this?!
The Fiinger project is aimed at the creation of a driver that allows users to interact with the computer using their fingers as they were a mouse.
The idea is to use the wiimote to track motion of some ir leds on the user fingers, thus the wiimote will stay in front of the user and he will need something like this (link coming soon) to put ir leds on his hand.
So the hardware part is composed of a pc with bluetooth, the wiimote, and this (link coming soon) “exotic device”.
On the software side there are two necessary drivers:
a kernel driver that interact with the wiimote itself;
a Xorg driver that trasform input coming from the wiimote into mouse movements.
At the moment there are no wiimote kernel driver and I’m not able to write on for it, so I’ve used a very ugly workaround for this part, maybe I’ll try to write a real kernel driver one day…
The Xorg driver instead is written and almost working tough it has some glitches and that allows you to move the cursor and make left and right clicks.
All you need to do is put the ir leds on your fingers and use the central led to move the cursor while making other leds invisible to the wiimote (eg. just bend your finger so leds are hidden). If you want to place a left click, just make visible the left led for a short time; same thing for the right click (don’t hide the cursor led while “clicking”).

How do i make this stuff work on my box?
Assuming you have the necessary hardware here’s a little guide to set all this mess up.
Be aware that you’re going to install software under development on your system so it’s highly recomended that you DON’ T do this on your everyday system.

You’ll need the git version of Xorg, so if you are a gentoo user just type this on a shell

layman -a x11
autounmask x11-base/xorg-server-9999
emerge -av xorg-server

Now you can get my code from here using these commands

cd ~
git clone git://repo.or.cz/Fiinger.git
cd Fiinger
./autogen.sh –prefix=/usr
make
make install (being root o via sudo)

Now the software is there but needs configuration first. You’ll have to set an input device on your xorg config file and setup the fake kernel driver for the wiimote. Let’s start with xorg.conf, open it and put these lines inside it.

Section “InputDevice”
Identifier    “Fiinger1″
Driver    “fiinger”
Option    “Device”    “/dev/scullpipe”
EndSection

Now add the new device to your main layout adding something like this on your ServerLayout section of xorg.conf

InputDevice    “Fiinger1″ “CorePointer”

The Xorg configuration is done, let’s go ahead building the kernel module required to fake a driver.
The code is in the Fiinger/apps/kfiinger-module directory and can be built typing

cd ~/Fiinger/apps/kfiinger-module/
make
./scull_load (being root o via sudo)

Now a restart of Xorg is needed to make it recognize the new device. After restarting X you can check the new device is there by typing

xinput list –short

and you’ll see something like this if all went fine

“Fiinger1″     id=2    [XExtensionPointer]

It’s almost finished, the last thing to be done is to hook up a user program to the kernel module you’ve just built so it will receive data from the wiimote. The program we need is located in Fiinger/apps/wirft and is built the usual way by typing

cd ~/Fiinger/apps/wirft
make
./wirft <screen-x-resolution> <screen-y-resolution>

The last command will launch it, so it starts to send data to the fake driver and those data are read from the Xorg driver. So if you have the leds on your hand you can control the mouse now.

A video is coming ASAP.

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Iscriviti

Get every new post delivered to your Inbox.