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

I finally
Thanks Uwe!
I finally figured out that although I am getting the message, I can still calibrate and successfully move forward with my experiment.
I got the whole thing to work last night and I am delighted. My next problem has nothing to do with your mac software, but I will pose it non-the-less in case you have any wisdom…After arduously moving my wii remote into a position that would calibrate on my white board, someone crashed into my tripod and now I cannot seem to find the correct height/angle to successfully calibrate. Can anyone articulate the best way to place a remote so that is it is appropriately angled for the whiteboard? I have watched Johnny Lee’s YouTube video, but it did not provide me with enough clues to determine what I am doing wrong.
Hey guys!
I suggest you have a look at the wiimoteproject.com forums, this post is especially good. The Wiimote can also apparently “see” some wavelengths better from further away. I’m be no means an expert on that. I just remember having read it somewhere.
That’s odd. You mean the program starts up fine and successfully connects but no IR dots are detected? Did you do that like ten times in a row and always the same behavior?
Johnny’s app doesn’t really do any magic
It could have something to do with his Wiimote library. It’s unlikely but I haven’t looked at the code. But here comes a general thing:
The communication with the Wii Remote is undocumented and not fully understood. All that is known has been found out by members of the community through reverse engineering.
Just consider this quote from Wiibrew:
So far I’m not aware of a way to query the IR camera’s state. That’s the reason why the program behaves differently sometimes. A future version of the software will have some “Reset Camera” function that re-initializes the IR camera.
So please test several times before thinking it always works like on first try.
The current version (0.9.1) always does a bluetooth device discovery and will connect to the first Wiimote that is found. I’m planning to include the option of connecting to a specific Wiimote by using its Bluetooth address. It is much quicker and has the advantage that nobody else can interfere with another Wiimote (like in a classroom) and beeing connected first.
Why aren’t you using the built-in right click function? If it’s because it doesn’t work well in Windows, that will be fixed in the next version (already implemented, see Julien’s post).
Which message? And are you using the latest version?
I certainly can not, but try the wiimoteproject.com forums. One help with calibration are the Visible IR dots in the GUI. Point at each corner of the screen while moving the Wiimote around so that it can just see the light.
Uwe
Hi all,
I have a PowerBookG4 running OS X version 10.3.9 , PPC 1.33GHz .
When I try install Wiimote Whiteboard … I get error message:
” Could not launch application because it requires a version of Java that is not installed” … I have – according to the message – Java 1.4.2 and 1.3.1 not 1.5 and so far it appears that Apple only offers Java 1.5 for OS X 10.4 and later.
What should I do? Please help.
Thank you for all your work!
P
Hi,
Java 1.5 is indeed required and there’s no way around it, sorry. It seems like you have to upgrade to Tiger or Leopard in order to use Java 1.5 on your Mac. And this blog post makes clear why you shouldn’t try installing it on Panther.
Uwe
Original text:
‘I finally figured out that although I am getting the message, I can still calibrate and successfully move forward with my experiment. ‘
Uwe’s question:
Which message? And are you using the latest version?
________________________________________________________________________
Julie’s response
Sorry…I was referring to the ‘Error Sending Data’ message. I still often get that message or the dump of code that others referred to, but I figured out that I can still move forward and calibrate. Now if I could just postion that wiimote correctly…….
Yes, I am using the latest version of your code (thanks for doing all this!)
Julie
Hi Julie,
How do you get that message? Are you looking at the Log or does an actual error message pop up? Could you please send a screenshot of this to me? You can get my email address on the contact page.
Uwe
Changes:
* Added mouse move threshold option
* Changed right click implementation, now better usable in Windows
* Added button to reset the Wiimote’s IR camera in case of sensitivity problems
* Added tooltips to buttons and labels
* Minor bug fixes
Further explanation in the accompanied help files.
Enjoy,
Uwe
Hello,
I’m using a Windows XP PC and i have tried your last version of wiimote whiteboard (0.9.2) with a video projector. My wiimote is 1,5 m from the wall.
When i compared Johnny Lee’s version to your’s, i noticed that the jar version was less sensitive : when drawing a curve, the line was slightly irregular.
Otherwise, with your soft the bluetooth recognition of wiimote is faster and more confortable, and the right-click option goes well. I appreciate too the large amount of informations that your soft gives and, of course, his platform-independence.
So thank you for this very nice job, and i hope you will overcome this problem of sensitivity.
Chris, from France.
Very nice ! I am looking forward to getting this and Kindlelab running here real soon!
-
Can anyone articulate the best way to place a remote so that is it is appropriately angled for the whiteboard?
The reason lines are sometimes jaggy and drawing is difficult is because the area on the Wiimote IR-camera that covers the screen (or drawing-area) is not optimized correctly.
Also even the slightest movement of the Wiimote will cause an effect which magnitude is a function of the distance between the Wiimote and the drawing-surface (the larger the distance the greater an effect a vibration will cause).
The optimum position would of course be through a see-through display where the camera would be perpendicular to the surface that it’s pointed at. This however is rarely possible and depends on the available equipment.
In order to optimize the position of the camera relative to the drawing-surface (your monitor for instance) it’s helpful to get a view of the actual pixels that the IR-camera sees. DarwiinRemote utility contains this tool (although it might be a bit difficult to find at first).
A tripod is suggested for the final placement of the Wiimote, make sure that any movement cause minimal disturbance/vibration to the Wiimote.
The optimization-process could be done for instance like so:
1. Connect to your Wiimote with DarwiinRemote
2. Activate only the IR-sensor
3. Show the IR-realtime data window from the “Window”-menu.
4. By moving your IR-pen along the edges of your monitor make sure that the IR-camera covers as big an are as possible. Move the position of your Wiimote in order to make this area as big as possible, it might require you to place yourself as much to either side of you monitor as possible.
5. After you’ve found the optimized position using DarwiinRemote it’s time to start using Uwe’s excellent “Wiimote Whiteboard”.
You can find DarwiinRemote (current version is 0.6) at
http://sourceforge.net/projects/darwiin-remote/
Uwe, thanks for your excellent effort in bringing this to us OS X users as well!
If I may place a few future suggestments:
1. A window such as described above which would show exactly what the IR-camera sees (this would help the placement effort)
2. A mouse-movement smoothing option, essentially this would interpolate between the actual locations and not move to any given mouse-location directly. This would help to create more flow in Illustration applications.
Thanks,
Carlington
Hi Uwe,
Nice job for the right click, It works exactly as I want !
I still have a sensitivity problem compared to johnny’s soft (same hardware configuration and position)… Probably because of the library…
I hope next versions will fix the problem
Thanks a lot !
Julien
I have been having a particular issue. There are times, when I turn on the wiimote and instead of detection, I have the wiimotewhiteboard LOG file appear….sometimes I can restart and it goes away, other times I have to trash the program and re-instal. It’ll work once and then bang…the next time I load it up the log file reappears. Is anyone else having this problem? I’m running the latest version and I think it is a new phenomena with the release of 0.9.2.
Any info would be helpful.
Is the log file stored anywhere? If so, where and how do I delete it?
OSX 10.5.2
Is there a way i can download version 0.9.1 ? I find 0.9.2 requires the wiimote being less than a metre away from the screen. Meaning it will only work if i use my laptop as the screen. With a projector, I can’t get this to work effectively. I’m not sure what happened with 0.9.2, but I prefer 0.9.1 I deleted it after I installed 9.2. I find the latest version buggy… its skips a lot, moving windows around is difficult…if i drag an icon it will move for a bit and then stop following the cursor. When I draw, instead of getting lines I get dots.
George,
Have you tried the Reset Wiimote button?
Thanks for all the feedback.
I can’t add much to what I already said about sensitivity. It just doesn’t always behave the same way. I guess there might be a slight difference in the IR camera initialization sequence between the Wimote library I use and the one Johnny uses in his program.
The good news is that I talked to the guy who found out a lot of the stuff we currently know about the Wiimote’s camera. He told me (two days ago) to expect “huge developments in this area in the next week or two”. Let’s hope for that
The problems George is having are probably related to sensitivity and Bluetooth issues.
I sometimes get connection errors as well. Java in combination with Bluetooth isn’t very mature and reliable either. That’s something we unfortunately have to live with for now but I expect improvement in the future as well.
I’ll gladly send you version 0.9.1 although I don’t think it will solve any of your problems.
Concerning the Log:
* shows some information of what’s going in the background
* error messages are shown as well
* made visible on demand or automatically when SEVERE errors occur
* not stored on disk
* no change in 0.9.2
Uwe
Thank you for your suggestions, Carlington.
Done, will be included in the next release.
This is a good idea but I don’t think there is a single best way to do it though. I’ll add this feature with the option to select a “mouse smoothing strategy”. The user may thus be able to choose among various “strategies” (where “no smoothing” will be one of them) which can be extended in the future.
I actually own a kind of small flexible tripod called Gorillapod. This in combination with the Wiimote could be a cheaper and more flexible alternative to a big and heavy tripod.
I just see they have the model Go-Go that can be used with a suction-cup clip or high-bond adhesive clip to attach the Wiimote. This is just an idea which I haven’t tested.
Uwe
Changes:
* Added IR camera monitor to assist positioning the Wiimote
* Added mouse movement smoothing (currently only simple moving average using last 7 points). Works pretty well and is enabled by default.
* Minor GUI adjustments
Uwe
Thanks for your work and this new update.
The Java version will not work on Linux in its current state for two reasons:
* The current binary release of BlueCove (2.0.2) is bundled with the program. Linux BlueZ support was added in BlueCove version 2.0.3 as additional GPL licensed module.
* I can’t distribute the GPL module with my software for legal reason (as far as I understand).
So you basically need to install a recent BlueCove 2.0.3 snapshot and the additional GPL’d Linux module. Then try to run the program like this:
java -cp bluecove-2.0.3-SNAPSHOT.jar:bluecove-gpl-2.0.3-SNAPSHOT.jar -jar WiimoteWhiteboard.jar
I guess it won’t work though since BlueCove 2.0.2 is already bundled with my program and will thus be conflicting with the snapshot of 2.0.3. You could also compile the source code yourself and use it with the replaced BlueCove libraries if you know how to do that.
I’ll be away snowboarding for a couple of days and get back to you when I return.
Uwe
First off, thank you for porting this to osx. I use this to turn my monitors into touch screen monitors. Instead of a pen, I have made a glove with an IR led on the top of the index finger and a momentary switch on the tip. So when i touch the screen the led turns on. This works out great, but I do have a suggestion. I have a dual monitor set up and it would be great if i could do this across both monitors. When I would calibrate I would ideally like it to give me 2 points on the left side of the left screen and 2 points on the right side of the right screen. Also, if I were to use this with multi-touch capable software would a second touch register? Wasn’t sure if being able to see how many visable ir dots there were and the ir camera also meant that this was possible.
Not sure why, but I keep getting issues with jaiI18n not being able to be resolved. Figure I am missing something in my project setup within eclipse 3.3? Any ideas that could get me pointed in the right direction please?
Thanks
is it possible to have a single click to control the mouse and a double click to activate the mouse click. like on the track pad? i also wanted to say thank you for porting this over to the mac it really is an amazing program.
Hi, I’m the first one who tried with the Apple Remote, I made a IR pen for maybe one week And I just downloaded the very last version and the differences between the two versions are amazing. It is much smoother, and I still can’t believe the drawing I made with photoshop. The new setting are PERFECT, it is exactly what needed to be done. There is no word to express how happy I’m to use this whiteboard.
Maybe the last point that must be done is using two IR led at the same time, the first one (always lighten) just to move but not click the mouse and the second one to left click.
I’m french so I hope I was enough clear in my comment !!!
bye
tibo
Tibo, the problem most people have found with 2 LEDs is that if they are close enough the wiimote can only see one blob.
I didn’t notice until now that the class PerspectiveTransform uses JaiI18N in case of errors since I have Java Advanced Imaging (and hence JaiI18N) installed on my system. JaiI18N is actually only required to compile the software since errors in PerspectiveTransform shouldn’t occur in the way I use it. Hope that explains things a bit.
The easiest way to fix the problem for you is to install Java Advanced Imaging as well.
Uwe
Multi-screen support: It’s possible and I was already considering this when I added the screen selection. I’m still thinking about the right way to do it though. It will be included in a future release with high probability.
Multi-touch support: Not planned since the software is all about controlling the mouse cursor of the operating system (which doesn’t support multiple mice). They only thing I could do is to output the available position data of all 4 IR dots in a format that a multi-touch capable program understands.
Trackpad-like mouse control: This could be done but may I ask why you want to do this? Doing right-clicks won’t work either.
Two-LED support: Doesn’t work that well (Descalzo already pointed out one reason). The Wiimote frequently sees two IR dots in my setup here at home. One from the IR LED and one from its reflection on the screen (when I hold the IR pen at some distance).
Please participate in the poll about the hosting situation.
Uwe
Uwe,
Yes, outputting the position of all 4 IR dots would be *wonderful*. You have my vote. Thanks for all your work!
Josh
I am of the same opinion as the previos poster, Josh. I would be very happy to see a multi-touch integration. Maybe you could implement TUIO-messages. As far as I know, there are several flash-applications that uses these messages to implement multi-touch.
Thanks for your wonderful work!
Simon
I actually already implemented the TUIO protocol and successfully tested it on Windows with this Multitouch Flash Puzzle. I couldn’t get any multitouch Flash apps to work on Mac OS X though. I’m also not quite sure about the “best” format of the TUIO messages to make it compatible with most multitouch apps. But the next release will definitively have the capability to send out TUIO messages.
Information on multitouch in general and especially help to get multitouch apps to work on Mac OS X is highly appreciated and will speed up development of that feature in the Whiteboard program.
Uwe
I have already tried to combine the wiimote software with flash-multi-touch applications on my own. There is an windows software comparable to johnny lees ones that sends TUIO messages to a server and port. (http://code.google.com/p/wiimotetuio/).
I tried to get the Multimedia Application from multigesture.net to work (http://www.multigesture.net/2007/09/17/multitouch-media-application-v2-release/) but I needed an software that “translate” TUIO messages to flash. That’s what I think Flosc does (http://code.google.com/p/flosc/). For me the setup worked under windows to control the multimedia application with 2 ir-pens.
I hope that will help you a little bit.