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:
    Version 0.9.4 released

    Changes:
    * Now using BlueCove 2.0.3 snapshot for Linux compatibility
    * Added TUIO message output for Multitouch applications
    * Changed screen selection

    Uwe

  2. Anonymous says:
    no connect to remote

    Hi all, perhaps someone can give me a hint..
    im using widcomm and a win xp system with java 1.5006
    theese are the messages i get out of the log file..
    would be great if someone has an idea
    greetings alex

    FINE WiiRemoteJ: Nintendo RVL-CNT-01 is a WiiRemote.
    INFO WiiRemoteJ: btl2cap://001DBC45CF47
    SEVERE WiiRemoteJ: 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: javax.bluetooth.BluetoothConnectionException: Connection timeout
    at com.intel.bluetooth.BluetoothStackWIDCOMM.l2OpenClientConnectionImpl(Native Method)
    at com.intel.bluetooth.BluetoothStackWIDCOMM.l2OpenClientConnection(BluetoothStackWIDCOMM.java:702)
    at com.intel.bluetooth.BluetoothL2CAPClientConnection.
    (BluetoothL2CAPClientConnection.java:33)
    at com.intel.bluetooth.MicroeditionConnector.openImpl(MicroeditionConnector.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

  3. Uwe says: in reply to Anonymous
    Re: no connect to remote

    Hi Alex,

    does this happen all the time? Did you try it like ten times?
    Are you using the latest version (0.9.4)?

    Uwe

  4. Simon says: in reply to Uwe
    Great Version but sensivity

    Hi Uwe,
    thank you for releasing the new version with TUIO. It work’s great (it was really funny to use the flash games like puzzle and so on). But unfortunatley I’ve still got problems with the sensivity.
    The last few days I only tried it in a very small setting. The projected image was about 1,5 meter in diameter and the wiiremote was about 1 – 1,5 meters away from the wall.
    Today I tried it at work with auf high resolution beamer and a projection size about 2-3 meters. Because of the size, the wiiremote has to be farer away than 1,5 meters. Unfortunately then no infrared light is seen by the wiiremote.
    When I try the exact same setting with Johnny Chung Lees software everything works great.
    I already tried to search on my own in the WiiremoteJ board but I would use the same sensivity settings that you use (00 00 00 00 00 00 90 00 41 40 00 Suggested by inio (max sensitivity))
    I hope that the libary will be improved in the next few days or weeks.

    But all in all, your software is outstanding

  5. ErbAleX says:
    IR-Led key data

    Great job, i like it very much!

    Which key data of the IR-LED would you recommend? My assembly just works if i point directly to the wiimote, it doesn’t reflect on the screen of my iMac.

  6. Sylvain says:
    Problem with Vista

    Hi everybody,
    First, sorry if my english is not perfect.
    I try to use this soft under windows vista with a MSI bluetooth USB stack and blue soleil.
    The program run but my wiimote isn’t detected. I’ve always : “Searching for Wiimote”.
    Is someone succes in using this soft under vista or have someone a solution ?
    Thanks
    Sylvain

  7. ke10 says:
    2D perspective (or projective) transform

    I am making a multitouch interface with max msp jitter, an internal ir refraction screen, and a wii mote to track ir touches on the screen.

    I get ir coordinate data into max using osc and OSCulator, for the time being.

    I need to perform a calibration, much like J. Lee’s whiteboard does.
    BUT
    I’m not sure how the calibration works. I have looked at the source code, and I’m having trouble understanding the math. (i’m not a programmer, just a max doodler). Can any one explain in more detail than what is provided in the source?

    I understand I need to deform an input matrix to an output matrix. In max there are objects to deform one matrix into another : jit.repos, jit.mxform2d. I can’t figure out how to use these to imitate what the whiteboard calibration stage is doing.

    Any help would be greatly appreciated?

    Alternatively, if someone knows how to modify the whiteboard code so that it sends the XY data for each of the four points to max, that would also do the trick. You could use OSC protocol, which is what I am currently using (see OSCulator). That way I could use the whiteboard’s calibration tool, and just receive precalibrated xy values in max.

    THANKS! Great work!
    ke10

  8. ke10 says: in reply to ke10
    OK! I just read about TUIO,

    OK! I just read about TUIO, and I realize it IS OSC and can therfor send data to max.

    GREAT! I’ll try this out…

    thanks again!

    ke10

  9. Descalzo says:
    Sensitivity (again)

    I ran some more tests today finally. I haven’t been used the Wiimote Whiteboard in about 3 weeks or so, but finally had time/opportunity to run it through the ringer today. I tried the Mac version and Johnny’s version in Parallels, and Johnny’s is still better for me. I can’t figure it out. I know I’m not the only one who’s having this trouble, and I know there’s only so much that can be done, but I thought I’d mention it any way.

    I’m working on ways to move the Wiimote closer to the screen, and hopefully that will help out. I’m really looking forward to letting one of my older Macs take over the whiteboard duties.

  10. ke10 says:
    TUIO to MaxMSPJitter

    Yoohoo!
    My prototype works wonderfully. I have multiple gl objects tracking multiple ir points.

    Using: WiimoteWhiteboard for MAC, receiving TUIO in MAX and controlling objects in jitter.

    Thanks!

    ke10

  11. Descalzo says:
    Leopard

    I tried this on a computer running Leopard, and it works as well or better than Johnny’s version did. It may be a fluke, but it was impressive the way it worked right away.

  12. Luc Tremblay says:
    IR Pen

    WOW, what a great piece of software! Thanks a LOT!

    Anybody tried to put a pressure switch (à la drawing tablet pens) to trigger the IR LED insted of a push button switch?

    As a maths teacher, I’d REALLY like to write with my pen (and save my school a thousand dollars or so), but it’s somewhat complicated for me to get used to push and release the switch each letter I write on the board.

    Thanks!

    Luc

  13. Descalzo says:
    Luc, how about this?

    This math teacher here:

    http://www.wiimoteproject.com/wiimote-whiteboard/0-learning-curve-durable-light-pen/msg2235/#msg2235

    built an IR pen with a pressure switch. I’m thinking of making one like it.

  14. Luc Tremblay says:
    Perfect!

    That’s exactly what I had in mind… except my idea would probably have implied the use of much, much more elecric tape :p

  15. Uwe says:
    Hey guys

    I just wanted to let you know that I’m still alive and reading the messages here :)
    I’m kinda busy with another (not Wiimote-related) project for about one more week or so.

    TUIO seems to work fine, nobody complained so far. What do you think should be improved next? (e.g. support for multiple Wiimotes to improve reliability, localization)

    Any other problems or ideas, which are not directly related to my software, are best addressed at the wiimoteproject.com forums. I don’t mind discussing them here but you’ll reach a lot more people there.

    Uwe

  16. nick says:
    Tuio messages

    Hi

    I’m having trouble getting tuio messages working – I’m familiar with the protocol (I use reactivision already), but am getting nothing in host apps with tuio enabled – mouse is being controlled fine – should I see anything in the log that will help me troubleshoot tuio?

    Cheers

    Nick

  17. Anonymous says:
    of course as I post it

    of course as I post it started working – no idea what made it start where it wasn’t before.

    Thanks for the great app.

    Nick

  18. Anonymous says:
    Integration with keynote

    I’m a student teacher currently working in a district that only has Macintosh computers running osx. They have a neat student response system called Qwizdom that turns any keynote presentation into a multiple choice exam/quiz. The students then use a small rf remote to respond with their answers.
    Anyway, what I would like to do is somehow be able to present the slides and be able to draw on them. I can do this in powerpoint, but currently I’m limited to keynote. Is there anyway I can accomplish this? I tried this program, but it doesn’t want to work :( http://www.apple.com/downloads/macosx/productivity_tools/highlight.html
    Many thanks!
    -Mark

  19. Anonymous says: in reply to Uwe
    multitouch with two pens

    It occurs to me that following on what lee has done, it would be good to have two pens a red (LEFT) and a blue (RIGHT) pen. Both will have switches. Then the left switch can be used as a left_mouse_button click and the right switch can be the right_mouse_click.

    Multitouch can begin by doing the following:
    Within the frame of an open window, with both pens lighted, a horizontal/vertical/diagonal increasing/decreasing separation would scale up/down the window horizontally/vertically/diagonally.

    The same would then hold for any other window. Of course fancier manipulations would be difficult under standard 2D window managers.

    Possible to incorporate these ideas into your software?

    Unfortunately, I’m not a software guy.

    Thanks
    Great work. I’m still waiting for my components to arrive to build my own!

  20. Uwe says: in reply to Anonymous
    Re: Integration with keynote

    Hi Mark,

    the program Highlight you mentioned worked just fine for me under Leopard. I couldn’t test it with Keynote since I don’t have it installed on my machine. I found the commercial software Desktastic when someone previously asked about drawing on the desktop.

    Uwe

  21. Uwe says: in reply to Anonymous
    Re: multitouch with two pens

    Hi,

    It occurs to me that following on what lee has done, it would be good to have two pens a red (LEFT) and a blue (RIGHT) pen. Both will have switches. Then the left switch can be used as a left_mouse_button click and the right switch can be the right_mouse_click.

    The problem is to distinguish between multiple pens. You talk about a red and a blue pen but how is the software knowing which light dot belongs to which pen?
    I agree that it would open up possibilities to have multiple distinguishable pens. But this is not possible with simple “on/off” IR pens.

    Even if I had the possibility to do it, I wouldn’t incorporate into my software. I would instead recommend to make an independent application that makes use of the TUIO multitouch messages to accomplish the desired behavior.

    Just my 2 cents,
    Uwe

  22. AvenNYC says:
    Dual WiiMotes?

    Hey! I was wondering if you can use 2 wiimotes – I have a large projected area I’d like to cover. I believe Johnny Lee had said multiple wiimotes would give you better camera resolution. Can you do that with this software?

    Thanks!

    Evan

  23. Uwe says: in reply to AvenNYC
    Multiple Wiimotes

    Hi Evan,

    I already thought about adding this feature. It would help in case the Wiimote’s view to the IR pen is blocked from a certain angle (case 1), or to cover a larger area as you pointed out (case 2). It could also be used to track the location of the IR pen in 3D (case 3) like they did here, especially check out the video.

    Case 1 and 2 are substantially easier to do but there are still several questions:
    * Support only 2 or even more Wiimotes?
    * What if the position data coming from the Wiimotes differ?
    * Average them?
    * Favor data from a particular Wiimote?
    * Calibrate all Wiimotes at once or one after another?
    * All at once isn’t possible if a Wiimote only covers part of a screen (1).
    * All at once would be best in case multiple Wiimotes are used to cover the same area (2).

    Did I miss something? Any other thoughts?

    One last problem is simply that I just have a single Wiimote. And I don’t see myself buying another one just to add this feature (that I will hardly use). Don’t get me wrong, I really like improving the Whiteboard program. But “donating” money besides my spare time to this (non-profit) project is currently not an option for me.

    Uwe

  24. AvenNYC says: in reply to Uwe
    Multiple Wiimotes

    All very valid points. Not sure how the calibration would work. I built a IR pen, and have this working on my wall through my projector. It’s pretty good. Maybe a brighter LED would help. I’d buy you another wiimote plus some if you’re interested in making it work!!! It’s incredible and I have a real world use for this. I’m wanting to cover a 12′ by 10′ area or so with projection and be able to draw on it.

    Thanks!

    Evan

  25. AvenNYC says: in reply to Uwe
    Multiple Calibrations

    I’m assuming you need 4 points per remote to get the math to work out, If they were only covering parts of the screen (a 1/2 each, or so), could there just be a 8 point calibration? would that give the ones that didn’t see some of the points would still have enough to convert to a mouse pointer reading?

    Evan

  26. Descalzo says:
    Multiple WiiMotes

    I am a big fan of the idea of 2 WiiMotes covering the same area for greater accuracy.

  27. Uwe says:
    Multiple Wiimotes & Donations

    I’d buy you another wiimote plus some if you’re interested in making it work!!!

    Thanks for the offer, but I explained in a previous post that I do not accept donations as a form of payment for requested features. However, I don’t have a problem to use donated money towards the improvement of the software on my terms.

    Having said that, I will use the first 40€ (currently about $63) to buy another Wiimote and then try to get it working with multiple Wiimotes. I make no guarantees whatsoever if or when it will work.

    I will of course keep you all updated about the amount of donations I receive.
    So anyone feel free to make a donation if you accept my conditions.

    Uwe

  28. AvenNYC says: in reply to Uwe
    Wiimotes

    I’m sure everyone agrees with me, but I certainly appreciate all the work you’ve put in to this, and will gladly accept anything you decide to do in the future! That being said, I’ll send you a donation so you may be able to keep it up. Are all the wiimotes the same? You could probably find it for cheaper off a USA site – not sure if they’d mail to where you are though. They are only $39.99 in the states. I’ll check back regularly!

    Thanks again,

    Evan

  29. Uwe says: in reply to AvenNYC
    Thanks Evan!

    Thank you for your generous donation of 60 euros. No more money is thus required to buy me a second Wiimote. Although I don’t mind if anyone still wants to donate :)

    Are all the wiimotes the same? You could probably find it for cheaper off a USA site – not sure if they’d mail to where you are though. They are only $39.99 in the states.

    All Wiimotes are the same as far as I know. It is very common though that electronics here in Germany cost roughly the same amount in euros than they cost in dollars in the US. I intended to buy the Wiimote at Amazon.de for 40€ and I can’t get it much, if at all, cheaper at a Germany store. I’m pretty sure that buying from a US site will cost me more in the end because of shipping and it also has to go through customs.

    I’ll check back regularly!

    You can also subscribe to the recent changes feed instead of checking my site manually.

    Uwe

  30. gerfried says:
    TUIO / OSC question

    Hello,

    At first thx for this superb application! It’s just awesome how well the IR pens work.

    Now, I had fun with this app, I want to use it for a VJ project. Just a small patch in vvvv to build a kind of drawing application to live-paint on events.

    I read some articles about TUIO, and I understand that it’s kind of OSC. vvvv can handle OSC perfect, but lacks in full TUIO support like I read in the vvvv forum. But sometimes people had luck and were able to receive some messages with the OSCdecoder

    ke10 wrote, he could handle the TUIO messages in MaxMSP also as OSC messages. Maybe ke10 or Uwe can give a some further information on this topic, or anybody else who has maybe handled this nice whiteboard application with vvvv.

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

    Thx in advance, keep on the good work on this helpful app!
    Gerfried

Leave a Reply