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

Hallo Wiimote Whiteboard fans,
I need some help to get my Wiimote going ( please any suggestions are welcome except a stick dynamite)
The IRLight parameters send from my winfake (a non-genuine Wiimote) are different from what Wiimote Whiteboard expect to deal with. I debuged the results of the variable “dots” at IRDot.java and found:
X position of the light ~ 0.75-1 .It should be 0 to 1 (percent).
Y position of the light ~ 1-1.30. It should be 0 to 1 (percent).
Additionally the first IR source has not the index value i=0 in variable “dots” as expected, but populate i=1 and i=2 in the variable “dots”.
Then I changed IRDot.java as follow:
public IRDot(int id, IRLight light) { this(id,4* (light.getX()-.75),3*(light.getY()-1), light.getSize()); } public static IRDot[] getIRDots(IRLight[] lights) { IRDot[] dots = new IRDot[lights.length]; for (int i = 1; i < lights.length ; i++) { dots[i-1] = lights[i] == null ? null : new IRDot(i , lights[i]); } return dots; }I was able to run the application, but the field of Wiimote camera is divided into 4 X 3 parts.
When I move the IR source from minimum Y to maximum Y the cursor “travels” four times trough the monitor.
When I move the IR source from minimum X to maximum X the cursor “travels” three times trough the monitor.
In the case someone knows a general way(for genuine and no-genuine wiimotes) to exchange data with wiiremotej.jar let me know.
Regards,
Murilo.
Hi,
I am a teacher who is trying to set up my wii whiteboard on my Mac OS X. I followed all the directions on this site, including making my Nintendo wiimote non-discoverable (through deleting) just as instructed by the site. I even downloaded the wiimote whiteboard software (the small box that opens up looks identical to the one on this site).
My issue is that I cannot sync my wiimote to the application. I’ve tried this countless times and each time a box would open up with these words displayed “Connection Failed. Try Again.” I tried holding down both buttons 1 and 2. I tried just clicking both buttons just once and still no success.
Could anyone let me know what might be going on?
Thanks,
Tram
To continue from my last post…
I’m still trying to sync the wiimote to the application and this is what appears in a separate window now– “Bluetooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.” Another window also popped up at the same time called the WiimoteWhiteboard Log with all of this technical information on it.
Could someone explain to me what is going on? I wish I knew more about computers. Any help is greatly appreciated.
Thanks,
Tram
Hi Ben,
I am trying to set up the Wiimote Whiteboard on my school Mac OS X and I seem to have an issue with connecting my wiimote. I followed all of the directions on this site but the wiimote won’t sync with the Mac application provided by this site. I have a brand new wiimote and would try different ways to sync by pressing down 1 and 2 and the sync button on the back. A window would pop up saying “Connection Failed. Try again.”
Could you help? My students are looking forward to seeing this in action.
Thanks,
Tram
Hi Murilo,
are you sure about that? The WiiRemoteJ JavaDoc says that the x-position is from 0 to 1023 and the y-position is from 0 to 767.
Which Wiimote clone are you using?
Hi Tram,
this kind of error is presumable rare on OS X. Please post the debug messages, if you want me to take a look at it.
Hi Uwe,
Thank you so much for your help.
After I open the Wiimote Whiteboard and try to sync it, it says “Connection Failed. Please try again.” Then another window opens up with the WiimoteWhiteboard Log that says:
I will close my thread because my doubt should be discussed in a WiiRemoteJ.jar forum.
I would divide the Wiiremote hardware between genuine and non-genuine. There is some clones (non-genuine) which are easy to identify through a stamp, layout or the missing Nintendo(TM) logo. But I could find several non-genuine Wiiremote with an identical external appearance, although they exchange data in a different way when compared to genuine ones.
According to WiiRemoteJ JavaDoc we should get in
Class WRIREvent
getIRLights()
getX() Returns the X coordinate of the light dot from 0 to 1 (percent).
getY() Returns the Y coordinate of the light dot from 0 to 1 (percent).
When debugging .getIRLights()[i].getX() and .getIRLights()[i].getY()
with one IR source moving from the bottom to the top and from the left to the right
i=0
(X) 0.772238514173998 (always)
(Y) 1.001303780964798 (always)
i=1
(X) 0.75~0.99 0.75~0.99 0.75~0.99 0.75~0.99
(Y) 1.00~1.33 1.00~1.33 1.00~1.33
i=2
———–Y———– Y———- Y———— Y
X—-0,8905—-0,9061—-0,9217—-0,9374
X—-0,8279—-0,8435—-0,8592—-0,8748
X—-0,7653—-0,7810—-0,7966—-0,8123
i=4 null
Applying the following operation when IR light i=2
(int) ((evt.getIRLights()[i].getX() – 0.75) / 0,0153958944))
Results:
9 10 11 12
5 6 7 8
1 2 3 4
Conclusion:
There is one kind of Wiiremote with IR coordinate divided into 12 (3*4) fields. In each field X changes between 0.75~0.99 an Y between 1.00~1.33. Using getIRLights()[i].getX() with i=2 and operations determines the field .
It is necessary to combine light i=1 and i=2 to obtain the real position of the source.
It seems I got the hard way to experiment the brave new world with an interactive white-board
Best Regards,
Murilo
Hi Tram,
I’ve seen this error before when I tried to connect to the Wiimote, however very rarely. Does this always happen why you try to connect? Or just sometimes?
It might help if you disable Bluetooth on nearby devices so that the Wiimote is the only Bluetooth device in range.
Hi Murilo,
I think it’s possible to disntinguish original Wiimotes from “clone products” through the device’s MAC address, see this webpage for example.
I don’t have any non-original Wiimote, hence didn’t test my app with any third-party Wiimote clones.
Good luck.
anyone know how to create right click by holding led button in C#?
i just cant understand java, and also cant run this on my vista x64 coz of bluetooth problem.
it’ll be nice if someone could make C# version of this uweschmidt wiimote whiteboard..
Lala,
Smoothboard 2.0 has the feature you describe here built into if, but it is a premium 29.99 software, and does not have open source code anymore. I has a lot of other great features to but it does not run on a MAC yet.
I hope this helps.
James Mclain
I almost had a sale of 2 IR pens and a bluetooth dongle last night but Java Wii board detected a larger screen resolution than was actually in use, and thus the right side row of calibration tagets was off the screen and unpressable. With a google search, it seems that if I had turned on screen 2 and re-started the Java Wii broard program the targets would all fit, and be on the projected image. Is this true? Also is there a text file or settings screen where I could FORCE Java Wii whiteboard the the screen and resoution that I want? Thank you.
Hi Uwe,
Thank you for the help. For the “wiimote clone” Korea Electric Power Data Network (KDN), quite similar to genuine, would be necessary extra cpu processing to set the infra red position in each quadrant at every event. Adjusting your app to a “clone wiimote” would be a waste of time.
I borrow an original wiimote and I can agree with several user’s opinions about your app : It is great !!!
The “wiimote clone” limitation gave me an idea: Have you tried to place just one wiimote in the same projection plane and read the pen position at a polar coordinate system ( r , teta) ?
With the current algorithm you need some distance to the projection plane in order to get X,Y ( 1024*768). If the wiimote is on the plane you will read only the position X (1024) of the pen. This would be the angle “teta”.
To determine the radius “r” a similar procedure used at wiiradar or “Interactive 3D Design Using Nintendo Wii Remote
, Christopher Lingerman
” could work.
If you have two permanent infra red sources at a defined position ( and a known distance between wiimote and permanent IRs ) it should be possible to obtain the distance between the pen and lights and calculate the radius “r”
This would improve the barrier free connection between wiimote and pen, but not useful for the tuio/osc users.
Once again thank you and best regards
Murilo
Uwe,
My Mac computer does the same as Tram everytime. It always has the same message about the bluetooth not working. I’ve turned off my bluetooth on my computer. The only time whiteboard will even open up is if my bluetooth is on but then the mouse goes crazy when it finds the remote. What do you recommend? I’ve logged out of the program numerous times and logged back in but nothing works.
Adam
Have you had any issues using wii remotes on OS 10.7?
Hi, is there a way for you to come up with the same smart board app for the iPad 2 as well? It would be very useful for teachers like me who are currently using our iPad 2’s inside the classroom.
i am planing to buy a wii remote.so i want to know is it easy to make it work..how do we connect it to our laptop and what is the callibration step? can some 1 plz help me…plz brief me about the whole idea…..i am planning to make it fr my project….
Have successfully used the Mac app version on a 3 year old MacBookPro 15″ (Intel version) running Snow Leopard. I mounted the Wiimote on a flex arm of a disassembled OttLite desk lamp. To allow it to directly view the laptop’s screen. The light pen was made from the plastic container of White Owl Blunts cigar. The Wiimote was placed approx. 18 inches from the screen slightly to the left (as I am right handed). The result is I have turned my laptop’s screen into a graphics tablet.
I do have to delete the bluetooth Nintendo connection setup each time I restart the computer to allow the software to connect on its own.
One thing else, the software does not actually produce a white board, far as I can tell. I used a graphics program with a pencil tool and the light pen pressed against the laptop screen to do simple line drawings, If anyone is interested I will be glad to post details on the pen and the Wiimote camera mount construction.
This setup will let me do projected big-screen white-boarding in an auditorium where it is not practical to approach the actual projected image on a screen that is high above my arm level from the stage.
A slight correction to my previous post. I do not have to delete the Nintendo entry in the Blue Tooth utility. I just have to open the utility, select the Nintendo entry and select “disconnect”. I also have installed the useful “Desktastic” utility as recommended and the homebrew pen works great writing directly on the screen of my laptop. I am now using a flimsy (cheap) tripod to place the Wiimote behind (and looking over) my left shoulder. This allows me to bring the laptop right to the edge of the desk for a more comfortable reach to the screen.
dear Uwe,
we are trying to use Wiiremote under Whiteboard Version 1.0.3
(20100605) on MacBookPro in a circus performance. The video is
projected on the floor of arena (12m diameter) Wiiremote is installed
under the top of the circus arena at a heigth of 19 metres. Our
purpose is to track the positions of four actors and to transmit the
information about their positions using the protocol TUIO. We
constructed IR torches (each of them consists of 7 IR LED) for the
indification of artists’ positions. As the distance between Wiiremote
and the computer is about 20m, the built-in bluetooth device is not
powerfull enough to transmit a stable signal. For that purpose we use
external bluetooth adaptor. Also we made a remote control for buttons
1-2 of Wiiremote. We use 2 usb-adapters “transmitter via Ethernet” on
both extremities of Ethernet-cable to transmit usb-signal on long
distance. Bluetooth dongl is installed at a distance of 5cm from
Wiiremote. During the rehearsals the system works perfectly. But
during the performance in the presence of 500 spectators Whiteboard
looses connection with Wiiremote. Sometimes the connection might be
maintained about 30 min, sometimes connection might be lost in 1 min.
We tried different modification of bluetooth devices: BT1.1, BT2.0,
BT2.0+EDR. We used to have a long list of constantly changing
bluetooth devices in the log window when we used BT. When we used
BT+EDR we had a bit another results: the list of bluetooth devices
reloaded before installing connection with Wiiremoter (4 messages in
the log window). After the stream of messages stops and the Wiiremote
holds the conection for a while. After Whiteboard suddenly looses
connection. What can be the reason of the problem? Is it because of
big ammount of cellphones which have an activated bluetooth? Or may be
it can depend on interference caused by lightening equipment, radio
signals or winches? Or may be there’s a conflict between the built-in
bluetooth device and the external one which is installed right under
the top of arena? We choose bluetooth device with the shortest
operating radius (10m) and it has to skip the bluetooth devices of
spectators. The computer is situated on the top range at the center
section.
thank you
best regards
HELP ME! I have all 4 “Visible IR dots” seen, by adjusting my lighting, but can’t get my IR pen to calibrate. Any suggestions?
Just wanted to let you know that this was a great starter project for our Teched Out club…got any more hands on projects with this equipment?
Hello, i am trying to get this to work for my school and i am running windows 8 developer preview, the application works, i just keep getting this error saying could not connect and “not supported on winsock” i am using a belkin bluetooth adapter, any help would be very appreciated
Hi, well i have a problem trying to run de wiimote whiteboard app on windows 7 (x86), i’ve installed bluesoleil 2.6, i can connect my wii mote with no problems, but when i run the app i get the following exception:
“Not Supported on bluesoleil”
Any ideas?
hi
I really want this to work on my linux laptop so I can use it in school. I have tried it with kernels 3.0.4 and 3.1.1 and I get the same error. I have the following installed on my machine:
bluez-4.9.1, bluez-firmware-1.2, bluez-hcidump-2.0 & blueman-r708.
The wiimote communicates perfectly well with my blueman device manager and wmgui.
I was going to post the whole message but it looks a bit confusing, so I shall extract the bits which I think are important. If anyone can tell me what the problem is and how I can overcome it, I would be very grateful. So here goes:
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)
…. [lots more lines like the above]
Caused by: javax.bluetooth.BluetoothStateException: BlueCove com.intel.bluetooth.BluetoothStackBlueZ not available
….[lots more lines like the above]
… 18 more
I would really appreciate some help here.
ros
Will Wii Whiteboard work with a Low-Cost Multi-Touch Sensing through Frustrated Total Internal Reflection?
I saw the demo at http://www.maximumpc.com/article/features/maximum_pc_builds_a_multitouch_surface_computer and I wonder if the Wii can be used is such way.
Hi everybody ! I have a winsock error when I try to use Wiimote Whiteboard. So, I’ve read whole pages, and the problem seems not resolved. My bt dongle work perfectly with my wiimote, it’s not a Windcomm dongle, so I can’t install any drivers other than Windows default stack.
Please, anyone could tells me how to bypass this winsock arror without ?
I have Windows 7 64 bits.
When i run the application i also get the same error message “Not Supported on bluesoleil”.
i am using windows xp sp3 with a bluetooth usb dongle.
i installed Bluesoleil but the application is not supported on winsok and bluesoleil.
also i have problems installing widcomm because each time i insert my dongle,automatically the microsoft bluetooth drivers are installed.So i cannot install widcomm..
Help of any sort is appreciated.
thank you…
Hi there! I have a problem pairing my wiimote to my macbookpro (OSX 10.7.2). My wiimote times out before it is able to be paired to my computer, and then whiteboard cannot find my wiimote.
This error came up on my log when I tried to get it to work:
Sorry for the formatting. I’m no computer genius, so none of this makes any sense to me… All I gather is that program cannot locate my wiimote, but I don’t know if it’s a problem with my bluetooth or my wiimote.