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)
- Cross-platform Java version
- Mac application
- Important: Does not work with Mac OS X 10.8 “Mountain Lion” after download. This is due to Bluetooth changes in OS X 10.8 that break compatibility with my application. This may solve the problem.
- Source Code
Video
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 can also confirm that the app is crashing at start-up upon updating the mac OS to Mountain Lion (10.8). If you rely on Wiimote Whiteboard in your classroom don’t upgrade to Mountain Lion until this is resolved!
Hello,
I thought you may not have Mountain Lion, and didn’t want it. But you might be interested in the error message — hoping that it’ll help you figure what’s going wrong and correct it.
Here’s the error log:
Process: WiimoteWhiteboard [1136]
Path: /Applications/WiimoteWhiteboard.app/Contents/MacOS/WiimoteWhiteboard
Identifier: org.uweschmidt.wiimote.whiteboard.WiimoteWhiteboard
Version: 1.0.3 (20100605)
Code Type: X86 (Native)
Parent Process: launchd [157]
User ID: 501
Date/Time: 2012-08-03 23:25:27.118 +0200
OS Version: Mac OS X 10.8 (12A269)
Report Version: 10
Interval Since Last Report: 45038 sec
Crashes Since Last Report: 1
Per-App Interval Since Last Report: 7 sec
Per-App Crashes Since Last Report: 1
Anonymous UUID: 7C487EDE-513F-41F7-A5A3-297F7F72F7EA
Crashed Thread: 27
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0×0000000000000002, 0×0000000000000000
Dyld Error Message:
Symbol not found: _IOBluetoothLocalDeviceReadSupportedFeatures
Referenced from: /private/var/folders/*/libbluecove.jnilib
Expected in: /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0×997ba7d2 mach_msg_trap + 10
1 libsystem_kernel.dylib 0×997b9cb0 mach_msg + 68
2 com.apple.CoreFoundation 0×9100bcc9 __CFRunLoopServiceMachPort + 185
3 com.apple.CoreFoundation 0×910116af __CFRunLoopRun + 1247
4 com.apple.CoreFoundation 0×91010d6a CFRunLoopRunSpecific + 378
5 com.apple.CoreFoundation 0×91010bdb CFRunLoopRunInMode + 123
6 com.apple.HIToolbox 0×93f2e8aa RunCurrentEventLoopInMode + 242
7 com.apple.HIToolbox 0×93f2e619 ReceiveNextEventCommon + 374
8 com.apple.HIToolbox 0×93f2e494 BlockUntilNextEventMatchingListInMode + 88
9 com.apple.AppKit 0×95d04a5a _DPSNextEvent + 724
10 com.apple.AppKit 0×95d0428c -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 119
11 libawt.jnilib 0×13404275 -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 132
12 com.apple.AppKit 0×95cfa6dc -[NSApplication run] + 855
13 libawt.jnilib 0×13402598 +[AWTStarter startAWT:] + 2019
14 libawt.jnilib 0×13401d65 -[CPerformer perform] + 259
15 libobjc.A.dylib 0×9225c5d3 -[NSObject performSelector:withObject:] + 70
16 com.apple.Foundation 0×93123200 __NSThreadPerformPerform + 395
17 com.apple.CoreFoundation 0×90febdcf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
18 com.apple.CoreFoundation 0×90feb7f9 __CFRunLoopDoSources0 + 233
19 com.apple.CoreFoundation 0×91011576 __CFRunLoopRun + 934
20 com.apple.CoreFoundation 0×91010d6a CFRunLoopRunSpecific + 378
21 com.apple.CoreFoundation 0×91010bdb CFRunLoopRunInMode + 123
22 com.apple.JavaApplicationLauncher 0×00006268 startupJava(LauncherArgsStruct*) + 304
23 com.apple.JavaApplicationLauncher 0×00009095 launchJavaApplicationWithJVMInfo + 1401
24 com.apple.JavaApplicationLauncher 0×0000599f launchJavaApplication + 39
25 org.uweschmidt.wiimote.whiteboard.WiimoteWhiteboard 0×00001e3a 0×1000 + 3642
26 org.uweschmidt.wiimote.whiteboard.WiimoteWhiteboard 0×00001c99 0×1000 + 3225
27 org.uweschmidt.wiimote.whiteboard.WiimoteWhiteboard 0×00001bc8 0×1000 + 3016
…
Hope it helps. Thanks for your work.
what kind of bluetooth stack is needed for this java version ?
Dear Uwe, dear all,
For the past few days, I’ve been checking your site hoping that you would release a new version of wiimote whiteboard, to make it compatible with Mountain Lion.
I guess that won’t be possible before Apple release some patches. As a matter of fact, Mountain Lion is extremely faulty, especially when it comes to wifi and… bluetooth!
I’m considering downgrading to Lion, unless Apple release the necessary correction to their system, before the end of the month – School starts in September, I need wiimote whiteboard by that time.
So, if you haven’t bought/installed Moutain Lion, DON’T DO IT! Wait until it’s safer.
For those who, like me, have already taken the plunge, what do you intend to do?
Dear all,
sorry for not posting here in a long time.
I will do my best to make Wiimote Whiteboard compatible with Mac OS X 10.8 “Mountain Lion”. Unfortunately, I can’t make you any promises if or when this is going to happen. These Bluetooth issues might require updating one or two libraries that are used withing my app (BlueCove and WiiRemoteJ), hence I might rely on other people to fix this.
Uwe
Hi Uwe,
Thank you so much for putting your time and effort into developing a Mac version of the Wiimote Whiteboard. I learned about this only recently, and am thrilled about what I may be able to do with it in my teaching.
Unfortunately, I seem to be experiencing some problems to get the software to recognize my Wiimote (with MotionPlus), and I was wondering whether you may be able to provide some guidance.
I use a Macbook Pro with OS X (10.6.8) and Java SE 6 (version 1.6.0_33-b03-424). When I turn on the Bluetooth on the laptop and start the Mac version of the Whiteboard program (1.0.3), however, the program never seem to be able to find the Wiimote (I have tried both the pressing of 1 & 2 buttons, as well as the red button on the back of the Wiimote with little success).
I have also tried the Java version of the Whiteboard program (1.0.3), and receive a WiimoteWhiteboard pop-up error message stating that the “Bluethooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.” Unfortunately, when I go to click the “OK” button to dismiss the error, the log window containing the error message disappears as well.
When I try the Smoothboard for Mac application (Version: 1.0 Build 1009 – http://www.smoothboard.org/mac/ ), however, the Wiimote is immediately recognized and properly recognize my IR pen.
Thank you very much for your time.
Love your program, looking forward to a potential fix for OSX Mountain Lion!
Hi Zack Palmer! Class of 2011 Nipissing graduate…great to see your postings. I too am hoping that the Wii-Mote Whiteboard software for Mac can be upgraded to handle the new Mac OSX 10.8.x Mountain Lion.
hello,
trying to reinstall this on fresh ubuntu 10.04 and 12.04, I can’t pass the always the same error of
java.lang.IllegalStateException: Bluetooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:74)
at org.uweschmidt.wiimote.whiteboard.WiimoteConnector.connect(WiimoteConnector.java:48)
at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler.(WiimoteDataHandler.java:84)
at org.uweschmidt.wiimote.whiteboard.WiimoteWhiteboard.startup(WiimoteWhiteboard.java:99)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:670)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:640)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: javax.bluetooth.BluetoothStateException: BlueCove com.intel.bluetooth.BluetoothStackBlueZ not available
at com.intel.bluetooth.BlueCoveImpl.loadStackClass(BlueCoveImpl.java:342)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:427)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:67)
… 18 more
I have well the symlinks pointing to the libbluetooth lib
lrwxrwxrwx 1 root root 26 2012-09-26 11:13 libbluetooth.so -> /usr/lib/libbluetooth.so.3
lrwxrwxrwx 1 root root 21 2012-07-08 00:24 libbluetooth.so.3 -> libbluetooth.so.3.5.0
-rwxr-xr-x 1 root root 83108 2010-04-09 12:35 libbluetooth.so.3.5.0
Would you have a hint to what is the problem here ? (launching with root give same error)
It’s still working on a ubuntu 9.04 machine here, but I need to update it and install another one (using it with a processing app to do multi pointer virtual graphiti for kids … and theater!… )
Thank you UWE for this wonderful piece of software! It works very well here on Windows XP with two wiimotes. On some aspect, it’s superior to smoothboard.
However, it would be nice to support the Microsoft bluetooth stack. Widcomm stack causes problems in other softwares (like Sankore in desktop mode). Do you plan to support MS stack in a near future?
Hey all! Having an issue. Am using a MacBook pro, and running 10.7.5. Just today, I tried to start the Wii Smartboard software. I calibrated like I usually do, and then instead of going to the desktop screen, it goes black. The only way I can get back to my actual computer desktop is to quit out of the program.
Help! This has become a major piece of software that I use in my class on a daily basis.
I’m currently dead in the water and need help!!!!
Hi Ben,
I suspect that the recent OSX update (10.7.5) may have introduced a bluetooth stack error…similar to that introduced with the new Mountain Lion OSX (10.8.x). Hence, until the amazing software gurus can iron out the bluetooth issues, you may want to invest in the Smoothboard for Mac software (http://www.smoothboard.org/mac/download/) as a work around.
Hope this helps,
Ken W. – Nipissing University
will it work with NINTENDO WII REMOTE RVL-003?
Uwe,
I too am grateful that you have taken the time to code this wonderful software, which is so helpful.
Some of us are probably required to update to Mountain Lion, so it’s difficult for us.
Apple released an update on the 4th of October, but I have no idea if it addresses the bluetooth issue or not.
Any further coding and bug fixing for Mountain Lion would, of course, be greatly appreciated.
Again, thank you for such an awesome product!
Best,
Kurt
Ken,
Does this software include the same functionality as Wiimote Whiteboard? It looks like it might, but includes more?
Also, I didn’t see a download for Mountain Lion there either…???
Thanks,
Kurt
Hi,
Thanks for your work, I use mountain lion on macbook pro. I’ve no choice it arrive with my computer. Does an other solution exist for use a TNwii on mac…
With Windoww parallel for exemple ?
Please help me I’ve a computer, a video projecteur in my class. Only the soft is necessary now.
Try the Cross-platform Java version
I tried the Cross-Platform version on my iMac running 10.8.2 Mountain Lion (ML) and encountered a “Bluetooth error” message upon startup (e.g., Bluetooth failed to initialize. There is probably a problem with your local bluetooth stack or API).
I did find a company (Primate Labs – http://www.primatelabs.com/wiinote/) that produces a software that connects with wiimotes using Bluetooth. They were successful in coding their software to work with Mountain Lion releasing their latest version (0.4.0) in August. Perhaps there may be a coder/programmer out there who could take a peek at the Wiinote software’s script (e.g., how does it work within ML and connect via bluetooth and the wiimote device?) — and port the same code over to the wiimote whiteboard application.
Wow this software was working so well before mountain lion. I tried using the cross platform java version that failed got a bluetooth stack issue. Tried downloading Smoothboard as well and that failed with an error. The Smoothboard download page doesn’t even refer to mountain lion i don’t know why people are saying it’s going to work. Does anyone know if someone is working on fixing the bluetooth issues with mountain lion???
Hi all!
Not having any experience with electronics at all, I was looking for an easy way to make an IR pen without going to the expense of buying one just to test this amazing idea out for myself.
What I came up with in the end was this: Many charities give away for FREE LED key ring torches such as these http://www.torchdirect.co.uk/products/led-key-ring-torch-ultra-bright-white-led-pack-of-5.html and I had a couple lying around. I took one apart. There’s no soldering involved, there’s already batteries and a switch inside them, and so all you need to do is swap the existing LED with your IR LED, et voila! cheap and simple IR pen!
Fantastic program, but unfortunately our schools’ computers all run Mountain Lion. I noticed in a post above, Ken Walker mentioned a company called Primate Labs that has been able to successfully connect Wiimotes via Bluetooth using Mountain Lion. Has there been any progress in Wiimote connectivity using Wiimote Whiteboard on Mountain Lion? This is a truly brilliant program. Thank you for all your hard work!
Uwe Schmidt can you start a kickstarter project to fix this software on mountain lion? I would be willing to spend some money to fix this software. Say $20-$50 anyone else?
Hi everybody,
I’m sorry that my app still doesn’t work on OS X 10.8 “Mountain Lion”.
I’ve looked into the problem a while ago and concluded that I cannot easily fix it. This is not an issue of me wanting to get paid to do this. I’m currently busy at my job, but my plan is to install Mountain Lion and to give it another try at the end of November or in December this year. I cannot make any promises though, since the problem is not caused by my code; it is an issue of the Bluetooth library BlueCove that makes use of outdated Bluetooth APIs, which have been removed by Apple in Mountain Lion.
Unfortunately, nobody seems to maintain (the Mac version of) BlueCove anymore. I’ll give it a try, but I probably don’t have the expertise to fix this.
FYI, Smoothboard for Mac is based on (the same technologies as) my app, hence it won’t work either. On the other hand, if the developer of Smoothboard fixes (or replaces) the BlueCove library, the same solution should be applicable to my application.
The app by Primate Labs mentioned in an earlier comment probably uses the newer Bluetooth APIs recommended by Apple. However, this won’t help me much to fix the BlueCove library, especially since their code is not available.
Uwe
I know some Mac folks might not want to do this but one possible solution is to set up another partition on the internal drive (or use an external drive) that boots up from an older version of the Mac OS. I, for one, have stayed with Snow Leopard after reading that Lion and it successor won’t run PPC apps when Apple abandoned Rosetta. (I have no problem with Uwe’s app on Snow Leopard). I depend on some older utility apps, several that came free with an older Mac years ago. Their updated descendants now require a pay-for-license fee. When I wear out this great MacBook Pro and have to buy a replacement I may have to leave behind some old software friends
Hello,
I use the Wiimote Whiteboard in my classroom along with a few other neighboring teachers. When we use our wiimotes at the same time, my computer picks up my neighbors wiimote and vice versa. We have tried to “name” them, but this continues to happen daily. Unfortunately, this frequent interruption forces us to abandon the wiimote whiteboard mid-lesson, which leads to other problems. Do you have a solution for this? ~Deborah
Hi Deborah,
this should solve your problem.
Uwe
This seems to be the way I may have to go too. Can you have snow leopard, Lion AND Windows 7 on a mac. Triple OS? I have a copy of all three of these, but I just want to get the wiimotes up and running again. Is there a guide out there for this?
Dayle
Dayle.
The answer is (supposedly) yes. My suggestion to create separate partitions for booting to an older Mac OS is covered in several discussions on the web.
Google “Mac boot other OS” and you will find answers.
If you want to switch between Mac OS and Windows check out products such as “Boot Camp”, “Parallels”, or “VMware Fusion”.
Thanks, I’m using boot camp now and I have both Lion and Windows 7, but where I go from here to get Snow Leopard on it is why I’m scratching my head? In bootcamp I only have the two choices. I’ll figure it out over the holidays… I did try Smoothboard as well, and Uwe’s right… I got the black screen and the interactive cursor… but nothing else.
Hope we can get this to work soonish too. I wonder how Boon jin is coming along with this, if at all (?)
I don’t think you can have two Mac OS’s on the boot volume. Boot Camp just lets you have an “alien” OS (Windows) on the same volume you boot from. You need a separate partition on your internal drive (or a second hard drive) to use for your Snow Leopard system, along with the apps you ordinarliy use. This may mean some re-installing on the alternative boot volume, or some restoring to it from a Time Machine back up. Since I remain wedded to Snow Leopard I have had no experience doing this, but the literature says it is possible.