This program allows you to use the Wii Remote (Wiimote) to turn any surface into a Low-Cost Interactive Whiteboard. It is based on Johnny Lee’s original WiimoteWhiteboard program that is written in C# and available for Windows only. My program uses Java to allow for (some) platform-independence. I also provide a Mac-only version since I’m a Mac user and this is, up to my knowledge, currently the only such program for the Mac.
For Windows only, Boon Jin has enhanced Johnny’s software and created the shareware program Smoothboard. There is also a SourceForge project that provides other implementations, but it is not getting much attention.
Check out the video and the other cool projects at Johnny Lee’s page if you have no idea what I’m talking about
.
Features in a nutshell
- Open source
- Runs on Mac OS X, Windows, and Linux
- Simple User Interface available in English, Estonian, French, German, Italian, Polish, Portuguese, Russian, Slovene, and Spanish
- Camera Monitor and Calibration Details for better Wiimote placement
- Auto-connects up to 2 Wiimotes
- Right-click support, double-click assistance
- Mouse cursor smoothing

- Screen selection
- Touchpad Mode
- Update notification
- TUIO/OSC support for multitouch applications
More details in the Wiki.
Download (1.0.2)
Documentation & Support
You can post your comments, bug reports, feature requests, etc. at the bottom of this page. The latest documentation is available in the Wiki. You can also find out how you can help.
The wiimoteproject.com forums are a great resource for everything Wiimote. You may use this subforum to discuss everything related to my software. The Smoothboard Wiki also contains useful information for setting up your interactive whiteboard.
Infrared pens
You need a source of infrared (IR) light to use the software. Many people build their own IR pens for that purpose, usually by retrofitting some sort of marker. You’ll find all you need to know here. I started with a simple IR pen made from a battery clip.
There are also IR pens for sale if you don’t want to build one yourself. Several vendors sell different models, the IR Pen marketplace is a good place to get an overview.
You can use the coupon code uwe if you buy from IRPensOnline.com. This will give you a discount of $2 and I’ll get $1.
Compatibility
I only heard of few problems on Mac OS X, using the built-in stack. I also got reports from users who got the program running on Windows using either the Widcomm or BlueSoleil stack. It seems like Widcomm works better, see this post about BlueSoleil. You need to use the BlueZ stack on Linux, see the Wiki or this post for further instructions.
Issue on PowerPC Macs (excerpt from the WiiRemoteJ-README):
Note for Mac OS X PowerPC (PPC) users: you will have to delete the Wii Remote from your previous devices list in System Preferences->Bluetooth->Devices after each connection (every time you connect a given Wii Remote). Even then, the outgoing connection will still fail every other time. There is some sort of bug relating to HCI devices and Apple’s library. Luckily, it was fixed for the Intel Macs.
Further details can be found in the Wiki or the help files bundled with the application.
Subscribe

This program is really great! Thank you for making it!
I have but one suggestion: Make an option to run without calibrating the screen area. My reason for this is that I like to use the system a different way than usual, by having the wiimote at the monitor and then moving the IR pen through the air in front of it. When doing this it is useful to have the largest possible calibrated screen area to make the most out of the tracking space and get the best resolution. So, it would be nice if there was an option to set the Calibrated Screen Area to equal the Wiimote Tracking Area. Perhaps this could be made to happen when the Reset button is pressed.
Thanks,
Cel
Hi Cel,
I understand what you want to do, but setting the Calibrated Screen Area to the whole Wiimote Tracking Area will probably not work as well as you’d expect. Even small perspective variations (e.g. Wiimote is slightly tilted or looking up/down a bit) will distort your IR pen movements. For instance, “drawing” a straight line in midair could result in a curve on the computer screen.
I’d suggest you do the calibration as usual and use the IR Camera Monitor beforehand to find the limits of the tracking area.
In case you still want to use the whole tracking area, you could edit the calibration data prior to starting the program. On the Mac, it is located in the folder ~/Library/Application Support/WiimoteWhiteboard. Let’s assume the primary screen with a resolution of 1280×1024 is used, then the file calibration_1_1280x1024.txt will be created after the first successful calibration. It captures the calibration settings and will look something like this:
The first line contains the Wiimote’s Bluetooth address and mustn’t be changed. The next four lines contain the mapping from the Wiimote’s coordinates (first two values) to the screen coordinates (last two values).
The Wiimotes coordinates are stored in the range from (0,0) to (1,1), with (0,0) being the bottom left corner of the tracking area.
In order to use the whole tracking area with the Wiimote being placed at the monitor, the file could be changed to this:
Hope that helps,
Uwe
Hi Nihil,
Did you ever workaround the issue you posted?
# An unexpected error has been detected by Java Runtime Environment:
#
# SIGFPE (0×8) at pc=0xb7f03745, pid=17121, tid=1899125680
…
I’m having the same problem, running
java version “1.6.0_07″
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode)
Thanks,
Sanya
It works for me now!!!!
I had the same problem, and at the end, i download the source code and compile it with ant.
I decompress the source code in a folder, and in the folder, trough the terminal, I execute ant. It works for me in mac osx 10.5.2, and the build version doesn´t work. My problem was the same, with the initialize of the Bluetooth.
I dont know if this is a possible solution, but if is interesting for you….
Thanks for this work and sorry about my english
hi ^^.. i’m the same from that page, i finnaly got my mac… ok ..let’s talk.. Uwe how and what i need to compile the source on my mac?? if u can step by step ^^.. im new on the programmer world o.o .. from the last time i say.. im student from Mexico.. and i improve this technology in my uni.. and have plans for this ^^.. o.o .. so.. please.. ^^.. i need help o.o .. again sorry for the bad english = ) .. and a lot of thanks .. muchas gracias = )
when i try to run your wiimote whiteboard application it tells me it cannot launch the application because it requires a version of Java that is not installed. This application requires java 1.5 or later, but only the following java versions are installed. 1.4.2.1.3.1.3.1,1.4. Updating to a newer version of Mac Os X may resolve this. any information would be much appreciated ive been searching through online and through software update on my powerbook to download the different versions of java but im only running 10.4.11 im also trying to find out how i can upgrade to 10.4.5 thanks in advance
-mohamed
hi there
thnx for the program
and am in a big problem now and i hope u can help me,, my project for college is the wiimote whiteboard but i need the program in c#
plz if u have the code i need it
thnx again
Can this be changed from Java program to Java applet?
It worked as described on Ubuntu 8.04 (Hardy), but NOT on 8.10 (Intrepid).
Hi,(WiiRemote.java:216)
I’m getting connection error with wiimote when I launch the program. The error says: Not supported on bluesoleil
———————————————–
BlueCove version 2.0.3 on bluesoleil
Nov 4, 2008 12:41:41 PM wiiremotej.WiiDeviceDiscoverer getDevice
SEVERE: Error getting device!
java.io.IOException: WiiRemote failed to connect!
at wiiremotej.WiiRemote.construct(WiiRemote.java:305)
at wiiremotej.WiiRemote.
at wiiremotej.WiiDeviceDiscoverer.getDevice(WiiDeviceDiscoverer.java:122
)
at wiiremotej.WiiRemoteJ.findDeviceInternal(WiiRemoteJ.java:270)
at wiiremotej.WiiRemoteJ.access$100(WiiRemoteJ.java:25)
at wiiremotej.WiiRemoteJ$1.run(WiiRemoteJ.java:354)
at java.lang.Thread.run(Unknown Source)
Caused by: com.intel.bluetooth.NotSupportedIOException: Not Supported on bluesoleil
——————————————————–
My wiiremote is NOT connected with my computer’s bluetooth programs or utilities.
Regards,
Rana
Downloaded the software and got an error message.
The following disc images failed to mount
wiimotewhiteboard.dn codec overrun
Trying to get this to work for my wife’s class. Any help is appreciated.
Hi Kurizuto,
first of all I’ll recommend to install the Apple Developer Tools if you want to start programming for the Mac.
All the libraries you need to compile my source code are included in the source code zip file.
An Apache Ant build.xml file is included for easy compilation (just type ant in the Terminal to compile and run the software).
I’ll recommend to use an IDE for serious development. A list of Java IDEs can be found here.
Uwe
Hi mohamed,
Java 1.5 should be installed and the default version on Mac OS X 10.4.
Maybe the default is set to an older version (type java -version in the Terminal to find out).
I guess you already tried the Java Preferences.app (in /Applications/Utilities/Java/).
Uwe
Hi foxo,
you found the wrong website. I guess you’re looking for this.
Uwe
Hi raich,
see this previous post for information about BlueSoleil.
Uwe
Hi,
I just downloaded the disc image and had no problems mounting it on Mac OS X 10.4.11 and 10.5.5.
There are many pages on this topic: Google.
Uwe
Hi Jason,
please add your knowledge to the Troubleshooting page in the Wiki.
I encourage everybody to contribute to the documentation.
Uwe
No, it can’t be run in the browser as an applet. One reason is the Bluetooth library I use (see this thread).
Uwe
I’m using Vista 32-bit and everything is working fine except when I enable the TUIO output.
I receive the following error in the command window and my TUIO application does not receive any TUIO data:
java.net.BindException: Cannot assign requested address: no further information
at sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(Unknown Source)
at sun.nio.ch.DatagramChannelImpl.send(Unknown Source)
at sun.nio.ch.DatagramChannelImpl.send(Unknown Source)
at de.sciss.net.OSCTransmitter$UDPOSCTransmitter.send(Unknown Source)
at de.sciss.net.OSCTransmitter.send(Unknown Source)
at de.sciss.net.OSCTransmitter.send(Unknown Source)
at de.sciss.net.OSCClient.send(Unknown Source)
at org.uweschmidt.wiimote.whiteboard.tuio.TuioTransmitter.irWarped(TuioT
ransmitter.java:169)
at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler.IRInputReceived(
WiimoteDataHandler.java:222)
at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler.IRInputReceived(
WiimoteDataHandler.java:163)
at wiiremotej.WiiRemote$1.run(WiiRemote.java:462)
at java.lang.Thread.run(Unknown Source)
I’ve searched the web and haven’t seen much info on this. Any suggestions?
Thanks.
We are using your Mac and Cross plateform Wii Remote software in some of our classrooms.
While we have two other interactive whiteboard products also in use, the Wii remote will be our new system of choice. The savings will allow me to invest in ceiling mounting our digital projectors.
I created 3 (so far) videos for our staff related to the Wii remotes, please share if you find them helpful, Wii Remote demo, Making an IR pen, & Parts needed for an IR Pen
Visit the videos @ http://podcast.sad60.k12.me.us/groups/itsupport/
Thank you for your valuable contribution to the educational!
Dave Saltmarsh
MSAD #60
North Berwick, Maine
techdir@sad60.k12.me.us
I just downloaded 0.98 on my MacBookPro and the application will not launch, I get “Bluetooth failed to initialize….” The previous version worked last night, and the JAVA cross platform version works fine. Is it possible to download the older version?
I have found that the vast majority of problems that occur with use of the wiimote whiteboard and pen problems are the fault of the user. I provide a cost-effective means to try out the wiimote whiteboard. Are they perfect? No. I have no problems with my pens and I am a teacher who uses them regularly.
We are trying to install these in our classrooms. Wonderful software…….. Did it at home
Hi Troy,
which host and port did you use (TUIO preferences)?
Uwe
Hi Dave,
thanks for sharing those videos with us!
Uwe
Hi Karl,
that’s odd. The cross-platform and Mac version should behave the same way on the Mac.
Does that problem occur all the time?
Nevertheless, I uploaded version 0.9.7 to http://senduit.com/e688ec.
It will expire in one week.
Uwe
Thank you very much. The old one works like a charm. Is there a proper way to upgrade? I just deleted the old one and dropped in the newer version and that did not work. I could email you a screenshot of the error and maybe some log files if that will help.
I used the default host and port. When I use a C# program, WiimoteTUIO_v0.4, everything works fine. (http://www.wiimoteproject.com/tech-chat/wiimotetuio-update-v0-4-plus-source/) I would rather use your program, however, because you have all the pieces together.
I’ve also enabled Java in the Windows firewall with no improvement. Although I don’t think that is the problem anyway because I did not have to do that for WiimoteTUIO_v0.4.
Troy.
Hi Karl,
That’s the way to do it, as for any Mac application.
Please do that.
Uwe
Hi Troy,
in that case I don’t have any more suggestions.
Could anyone else running Vista please help out by testing TUIO? Just enable it and report whether the error occurred.
Uwe