uweschmidt.org

nothing too important

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, 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.2)

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.

850 Responses

  1. sparky57 says:
    Error message

    I downloaded the software but keep getting this error message. What do you suggest?

       INFO     21:42:57  Calibration Event: SCREEN_CHANGED
       FINE     21:43:04  WiiRemoteJ: Found Nintendo RVL-CNT-01 (00191DBE709F)
       FINE     21:43:04  WiiRemoteJ: Nintendo RVL-CNT-01 is a Wii Remote.
       INFO     21:43:05  WiiRemoteJ: btl2cap://00191DBE709F
      FINER     21:43:07  WiiRemoteJ: Initial connection complete.
      FINER     21:43:07  WiiRemoteJ: Calibrating accelerometer...
    WARNING     21:43:07  WiiRemoteJ: Unable to calibrate accelerometer!
    WARNING     21:43:07  WiiRemoteJ: Error calibrating accelerometer.
    java.io.IOException: Error sending data!
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:526)
    	at wiiremotej.WiiRemote.readData(WiiRemote.java:1270)
    	at wiiremotej.WiiRemote.readData(WiiRemote.java:1222)
    	at wiiremotej.WiiRemote.calibrateAccelerometer(WiiRemote.java:1296)
    	at wiiremotej.WiiRemote.construct(WiiRemote.java:503)
    	at wiiremotej.WiiRemote.(WiiRemote.java:216)
    	at wiiremotej.WiiDeviceDiscoverer.getDevice(WiiDeviceDiscoverer.java:122)
    	at wiiremotej.WiiRemoteJ.findDeviceInternal(WiiRemoteJ.java:270)
    	at wiiremotej.WiiRemoteJ.access$100(WiiRemoteJ.java:25)
    	at wiiremotej.WiiRemoteJ$1.run(WiiRemoteJ.java:354)
    	at java.lang.Thread.run(Thread.java:613)
    Caused by: java.io.IOException: Failed to write [0xe00002bc]
    	at com.intel.bluetooth.BluetoothStackOSX.l2Send(Native Method)
    	at com.intel.bluetooth.BluetoothL2CAPConnection.send(BluetoothL2CAPConnection.java:126)
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:522)
    	... 10 more
      FINER     21:43:07  WiiRemoteJ: Initialization complete.
     SEVERE     21:43:07  Error on configuring Wii Remote
    java.io.IOException: Error sending data!
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:526)
    	at wiiremotej.WiiRemote.setInputReport(WiiRemote.java:803)
    	at wiiremotej.WiiRemote.setInputReport(WiiRemote.java:809)
    	at wiiremotej.WiiRemote.setAccelerometerEnabled(WiiRemote.java:1462)
    	at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler.addRemote(WiimoteDataHandler.java:99)
    	at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler.wiiDeviceDiscovered(WiimoteDataHandler.java:252)
    	at wiiremotej.WiiRemoteJ$1.run(WiiRemoteJ.java:362)
    	at java.lang.Thread.run(Thread.java:613)
    Caused by: java.io.IOException: Connection closed
    	at com.intel.bluetooth.BluetoothStackOSX.l2Send(Native Method)
    	at com.intel.bluetooth.BluetoothL2CAPConnection.send(BluetoothL2CAPConnection.java:126)
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:522)
    	... 7 more
    WARNING     21:43:07  Error on requesting status from Wii Remote
    java.io.IOException: Error sending data!
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:526)
    	at wiiremotej.WiiRemote.requestStatus(WiiRemote.java:819)
    	at org.uweschmidt.wiimote.whiteboard.WiimoteDataHandler$1.run(WiimoteDataHandler.java:124)
    	at java.lang.Thread.run(Thread.java:613)
    Caused by: java.io.IOException: Connection closed
    	at com.intel.bluetooth.BluetoothStackOSX.l2Send(Native Method)
    	at com.intel.bluetooth.BluetoothL2CAPConnection.send(BluetoothL2CAPConnection.java:126)
    	at wiiremotej.WiiRemote.sendCommand(WiiRemote.java:522)
    	... 3 more
    
  2. Uwe says:
    Re: Error message

    Hi, please read these posts: 1, 2, 3, 4, 5, 6, 7.

    Uwe

  3. James says:
    Can I use a red laser pointer instead of an IR pen?

    Hi UWE,
    I have been getting deeply into this wiimote stuff and I have also been researching Open Frameworks. Check “OF” out if you have the time. Anyway, on the OF website they mentioned that changing the “front filter” on your or Johny’s project might be a quick way to get a common red laser pointer to do mouse control. I am not clear what they meant by “front filter”. Does this sound like it would work to you at all? Would it be possible to track the red dot of a laser pointer, or is the wii-mote hard wired only to detect IR dots? The laser pointer would have several advantages if it is possible. One, you can stop blocking the wii-mote’s view and sit your butt on the couch, two the laser pointers only cost 99 cents at the 99 cents only store, and three you can move the cursor around more quickly, at the steed of light.

  4. Anonymous says:
    thanks for the mac version!

    thanks for the mac version!

  5. Uwe says:
    Re: Can I use a red laser pointer instead of an IR pen?

    Hi James,

    please read these two previous posts (1, 2) and also check out the wiimoteproject.com forums, especially this thread.
    Hope that helps.

    Uwe

  6. Jim says:
    Idea

    Can’t you write a program that detects ir dots just like “wiimote whiteboard” but you can change ir dots actions.
    like.. if you have one active ir dot that acts like the mouse curser and if it detects another dot then the second dot acts like a click.

  7. Thewilde59 says:
    calibration

    I’ve just bought a WIImote (but I don’t have my IR pen yet).
    I work with MAC OSX Leopard.
    Each time I start the wiimote and the bluetooth the software screen shows”calibration failed”??

    I don’t understand because I think I did everything according to the instructions…
    Can You help ME ???

    Thanks

  8. Uwe says:
    Re: calibration

    Each time I start the wiimote and the bluetooth the software screen shows”calibration failed”??

    Where does it show this and what did you do prior to that?

    Uwe

  9. Uwe says:
    Re: Idea

    Hi Jim,

    this approach has several drawbacks, have a look at this thread.

    Uwe

  10. Andy says:
    Just sayin’ thanks!

    I just built my IR Pen, and downloaded your Mac software… It has worked great for me so far! I don’t have any real use for this except to wow my friends when i hook my laptop up to my tv at my next party, but it was a great little project just for fun! Thanks alot!

  11. Jim says:
    Even if right-click isn’t

    Even if right-click isn’t used?

  12. Uwe says:
    Re: Even if right-click isn’t

    Hi Jim,

    it’s not about using this for left- or right-clicks.
    It’s a general problem to distinguish between multiple IR dots. You can’t tell which IR dot is supposed to be the first, and which the second. There are also often reflections of the IR pen on the wall you’re projecting on. These are reasons why using multiple IR dots is likely to be error-prone.

    Uwe

  13. Thewilde59 says:
    Re: calibration

    Thank you for replying.

    Here are the different steps I did:
    1 I downloaded on the web site “mac application”
    2.I clicked on the Icon with the white and yellow IR pen.
    3.The wiimotes screen appeared.
    4.I pressed on button 1 and 2
    5.each time and immediatly the message “not calibrated apeared” at the top of this screen.

    Actually as I don’t have an IR pen yet I don’t know if it can work anyway…

  14. Uwe says:
    Re: calibration

    5.each time and immediatly the message “not calibrated apeared” at the top of this screen.

    It should read “Not calibrated” to be precise. This is normal since you can’t use the software to control the mouse cursor before calibration. So it didn’t show “calibration failed” as you said in your previous post…

    You need to have an IR pen to use the software.

    Uwe

  15. Ferasaref says:
    Multitouch apps for mac ??

    is there any ???

    I tried to search but with no luck …

    Thanx in advance ..

  16. Anonymous says:
    Error connecting remote

    I tried running the software in my classroom today and kept getting errors. The software and remote were finding multiple bluetooth devices within range. Any ideas on how to remedy this problem?

  17. J Grant says:
    error

    Hello,

    I am getting the error as is referred to in the blog. After the error I usually need to force quit, uninstall the wiimote from bluetooth. This happens more oftern than not. When it works, it is awesome.
    Is there anything that can be done to reduce the error message and the resulting crash?

    Jg

  18. DB says:
    Error connecting remote

    I am trying to connect in my classroom, but keep getting an error. If the software and remote recognize another bluetooth device within range, it will not connect. Is there a solution to this problem?

  19. Uwe says:
    Re: Error connecting remote

    Hi,

    I included a somewhat experimental feature that allows you to only connect to specified Wiimotes.
    Please read about the runtime option org.uweschmidt.wiimote.whiteboard.wiimoteAddresses in the Wiki.

    Uwe

  20. Uwe says:
    Re: Multitouch apps for mac ??

    Hi Ferasaref,

    I’m not so familiar with this but there are at least several multitouch Flash apps that also work on Mac OS X. There should also be some native Mac apps, for instance have a look at Google Code.
    Another good resource is multigesture.net. Also see this previous post for background information.

    Uwe

  21. Uwe says:
    Re: Error connecting remote

    Hi, please see this post.

    Uwe

  22. Uwe says:
    Re: error

    I am getting the error as is referred to in the blog

    What are you referring to?

    Uwe

  23. Catm says:
    Flash CS4

    Hi,

    First and foremost thank you for providing us with a great little app here to get multi touch up and running. I’m not quite sure how to progress from here as I’ve been able to get the calibration done and the pens working. I’ve been looking for some demo apps to work with multi touch but I’ve found that I’m not sure how to set up the TUIO or touchlib to work with this wiimote setup. Can anyone help me set it up?

    Catm

  24. Anonymous says:
    re: Error Sending Data

    Hi,

    I seen this error too, but I tried to turn off bluetooth and turned it on and tried again.. and it worked like charm…

    Good luck..

  25. initi says:
    secondary monitor on OS X

    hi there,
    i am running on iMac 2.16GHz c2d, OS X 10.5.6 and i would like to use a whiteboard (btw. super job, uwe and johny lee,) on my secondary display (not a mirror of main desktop) i can calibrate it but after calibration mouse arrow stuck exactly on border between displays. any help? thanx a lot.

  26. Uwe says:
    Re: Flash CS4

    Hi Catm,

    did you check out the links in this post? You should be able to find some demo apps this way.
    You don’t need to do anything with touchlib, just activate TUIO in the preferences of my application. The multitouch-capable software can then receive TUIO data on port 3333 (if you didn’t change the default port).

    Uwe

  27. Uwe says:
    Re: secondary monitor on OS X

    Hi initi,

    this seems to be related to the other problems users are having. Please follow this post and see the posts linked in it. This post also seems related. I haven’t been able to investigate the problem since nobody gave me more information…

    Uwe

  28. Thewilde59 says:
    calibration

    Hello Uwe.

    This morning I first tried with the wiimote, and an IR pen. Your previous post (thank you for it) told that I needed the IR pen to control and use the software. Actually the problem is still the same: I work step by step and immediatly the software box just writes (I have to write it in French as it appears ) “la calibration a échoué” which I translated by “Calibration failure” and may be matches with the expression I could read on some You tube vidéo “not calibrated”.
    At the end There is only one( the first) light shining one the wiimote. The only possible action on the box is to click on ‘calibration’. Then I have a white screen a dot at the top left but nothing happened when I put the IR pen on it…
    Do you see where the problem can come from, since now I have everything to succeed…

  29. Uwe says:
    Re: calibration

    I work step by step and immediatly the software box just writes (I have to write it in French as it appears ) “la calibration a échoué” which I translated by “Calibration failure” and may be matches with the expression I could read on some You tube vidéo “not calibrated”.

    Are you saying that a popup error message appears immediately after starting the calibration that tells you “La calibration a échoué: Presser ESC pour annuler la calibration. Vérifier que toutes les Wiimotes connectés peuvent capter l’écran.”?
    (In English: “Calibration failed: Press ESC to abort calibration. Make sure all connected Wiimotes can see the screen.”)

    If so, I’d speculate that you have other sources of infrared light in the Wiimote’s field of view (e.g. lamps, sunlight). Make sure this doesn’t happen (have a look at Visible IR dots / Points IR visibles).

    Uwe

  30. John Coles says:
    Great!

    This is amazing! Even better because it is cross platform. 5 Stars!

    John Coles (UK)

Leave a Reply