Upgrading WiiMote IR Camera sensitivity | WiiMote libwiiuse.so | Pimp / Hack your Wiimote

Here's a short post about upgrading your WiiMotes' IR camera sensivity. I'm using WiiMoteJ - the WiiMote Java API for accessing data (IR data, motion data, etc.). The underlying native library is called "libwiiuse.so" which has been implemented in C for linux and windows. I am pretty sure you'll find the same values in lib CWiid (another WiiMote lib). Get the wiiuse library src here: Wiiuse onSourceforge

Here's the problem: the WiiMote IR sensitivity can be scaled from 0-5. "0" as you can imagine, is the lowest possible sensivity, "5" as you might NOT expect is by far not the highest sens. According to wiibrew.org these are the default wiiuse register values for level 0 to 5.

02 00 00 71 01 00 64 00 fe fd 05 Wii level 1

02 00 00 71 01 00 96 00 b4 b3 04 Wii level 2

02 00 00 71 01 00 aa 00 64 63 03 Wii level 3

02 00 00 71 01 00 c8 00 36 35 03 Wii level 4

07 00 00 71 01 00 72 00 20 1f 03 Wii level 5

You can find those values in: wiiuse_intel.h included in the /src directory.

#define WM_IR_BLOCK1_LEVEL1 "\x02\x00\x00\x71\x01\x00\x64\x00\xfe"

#define WM_IR_BLOCK2_LEVEL1 "\xfd\x05"

#define WM_IR_BLOCK1_LEVEL2 "\x02\x00\x00\x71\x01\x00\x96\x00\xb4"

#define WM_IR_BLOCK2_LEVEL2 "\xb3\x04"

#define WM_IR_BLOCK1_LEVEL3 "\x02\x00\x00\x71\x01\x00\xaa\x00\x64"

#define WM_IR_BLOCK2_LEVEL3 "\x63\x03"

#define WM_IR_BLOCK1_LEVEL4 "\x02\x00\x00\x71\x01\x00\xc8\x00\x36"

#define WM_IR_BLOCK2_LEVEL4 "\x35\x03"

#define WM_IR_BLOCK1_LEVEL5 "\x07\x00\x00\x71\x01\x00\x72\x00\x20"

#define WM_IR_BLOCK2_LEVEL5 "\x1f\x03"

Now you just need to replace the desired level, like level 5 for the highest sens with the following hex values:

00 00 00 00 00 00 90 00 41 40 00 (max sensitivity)

Just recompile the code 1. make 2. (sudo) make install. You'll find the libwiiuse.so located in /usr/lib

On my opinion the IR sensivity range increased up to 2-3 meters. It would be great if anyone could affirm this result. Be advised, try this on your own risk - but I guess :) you can't mess up your WiiMote this way...Comments are welcome - also if you need more detailed help on this topic.

More info:

WiiBrew
Compile libwiiuse / WiiUseJ

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.