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, Indonesian, 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.3)
Some example videos
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

Does the software here allow for more than 2 Wiimotes?
i haven’t been able to use the software yet=(
Hi Anne,
thanks for sharing your “Vista odyssey” with us!
The game was pretty good. You showed Italy who’s boss
Uwe
Hi mcclane,
try this little Java app from reactable (they also have other example clients) to check whether TUIO is working. It doesn’t require Flosc to be run, hence you can check whether it causes the problem.
Uwe
See this previous post for information about BlueSoleil.
I’m not dealing directly with Bluetooth in my app. See the post I linked above.
Uwe
No, currently not. I haven’t even received much feedback from people using two Wiimotes with my app…
Uwe
it’s as you
Hi Uwe,
it’s as you suspected. In the Java app I have the same problem. Just one pointer. It seems that TUIO doesn’t work. But I have no idea why? I enabled it in the application.
Any idea?
Hi mcclane,
that seems odd to me. There should be no pointer in the Java app if TUIO isn’t working. Maybe your second IR pen isn’t working, or the pens are too close to each other and are recognized as one IR dot.
A further test is to run the command-line “dump mode” by typing this in the folder with all the stuff: java -cp Tuio.jar TuioDump
Then start the Whiteboard app (and calibrate if necessary). You should see a bunch of messages at the command-line when you move the activated IR pen around.
Uwe
didn’t answer this:
what other than bluesoleil can i use?
I tried 2 wiimotes, but for about a week or so, and not much. I got it just before the last week of school, and now school is out for the summer. Here’s what I’ve noticed:
It takes about twice as many restarts to get both wiimotes working.
I haven’t noticed any real improvement in accuracy.
The main reason I wanted 2 wiimotes is so that I could have them both covering the same area from different angles so I wouldn’t have to worry about the students blocking it when they write. I haven’t been able to find a good way to make this happen. This isn’t any reflection on the software, of course, but it is an issue.
I wish I could give more feedback, but as I said, school is out and I’m busy with classes.
I tried 2 wiimotes. This seems to work well. I did not give it an extensive test, however it seems that there is a minor improvement over using 1, because it captures clicks that are blocked by the other.
It seems clear to me that 2 wiimotes (or super optimal placement of 1) is key, because it is hard to use the pen naturally and still make sure there is always a line of sight to the wiimote.
Anyone with tips about optimal placement for 1 or 2 would be helpful.
Thanks for all these cool toys,
Daniel
Hi Uwe,
maybe you misunderstood a bit. I meant with “just one pointer” that there is just the normal mousepointer there.
I tested the TuioDump but nothing happend in that command-line
I got only a lot of output in the whiteboard app command-line.
Hey Uwe,
I have searched through the comments to see if maybe there was a solution for my problem but I couldn’t find any.
I am using Windows Vista 64bit on HP TX2120 US and when I try to use your whiteboard software I get the following error: click me.
Briefly my problem is that WiiRemote failed to connect, with the following error: Not Supported on winsock.
Looking forward to reading your reply,
Omri.
Hey Omri,
you can read the post from Anne or you can directly go to this url http://www.dev-toast.com/2007/01/05/uncrippling-bluetooth-in-vista-rtm
and follow the instructions.
I had the same problem on Vista 32bit and now it works
I did ny 2nd test with two wiimotes.
A- 5 minutes after start I remember to go to the preferences and switch to “2 wiimotes” mode. An auto detect will be great! At least for me
B- Problems to connect the two wiimotes…
C- The first calibration were wrong about 50-100 pixels from the mouse pointer
D- The second calibration were very very accurate: just 1 or 2 pixels from mouser point!
E- about the work:
E1- Like Descalzo, I haven’t noticed any real improvement in accuracy.
E2- Works the same with two wiis or with one wii or with the other wii.
E3- Some times, my body block one wii and my hand block the other wii.
E4- The most important wii is the one in the oposite side of my hand. I write with the right hand, and the most important wii is the one on my left side. A lot of times my hand block the right wii.
E5- I really didn’t know if I was working with the two wiis cover the same screen space (I believe I was) or if I was working with the wiis cover diferent spaces of the screen… Maybe some kind of info in in the calibration window (after the last calibrated point) saying what’s happen (I will sed you a mockup with this idea… just give me some time to finnish my classes…)
After all, with one or two wiimotes, your app. wokrs great! After pass by the bluetoth connection everythings are easy, sweet and SMOOTH! And very precise! And very effective!
And about this off-topic “Euro 2008″:
Great work Anne: ‘your’ Dutch team and your tutorial!!! Maybe I will try the PaperMate W10. (see my IR Pens @ http://clinik.net/wiimote/wiimote_info.php and follow the links)
Uwe, perhaps ‘your’ Germany will play with ‘my’ Portugal in the quarter-finals! It would be nice!
Francisco,
Re. E5: You can already tell if they are covering the same space or not based on the calibration. See the youtube video that Uwe has posted at the top of the page on using two wiimotes. IIRC, If both wiimotes cannot see some of the points, then it takes 6 points instead of just 4 to calibrate. Or something similar to that.
Try using the WIDCOMM stack (see this post).
Uwe
Hi mcclane,
What kind of output? Do you mean the command-line or the log window (accessible via ctrl+L)?
In order to get on the same page, please send me screenshots of the main window, preferences window, the command-line and log window (both with the “output”). You can get my email address on the contact page.
Uwe
I never restart the program when I get errors on connecting Wiimotes. I simply try to connect again, and it eventually always works (sometimes takes 2-3 tries). Like I said a couple of times, I currently cannot do anything against that since the whole bluetooth stuff is done by 3rd-party software libraries.
What do you actually mean by using the word “accuracy”?
I also wanted to have this but it’s currently not possible to due a problem in WiiRemoteJ. At least on the Mac, an error message will pop-up every 20 seconds if only one Wiimote is used. And that’s the reason I put a note directly next to this setting in the preferences window.
Well, I don’t find it easy to explain how the calibration works. I tried in this thread.
Good idea.
Uwe
What do you actually mean by using the word “accuracy”?
I mean when I draw a diagonal line slowly it still draws ’stairs.’ I don’t know why I imagined 2 wiimotes would make that stop.
Thanks for the tip on reconnecting instead of restarting the program. I’ll try it next chance I get (next week, I hope).
Changes
* Changed preferences window
* Added “Touchpad Mode” feature (disabled by default)
* Added “Assist Double Click” feature (disabled by default)
* Removed “Mouse movement threshold” feature
* Moved “Right Click” setting from main window to preferences window
* New calibration icons
* Using newer BlueCove 2.0.3 snapshot
* Updated Help
Uwe
Averaging position data to smooth mouse movements is then apparently the key to perceived accuracy (you’re actually losing accuracy through averaging).
The root of the problem of jagged lines is that position data from the Wiimote always contain “small errors”. Averaging aims at canceling those out. I guess whether you average over data from one or two Wiimotes won’t make much of a difference (other than having twice the amount of data).
The problem is to decide on the “window”, i.e. the number of last values or time span, over which to average. A large window will make it very smooth but also delay mouse movements, i.e. the cursor will always be behind the actual position of the IR pen. A small window will make it less smooth but more responsive.
I chose the window to be the last 7 position values, which seems to work well with “normal speed” movements. Ideally, the window would be smaller if you do fast movements and larger when doing slow movements. Maybe an “adaptive” averaging, that chooses the window size based on the speed of IR pen movements, is a better solution.
I’m also pretty sure that other people have encountered and solved this (or a similar) problem in other domains…
Uwe
Hi, i will be downloading and trying the new version! thanks alot for the touchpad mode addition, you are a indeed a star, thanks very much.
for those who have had response issues, i found sometimes that by increasing the priority of the app in task manager to high or above normal, it helped as some applications when running would affect the response.
the app is java`something`.exe , and i`ve found it handy to ensure it doesn`t randomly go slow etc. if not tried it, give it a go.
much kudos to Uwe
Ben K
Good work Uwe.
I like the new calibration icons
And the new Preferences Window is a good choice! (the blue shadow of selected items seems, sometimes, erratic…)
I will try the very news “Mouse Controls”. I’m excited and curious about them.
One Idea:
I still think the place of the “enable move only or move & clik” prefs are in the new “Mouse Controls” tab of Preferences Windows…
Congratulations!
thanks for the driver link, just in time to. Bluesoleil’s not seeing my usb adapter any more -.-
i’ll post later how it works out:)
If i’m reading this right, the new version works with bluesoleil drivers?
just reread the new version post……..
i read something wrong…..=(=P
It only does the “stairs” thing when I move the IR pen very slowly or the batteries are dying. I have figured out that the smoothing can’t help because the last 7 readings are so close together when I move it that slowly. I also think it’s because the resolution of the wiimote and of the desktop are so different. I will have to experiment when I have time.
Either that or move it faster.
i tried downloading it, but i can’t install it=(
it says it can’t see a bluetooth device….but i was using the bluetooth device when i tried to install, proving the device is there and working normally….
any help?=(
A quick thankyou for your efforts in this growing field. I am most impressed. It is developers like you that push everything forward. I hope that you receive the credit you are due.
-gav