uweschmidt.org

42 / π ≈ 13.37 

Wiimote Whiteboard

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.

1,023 Responses

  1. initi says: in reply to Uwe
    Re: secondary monitor on OS X

    hi uwe, here are the screenshotz showing the problem of multiple screens, where mouse arrow stuck on the border after succesfull calibration. thx in advance
    http://initi.sweb.cz/screens.jpg

  2. Anonymous says:
    it’s really cool!! Did

    it’s really cool!! Did you guys have a vc++ version ,I am
    leaning the vc++ program language ,so if you guys have the vc++ version ,could you guys send one to me ,thanks !!!

  3. Anonymous says: in reply to Michael Beck
    Re: School Use

    I have set this up on a Windows Vista and a Mac OS X 10.5 computer at my school. This is how to do it………………
    1. Position the Wiimote (Wii Remote) so it can fully see the image of your desktop. The image is usually projected by an image projector.
    2. Download the executable Jar file.
    3. Configure the Jar file with the on-screen details. (This took me several tries, so be patient………..)
    4. Buy or make IR pens for the Wiimote to detect.

    By the time you have finished this, you will have a working interactive whiteboard!!!!!!!!!!!!!

  4. jose carlos says: in reply to Julien HORS
    Re: It works on XP too

    es fantastico

  5. KANG Ghee Keong says:
    Keep up the good work

    I must say that all these Wii hacking is pushing innovation really fast. The ideas that everyone has contributed and applied in their different situations are so exciting. I’m getting addicted even before I get my own Wii.

    Keep up the good work!

  6. Mirna says:
    Looking for software like smoothboard

    Hi,
    Actulaly I´m looking for a source code of a software like smoothboard written in C sharp,is that available ?
    thank you,
    mirna

  7. Edgar says:
    tracking

    Hello, I’ve been trying the wiimote project and everything is ok until I want to draw or write on the board. I just can’t do it. When I calibrate it, the tracking is 29 or 30%. What can I do?

  8. Uwe says: in reply to Anonymous
    Re: it’s really cool?? Did

    Did you guys have a vc++ version

    Nope.

    Uwe

  9. Uwe says: in reply to Mirna
    Re: Looking for software like smoothboard

    Hi Mirna,

    I´m looking for a source code of a software like smoothboard written in C sharp,is that available ?

    I don’t know. Why don’t you ask the author of Smoothboard?
    I highly doubt that he’ll give you his source code, since he’s selling his software…

    Uwe

  10. Uwe says: in reply to Edgar
    Re: tracking

    Hi Edgar,

    there’s no way of helping you with so little information…
    Tracking utilization of about 30% should be fine.

    Uwe

  11. Uwe says:
    Version 0.9.9 released

    Changes

    * Fixed “stuck mouse cursor”-bug when not using the primary screen
    * Changed TUIO (message order, added “source” message, speed & acceleration added to “set” message)
    * Switched to WiiRemoteJ v1.6a
    * Added runtime option to use “dragging” right click behavior (see documentation)

    Uwe

  12. Adrian says: in reply to Jim Hays
    Re: It Works!!!!

    I’m having very hard time to connect the wiimote with my computer since my computer doesn’t have any bluetooth capability and operates on vista. The Bluetooth device I purchased a week ago didn’t support connection with the wiimote…Please, is there anyone that can provide more details about wiimote and computer connection. Thx a lot!!

  13. Amanda says:
    connection failed

    Hello,
    I am trying to connect my Wii remote to the software and am getting the message “WiiRemote failed to connect! Not supported on winsock.” I would love some help to resolve this problem.

    Thanks

  14. Uwe says: in reply to Adrian
    Re: It Works!!!!

    Hi Adrien,

    see this post about Windows Vista.
    Other than that I can only recommend the wiimoteproject.com forums.

    Uwe

  15. Uwe says: in reply to Amanda
    Re: connection failed

    Hi Amanda,

    please see this post.

    Uwe

  16. thoschi says: in reply to Uwe
    Re: wiimotewhiteboard error

    hello,
    Same problem here… used your instruction – no success
    using xubuntu on an eee pc 901
    bluetooth stack working normally, but running wiimotewhiteboard fails with:
    JarClassLoader: Warning: Unable to load native library: java.lang.NullPointerException
    Native Library bluecove not available
    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)

    though I integrated bluecove as shown here…

    any suggestions appreciated :-)
    sincerely, thomas

  17. Uwe says: in reply to thoschi
    Re: wiimotewhiteboard error

    Hi thoschi,

    which version of my software are you running and which version of bluecove-gpl did you add to the WiimoteWhiteboard.jar?
    Please do a unzip -l WiimoteWhiteboard.jar to get a listing of all files inside the JAR and either post it here or send it to me.

    Uwe

  18. Eugen says: in reply to Uwe
    Re: wiimotewhiteboard error

    Hello Uwe,
    I have exactly the same problem with Ubuntu 8.10
    On WindowsXP (same System) Your program runs without any problems.
    The version of your Software: 0.96-rc5-20070916-1932

    eugen@junge:~/Desktop/Wii/WiimoteWhiteboard$ java -jar WiimoteWhiteboard.jar
    JarClassLoader: Warning: Unable to load native library: java.lang.NullPointerException
    Native Library bluecove not available
    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:98)
    at org.jdesktop.application.Application$1.run(Application.java:171)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: javax.bluetooth.BluetoothStateException: BlueCove library bluecove not available
    at com.intel.bluetooth.BlueCoveImpl.loadNativeLibraries(BlueCoveImpl.java:384)
    at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:432)
    at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:69)
    at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1025)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1023)
    at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1016)
    at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:77)
    at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:97)
    at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:67)
    ... 12 more

    Here are the files inside my WiimoteWhiteboard.jar

    Archive: WiimoteWhiteboard.jar
    Length Date Time Name
    -------- ---- ---- ----
    22 09-16-07 19:33 .version
    1046 09-16-07 19:32 OneJar.class
    1710 09-16-07 19:32 com/simontuffs/onejar/Boot$1.class
    1915 09-16-07 19:32 com/simontuffs/onejar/Boot$2.class
    1418 09-16-07 19:32 com/simontuffs/onejar/Boot$3.class
    16249 09-16-07 19:32 com/simontuffs/onejar/Boot.class
    1454 09-16-07 19:32 com/simontuffs/onejar/Handler$1.class
    863 09-16-07 19:32 com/simontuffs/onejar/Handler.class
    259 09-16-07 19:32 com/simontuffs/onejar/IProperties.class
    868 09-16-07 19:32 com/simontuffs/onejar/JarClassLoader$1.class
    974 09-16-07 19:32 com/simontuffs/onejar/JarClassLoader$ByteCode.class
    25169 09-16-07 19:32 com/simontuffs/onejar/JarClassLoader.class
    0 03-14-09 17:29 META-INF/
    210 03-14-09 17:29 META-INF/MANIFEST.MF
    0 03-14-09 14:46 lib/
    318595 02-16-08 03:40 lib/AppFramework.jar
    47160 03-07-08 23:16 lib/NetUtil.jar
    91091 03-12-09 17:00 lib/WiiRemoteJ.jar
    491638 10-11-08 23:05 lib/bluecove-2.0.3.jar
    70787 01-06-08 14:54 lib/miglayout15-swing.jar
    11103 09-20-07 18:29 lib/swing-worker.jar
    1748 02-22-08 00:44 one-jar-license.txt
    0 03-14-09 17:29 main/
    208811 03-14-09 17:29 main/WiimoteWhiteboard.jar
    59687 03-24-09 20:50 lib/bluecove-gpl-2.0.3-20080612.174321-73.jar
    -------- -------
    1352777 25 files

    Can you help me?

  19. Uwe says: in reply to Eugen
    Re: wiimotewhiteboard error

    Hi Eugen,

    The version of your Software: 0.96-rc5-20070916-1932

    that’s not the version number of my software. Anyway, make sure you have the latest release.

    Here are the files inside my WiimoteWhiteboard.jar

    You added the library correctly. Did you try using the final 2.0.3 release instead of a 2.0.3 snapshot? ? bluecove-gpl-2.0.3.jar
    Have you checked that you fulfill all the requirements?

    There also seems to be an alternative to bluecove-gpl, namely bluecove-bluez (BlueCove Linux D-Bus module). I haven’t tried it though.

    Uwe

  20. Feeda says:
    Calibration issue OS X

    1. Attempts to ‘calibrate’ only reveals one calibration point towards the top left quadrant of the screen rather than 4 points near the corners. Attempted calibration on the point provided with 2 different LED pens with no results.
    2. IR Camera Monitor sees blank screen.

    Status:
    Mac OS 10.5.6
    Per previous post: Every successive session requires deleting the WiiMote device in the Bluetooth listing then restarting UWE SW. This successfully creates and connects the WiiMote as a bluetooth device and then software sees it.

    WiiMote is connected in Bluetooth but not paired.
    Quitting then rebooting the UWE SW does not see the previously connected device. Attempted adding a Bluetooth device via Bluetooth Prefs with same results.

    Will continue trouble shooting and searching for resolutions.

  21. Feeda says: in reply to Feeda
    Re: Calibration issue OS X

    Read earlier post regarding use/non-use of using Bluetooth setup and understand.

  22. siervo says:
    Video

    Where can I see or download the video?

  23. siervo says:
    How to

    Uwe:

    I’m a mac user and have been for many years. In other words I can follow step by step instructions on how to do anything on a mac, but I’m not a technical person so I don’t know how to set up, connect and get the whole thing running. I need instructions for dummies you might say.
    Do you have step by step set up from beginning to end instructions on how to get the withe board running, including hardware needed, and so on you know, for dummies?.

    I’ll appreciate your help, I’ll even make a donation as a token of appreciation.

    Thanks

  24. Lauri says:
    Having trouble on a Mac

    Hi. I’m just an average user, and barely a Mac user, but I have a Mac at school and am having difficulty getting this to run on the Mac. I downloaded the program and added the Wiimote to the bluetooth devices list; however, after it connects, I lose the connection shortly after. I never get to the point where the program comes up to calibrate or anything. Is the problem the built-in stack? (whatever that is… I assume it’s the Bluetooth capability that’s built in to the system)
    Right now, the only solution I see is to take my laptop into the classroom and run the PC version from it.
    Is there something else I can try?
    Thanks.

  25. Uwe says: in reply to Feeda
    Re: Calibration issue OS X

    Hi Feeda,

    Read earlier post regarding use/non-use of using Bluetooth setup and understand.

    are you talking to me or to yourself? :)

    In other words, did you figure it out? If not, you might want to take a look at How To Use and Troubleshooting.

    Uwe

  26. Uwe says: in reply to siervo
    Re: How to

    Hi siervo,

    Do you have step by step set up from beginning to end instructions on how to get the withe board running, including hardware needed, and so on you know, for dummies?.

    If you have a Wiimote, an IR pen, and your Mac has built-in Bluetooth, you just need to follow these instructions.
    Many more details can be found at this HOWTO for schools.

    Where can I see or download the video?

    Which video? My videos are on YouTube.

    Uwe

  27. Uwe says: in reply to Lauri
    Re: Having trouble on a Mac

    Hi Lauri,

    I downloaded the program and added the Wiimote to the bluetooth devices list;

    You mustn’t pair the Wii Remote to Mac OS X, otherwise my program cannot properly access it.
    This could be the problem here, try deleting the Wii Remote from the list of Bluetooth devices and start my program again.

    Uwe

  28. harnstein says:
    unter vista 64 startet nix

    Hi uwe!

    mann, mann- jetzt bin ich aber am ende! ich wühle mich seit ner ewigkeit durch das forum, in der hoffnung etwas zu finden oder weil ich vielleicht etwas übersehen haben könne. das forum ist mir aber gelinde gesagt zu technisch, ich kann nichts kompilieren oder umschreiben- und überhaupt verstehe ich programmiertechnisches nur begrenzt.

    auf meinem anderen system (xp 32bit) lief alles einwandfrei, einfach bluetooth (von windows) aktiviert und dann lief johnny’s software oder eben das softboard. super tracking, selbst mit abstand von 15cm, hat nur den “reflektionspunkt” erkannt, toll.

    jetzt habe ich vista buisness 64bit und alles ist anders.. ;)

    1. johnny’s whiteboard: funktioniert, aber nur bis NACH der kalibrierung, dann lässt sich der cursor nicht bewegen.
    – angezeigt werden übr. 1/2 ir-dots

    2. softboard funktioniert, hat aber ne grottig schlechte abtastung, krakelt nur rum und erkennt wohl auch plötzlich mehr als einen ir-dot- bzw. ist sehr ungenau- ist also auch nicht so toll.

    3. dann habe ich deine weiterentwicklung von johnny’s weissbrett ersurft und war erstmal happy über das “nutshell” ;)

    -> mit viel hin und her, bluesoleil rauf und runter, bluecove in zig versionen erst hier und dort hin, dann endlich ins java extension-folder (hab keine readme gefunden) usw.. eine step-by-step-anleitung wäre toll- es sei denn, es sollte mehr oder weniger automatisch funktionieren, dann bräuchte ich die nicht ;) am besten ein komplettes package- ich bin zwar des englischen mächtig, aber im technischen bereich dann doch etwas begrenzt.

    lange rede kurzer sinn, es läuft nicht. da gibt im forum es zig möglichkeiten, was es sein könnte und ungefähr genauso viele lösungsvorschläge, die leider schwer umzusetzten sind oder nicht ausreichend helfen, oder nur vermutungen sind.

    deshalb mal in der muttersprache hier, einfach mal das log, vllt kannst du ja etwas licht ins dunkel bringen..:

    INFO 11:58:26 Calibration Event: SCREEN_CHANGED
    FINE 11:58:38 WiiRemoteJ: Found Ef-PC (001BFC126936)
    FINE 11:58:38 WiiRemoteJ: Ef-PC is NOT a known device.
    FINE 11:58:38 WiiRemoteJ: Found Nintendo RVL-CNT-01 (002147F31F1D)
    FINE 11:58:38 WiiRemoteJ: Nintendo RVL-CNT-01 is a Wii Remote.
    INFO 11:58:38 WiiRemoteJ: btl2cap://002147F31F1D
    WARNING 11:58:38 WiiRemoteJ: Error finding devices.
    java.lang.IllegalArgumentException: PCM values restricted by JAR82 to minimum 4097
    at com.intel.bluetooth.MicroeditionConnector.validateL2CAPPSM(MicroeditionConnector.java:434)
    at com.intel.bluetooth.MicroeditionConnector.openImpl(MicroeditionConnector.java:336)
    at com.intel.bluetooth.MicroeditionConnector.open(MicroeditionConnector.java:513)
    at javax.microedition.io.Connector.open(Connector.java:97)
    at wiiremotej.WiiRemote.construct(WiiRemote.java:313)
    at wiiremotej.WiiRemote.(WiiRemote.java:223)
    at wiiremotej.WiiDeviceDiscoverer.getDevice(WiiDeviceDiscoverer.java:121)
    at wiiremotej.WiiRemoteJ.findDeviceInternal(WiiRemoteJ.java:342)
    at wiiremotej.WiiRemoteJ.access$100(WiiRemoteJ.java:24)
    at wiiremotej.WiiRemoteJ$1.run(WiiRemoteJ.java:426)
    at java.lang.Thread.run(Unknown Source)

    -
    -
    -

    “java.lang.IllegalArgumentException: PCM values restricted by JAR82 to minimum 4097″ ist natürlich wohl das problem, aber ich hab echt keine ahnung, was ich da wo und wie implemetieren soll- und schätze, wenn ich das geschafft hätte, kommt das nächste problem (war in einem thread so).

    fällt dir was ein?

    hoffnungsvoll,

    harnstein

  29. Feeda says: in reply to Uwe
    Re: Calibration issue OS X

    Hoping for an ‘aha’ response, but appreciate the links to provide guidance and support.
    Still have the calibration issues and will use resources to debug.

  30. Mirna says:
    problem compiling java version on windows

    Hi Uwe,
    I´m having a problem compiling your java version on windows.
    Could you please tell me what to do?
    Thanks in advance,
    Mirna

Leave a Reply