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. Uwe says: in reply to gerfried
    Re: TUIO / OSC question

    Hi Gerfried,

    TUIO is just OSC in a certain format as far as I can know. I have no experience at all with programs like vvvv (haven’t even heard of it before) but I guess you have to decode the TUIO messages somehow and extract the information you’re interested in. I posted an example of TUIO messages the whiteboard software sends out here.

    The TUIO messages are send to the whole network aren’t they? Because in darwiinRemoteOSC I have to specify the receiving IP adress.

    No, they are actually sent to the local machine only (localhost). I could add the option to have them transmitted to another computer if you’re interested.

    Uwe

  2. Uwe says:
    On a general note

    I would really like to know how you all make use of the whiteboard software. Could you send in pictures (with optional short description) showing you in action with the program? I thought about making a gallery and putting it on this webpage. For instance, teachers could make pictures from their classroom. But it doesn’t really matter if you’re a teacher, an artist, or just playing with it for fun. Click here for my email address.

    What do you think?

    Uwe

  3. Oliver says:
    multiple wiimotes

    Here is my suggestion for how to work with multiple wiimotes in 2D (case 1 and case 2). Rather than have to set the software in advance to distinguish between the two cases, I would use the calibration to determine how much overlap there is: start with 4 points and if both wiimotes can see all four, use only those points. During use, if both wiimotes can see the pen, use the average position to improve accuracy. If you want to take this further, you could use a weighted average based on how much of each wiimote’s field of view is being used (so that the “better” wiimote has more influence). If only one wiimote can see the pen, use that position (helps if the presenter stands in the wrong place).
    If when calibrating, each wiimote can only see two corner points, then they are being used to cover a wider area. In this case, each one needs another two points (the same two), which could be chosen to be halfway along the screen (making it a six point calibration). if at that point they don’t both register, there should be an error as the wiimotes’ field of view does not overlap.
    Hope that makes sense. It sounds complicated but it might keep the user experience as simple as possible.

  4. Gerfried says: in reply to Uwe
    Thanks for your reply Uwe.

    Thanks for your reply Uwe.

    I think I’m on the right way to decode the TUIO messages, since I have been working with the OSC decoder for a while now. The solution to my problem I can’t receive TUIO messages is obvious: I tried to receive them on another computer, since vvvv is running on Windows.
    I would really appreciate it if you could implement the feature, sending TUIO messages to another computer (IP adress) like darwiinosc does (http://code.google.com/p/darwiinosc/downloads/list).

    My setup at the moment is the following one: wiimote -> MacBook receiving with darwiinosc -> sending via OSC/LAN to Server -> decoding and using paramteters with vvvv
    Now I would add another MacBook using Wiimote Whiteboard to also send OSC data to my vvvv application running on the server.

    _IF_ you want to implement the feature, can you maybe post an estimation when this could be done? Otherwise I would write an Processing app, receiving TUIO on localhost, resending it to server.

    Thanks in advance!
    Gerfried

  5. Uwe says: in reply to Oliver
    Re: multiple wiimotes

    Hi Oliver,

    thanks for suggestions. I also thought about this and agree that calibrating all Wiimotes at once is the most user-friendly way to do it. Experimenting will show which averaging strategy actually works best during use. I’ll let the user choose among them if there are several good candidates.

    Uwe

  6. Uwe says: in reply to Gerfried
    TUIO receiver

    Hi Gerfried,

    I don’t really understand why you want to forward it to another machine, but that’s alright :)
    Maybe you can send me a picture of the whole thing once it is working.

    _IF_ you want to implement the feature, can you maybe post an estimation when this could be done?

    Implementing this feature shouldn’t take too much time. When do you need it?

    Otherwise I would write an Processing app, receiving TUIO on localhost, resending it to server.

    I found this article on how to tunnel UDP over SSH to another machine. While I assume this would work from Mac to Mac, Windows doesn’t come with the tools in order to do it. This could be a (temporary) solution for you if it even can be done on Windows (try for instance Cygwin), you’re a command line hacker and want to get it working now.

    Uwe

  7. Gerfried says: in reply to Uwe
    TUIO

    The reason is simple: Wiimote Whiteboard runs on Mac OSX without any problems. The windows app doesn’t run as stable and perfect (on our Mac Books on Windows we can’t get the wiimote to work). Our VJ app is done in vvvv whichs only has Windows support. We want to include livepainting on projections. So we need to transfer the pen movement data to the Windows machine.

    If we want to implement this livepainting feature, we need to start within the next two weeks.

    Of course I can send you some pictures. For information on ongoing development visit http://www.lichtarbeit.li/.

    Greets and Thanks!
    Gerfried

  8. Uwe says:
    Version 0.9.5 released

    Changes:
    * TUIO host and port now configurable
    * added batch file and shell script to start the cross-platform JAR file

    Uwe

  9. Gerfried says: in reply to Uwe
    Re: Version 0.9.5 released

    Wow… You’re awesome! I’ll try it in the afternoon and post some first results.

    Greets
    Gerfried

  10. Oliver says: in reply to Uwe
    multiple wiimotes

    One further thought is that while multiple wiimotes will help with the issue of obscuring one of them while in use, it’s really important not to do this while doing calibration, or the system will get very confused. It would be worth putting a message on screen for the user to highlight this.

  11. Mark says: in reply to Anonymous
    Keynote integration

    Just thought I’d follow up. I finally got the keynote software to work with it, but I had to use Scriboard.
    http://www.macmax.org I don’t know if it ever expires or anything like that.
    Thanks for making the porting the program Uwe

  12. Anonymous says:
    I love your program.
    I use a

    I love your program.
    I use a Windows PC running XP with a Widcomm stack,
    and I’m using an IOgear Bluetooth adapter, and it worked
    perfectly for me.
    In fact, so far it seems to be the best “Wiimote Whiteboard”
    Program I’ve tried so far in terms of smoothness of lines and
    ease of use. Thank you for this great app.

  13. abel rca says:
    hi. I’ve been waiting for

    hi. I’ve been waiting for this for sometime. thank u very much :)

  14. Kelly says:
    You are Outstanding!

    This is amazing! I have been waiting for the Mac version…so glad that there are people who are smarter than me to figure this out and share with the rest of us. I posted a video of my Wiimote Whiteboard on my blog http://ilearntechnology.com. Feel free to link to it. I am so excited right now I can’t even stand it! You made me a hero today with my students :-)

  15. Uwe says:
    Thanks

    It’s great to hear that you all like the software. I will add a page with links when I have some time.
    I’m currently adding support for two Wiimotes and hope to have another release soon.

    Uwe

  16. Efex says:
    Can’t run app

    Hi Uwe,

    I’ve been reading all the nice comments and about the features of your programm but I can’t get it to run :-(
    When the app is starting it ends with an error saying it failed to connect because not soported on winsock. :(

    I’m pasting bellow all the code:

    E:\WII_WHITEBOARD\WiimoteWhiteboard_UWE_JAVA>java -jar WiimoteWhiteboard.jar
    BlueCove version 2.0.3-SNAPSHOT on winsock
    19/04/2008 06:29:45 PM wiiremotej.WiiRemoteDiscoverer getWiiRemote
    GRAVE: Error getting device!
    java.io.IOException: WiiRemote failed to connect!
    at wiiremotej.WiiRemote.construct(WiiRemote.java:301)
    at wiiremotej.WiiRemote.(WiiRemote.java:214)
    at wiiremotej.WiiRemoteDiscoverer.getWiiRemote(WiiRemoteDiscoverer.java:
    94)
    at wiiremotej.WiiRemoteJ.findRemote(WiiRemoteJ.java:208)
    at wiiremotej.WiiRemoteJ.access$100(WiiRemoteJ.java:22)
    at wiiremotej.WiiRemoteJ$2.run(WiiRemoteJ.java:284)
    at java.lang.Thread.run(Unknown Source)
    Caused by: com.intel.bluetooth.NotSupportedIOException: Not Supported on winsock

    at com.intel.bluetooth.BluetoothStackMicrosoft.l2OpenClientConnection(Bl
    uetoothStackMicrosoft.java:657)
    at com.intel.bluetooth.BluetoothL2CAPClientConnection.(BluetoothL2
    CAPClientConnection.java:33)
    at com.intel.bluetooth.MicroeditionConnector.openImpl(MicroeditionConnec
    tor.java:397)
    at com.intel.bluetooth.MicroeditionConnector.open(MicroeditionConnector.
    java:506)
    at javax.microedition.io.Connector.open(Connector.java:95)
    at wiiremotej.WiiRemote.construct(WiiRemote.java:295)
    … 6 more
    java.io.IOException: WiiRemote failed to connect!
    at wiiremotej.WiiRemote.construct(WiiRemote.java:301)
    at wiiremotej.WiiRemote.
    (WiiRemote.java:214)
    at wiiremotej.WiiRemoteDiscoverer.getWiiRemote(WiiRemoteDiscoverer.java:
    94)
    at wiiremotej.WiiRemoteJ.findRemote(WiiRemoteJ.java:208)
    at wiiremotej.WiiRemoteJ.access$100(WiiRemoteJ.java:22)
    at wiiremotej.WiiRemoteJ$2.run(WiiRemoteJ.java:284)
    at java.lang.Thread.run(Unknown Source)
    Caused by: com.intel.bluetooth.NotSupportedIOException: Not Supported on winsock

    at com.intel.bluetooth.BluetoothStackMicrosoft.l2OpenClientConnection(Bl
    uetoothStackMicrosoft.java:657)
    at com.intel.bluetooth.BluetoothL2CAPClientConnection.(BluetoothL2
    CAPClientConnection.java:33)
    at com.intel.bluetooth.MicroeditionConnector.openImpl(MicroeditionConnec
    tor.java:397)
    at com.intel.bluetooth.MicroeditionConnector.open(MicroeditionConnector.
    java:506)
    at javax.microedition.io.Connector.open(Connector.java:95)
    at wiiremotej.WiiRemote.construct(WiiRemote.java:295)
    … 6 more

  17. Uwe says: in reply to Efex
    Re: Can’t run app

    Hi Efex,

    the program is not working with the “winsock” Bluetooth stack that comes with Windows XP by default. If possible, try using the WIDCOMM stack. Your last chance may be BlueSoleil if this also fails.

    WiiRemoteJ is used to connect to the Wiimote over Bluetooth. If it works on your system, my program will work too. The WiiRemoteJ forum might help to solve your problem.

    Good luck,
    Uwe

  18. Andre says:
    Verwendung von zwei Wii Remote

    Hallo Uwe,
    wäre es möglich zwei Wii Remote so zu verwenden, dass jeweils in zwei Ecken eines Vierecks eine Wii Remote sich befindet. Ich hatte mir das Ebeam interaktiv Usb System gekauft. Ich finde die Handhabung sehr schön, da ich den Empfänger direkt auf das Whiteboard befestigen kann. Die Genauigkeit beim Ebeam kommt hier wahrscheinlich durch die Verwendung von Ultraschall und IR Sender. Ich dachte mir nun, wenn man zwei Wii Remote verwendet, so müsste man nicht die 45° einhalten und könnte die Wii Remote waagerecht zur Wand verwenden.
    Leider verstehe ich nichts vom programmieren und könnte die Einbindung von zwei Wii Remote Empfängern nicht selbst umsetzen.
    Die Frage ist, ob diese geplant ist oder ob du dies langfristig umsetzen könntest.

    Andre

  19. Craig says: in reply to Tibo
    Apple Remote as IR Pen

    Can you share more information on how you are using the Apple Remote as an IR Pen?

    Craig G.

  20. Ben Gregoire says:
    IR Camera

    Thank you from some great software. As a Tech Coordinator for a K-12 School District this project is very exciting. I do have a question, I was wondering if anyone else has tried a different IR camera? The reason I ask is not because I love the wii remote for what it does, many of the students that see it are become more excited to see there type of technology being used in the school. I ask because I would want to use a camera that doesn’t run on batteries. I have been looking and have not seen anything available. For the price it seems that the wii remote will be the best priced, even with a case of batteries, but was just checking to see if anyone else has thought of this.

    P.S. Nice Website. I love seeing Drupal used.

  21. Uwe says: in reply to Andre
    Re: Verwendung von zwei Wii Remote

    Hi Andre,

    I would first of all appreciate if you could post in English since less than 10% of visitors are from Germany. On to your question about using two Wiimotes:

    As far as I understand you want something similar to case 3 that I explained in a previous post. If so, support for this is currently not planned. The next release of the software will support cases 1 and 2 of the aforementioned post.

    Uwe

  22. Uwe says: in reply to Craig
    Re: Apple Remote as IR Pen

    Hi Craig, I suggest you read this post.

    Hope that helps,
    Uwe

  23. Uwe says: in reply to Ben Gregoire
    Re: IR Camera

    Hi Ben,

    I’m pretty sure you won’t find anything comparable to the Wiimote for this low price. The major advantage of using a Wiimote is that the image processing (to find the 4 brightest IR dots) is actually done on the Wiimote itself. It only transmits the coordinates of those points which takes very low bandwidth in comparison to sending raw images.

    I ask because I would want to use a camera that doesn’t run on batteries. [...], but was just checking to see if anyone else has thought of this.

    Other people have thought of this before. Here you go:

    * AC adapter for Wii remote
    * Permanent Wiimote Charger

    Uwe

  24. Descalzo says:
    Plugging in the WiiMote

    I went to BigLots and picked up a $5.00 AC universal adapter, turned it to 3V, and put the 9V leads on the battery leads on the WiiMote, using balled-up tinfoil to make contact. I used a couple of confiscated erasers I’d harked from my students (hey, if they play with it in class, it’s a toy, and it’s mine!) to maintain pressure of the 9V leads to the battery leads. I no longer have to climb on a table and check the batteries every day anymore! It’s wonderful.

    Another thing I’m sick of is swapping batteries in my IR pens. I don’t want to use USB cables. I tried putting a rechargeable battery in the wiipen and using bent paper-clips to run from the charger leads to the battery nodes through some holes I’d drilled in the case. It worked, but the batteries I was using are way crappy so it didn’t work well. I’m sure it will work well once I get over being too cheap to spring for some new rechargeable AAs.

  25. Oliver says:
    Multiple wiimotes: Case 4

    I had a closer look at Andre’s post, using my rusty German and a web search for the Ebeam product. It throws up another potential use of multiple wiimotes which I’ll describe here:

    The two wiimotes are close to co-planar with the white board. Each one can see the entire board and they are sufficiently far apart to resolve the position of the IR source in 2D (on the two top corners, for example). Each wiimote is effectively just reporting a 1D coordinate, so the maths should be fairly straightforward.

    The benefit is that the user is unlikely to obscure the pen and sources away from the board can be ignored. The problem is that the wiimotes’ field of view is about 45 degrees (accordingly to Johnny Lee, haven’t test it myself) whereas 90 degrees would be better for this setup. This could be sorted by putting them further away from the board.

  26. Anonymous says:
    Multi Point

    Does this program allow me to use 2 pens and manipulate the screen with more than 1 point?

  27. Efex says:
    Bluesoleil doesn’t work either

    Hi Uwe,

    I tried to use the programs you recommended. Widcomm doesn’t recognize my usb bluetooth adapter.
    Bluesoleil works fine. I can connect mi wiimote to computer with it, but when I run your wiimotedesktop, it says wiimote failed to connect because bluesoleil doesn’t support it.
    Does it mena that I can’t get to run your application ??

    Thanks

  28. Oliver says: in reply to Efex
    Bluesoleil

    @Efex: Note that WiiremoteJ handles the whole connection – it will fail if you have already connected to your wiimote. Having said that, there are lots of issues of compatibility between adapters and drivers. The wiiremoteJ forum is one place to look for advice, but the consensus there seems to be that the Widcomm drivers are the most likely to work (but check which version because the latest Widcomm drivers don’t work with all Bluetooth chipsets but earlier versions do). Johnny’s original program uses a library that’s compatible with a wider variety of Windows setups, so that’s the best bet for general windows use, but it has fewer of the advanced features that Uwe has built / is building into his software.

  29. Pascal L says: in reply to Uwe
    Hi !
    I’m using ubuntu 7.04

    Hi !
    I’m using ubuntu 7.04 and trying to use your soft, but it dont work…

    I have this message : Bluetooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.

    I try same kind of soft writen in pyton and it work perfectely. So I think my bluetooth work perfectely.

    Can you help me ?

  30. Efex says:
    Widcomm

    Thanks Oliver for your answer.
    In Bluesoleil I don’t have the wiimote connected. I know Uwe’s app is supposed to do it :(

    Where can I get earlier versions of Widcomm? Because the one I download from the site just doesn’t run. When I run the install, immediatly it tells me it hasn’t found any bluetooth device and exit :(

    Thanks again

Leave a Reply