Wii Hacks

        

Showing posts with label wiimote. Show all posts
Showing posts with label wiimote. Show all posts

Sunday, December 23, 2007

Wii Browser SDK - Javascript API Supports 4 Wiimotes

I came across this on Ajaxian. It looks like opera has opened up the Wii Internet Channel to developers. You can now use Javascript to poll data from all 4 wiimotes.

The Wii Remote data is accessed through the opera.wiiremote object. This object offers a single method opera.wiiremote.update(n) which is used to obtain the status of an individual Wii Remote. The method expects a single parameter; the Wii Remote number. The number is zero-based, so it starts at 0 for the first remote, and ends at 3 for the fourth remote. The method returns a KpadStatus object, which has several properties that give information about the remote. [source]

There is good info and examples here:
http://hullbreachonline.com/wii/sdk.html

Developers: If you create something using this new API, send me the link, and I will add it to the Wii Portal

Wednesday, October 10, 2007

Homebrew Wii Blaster Mod

Check out this video submitted by: susieq50510 of a guy who built his own gun housing for the wiimote:




Thanks John M. for sending this in!

Wednesday, May 02, 2007

Wii-mote Door Opener

While not pracitcal, and definitely not secure, some clever engineers have hooked up a wiimote to their electronic lock, and can now open their door with the flick of the wiimote.

Check out their Video on YouTube:


The translation of the original site can be found here.

Saturday, January 27, 2007

Wii Bot - a sword-wielding, tennis-playing, WiiMote-controlled robot

OK, ok, they've beat me. My wii-mote controlled smarthome is cool, but this wii-more controlled robot arm is freaking sick!

Two guys wrote some addon software for glovepie that allows them to record gestures. By performing those gestures with the wiimote, it activates their robotic arm to start a maneuver. They strapped a sword and a tennis racket to it's hand and took a video of it swinging the sword and hitting tennis balls. Check out the video:





Read more at their website: usmechatronics.com

Wednesday, January 24, 2007

Wiimote Laser Tag


Carl Kenner, inspired by another member's idea on the WiiLi forums has posted the first version of a Laser Tag script for Glovepie.

A bluetooth enabled XP computer, 2 wii motes, and a wearable sensor allow you to play 'laser tag' with a friend using wii motes as your guns.

Get the code here

Wednesday, January 03, 2007

Wii Sticks Physics Simulation


On the WiiLi Forums, walaber , has posted about his Wii Sticks Demo Application. He writes:
I have been playing around with the Wii remote lately, and this is my first prototype combining Wii remote input + physics! It's a virtual version of a toy, where you flick a stick back and forth between other sticks.



created with the Ogre 3D rendering engine, and Newton Game Dynamics physics engine... Wii remote input via cWiiMote library.

Check out the video below:

Download the demo app from here

Monday, December 18, 2006

Initial data for communicating with the Nunchuck

Cadex has documented his findings on the nunchuk in the wiili wiki. He is able to get some of the status from the controller expansion device . He writes:

I found the first piece of the expansion port communication puzzle, I'm able to get at least parts of the status of an attached Nunchuk controller. This is really just a first step, but by telling you what I found out, probably other people will soon find out more
  • The data at 0x04A4000A-0x04A4000C seems to be acceleration data (values "85 D9 61" in the hexdump above). These values seem to be similar, but still a bit different from the acceleration values provided by the Wiimote (values seem to jump when certain boundaries are reached)
  • Bit 0 of the byte at 0x04A4000D shows the state of the "Z"-button; the state of the "C"-button does not seem to be contained in that byte though.
  • The byte at 0x04A40008 seems to contain the X value of the Nunchuks joystick, 0x04A40009 the Y value
  • Data seems to get repeated every 0x100 bytes (see example), so probably bits 8-15 of the address (= the third byte) is ignored when reading from the Nunchuk, only addresses 0x04A40000-0x04A400FF are relevant (see example)
  • It seems to make a difference at which address one starts to read the data. Reading 0x10 bytes starting at 0x04A40000 will contain the interesting values, whereas reading 0x10 (or 0x0F) bytes starting at 0x04A40001 will return completely different data.
  • Writing an other value than 0x01 or writing to a different address in the 0x04A4004- region changes the middle part of the data being returned.
Source: Wiili.org

Friday, December 15, 2006

Newbie's Guide to the Wii Remote on Windows

So you just got your greasy hands on a wii-mote. What can you do with it? You may have heard about people doing crazy things like playing the drums with it, and you may have seen videos on youtube of nerds using it to control their PC mouse. Despite all of the comments you may read below the videos on youtube, most of the videos are not fake. There are really people playing electronic instruments, playing half-life, controlling emulators, navigating google earth, and even more stuff I promised not to show you yet...

This post is all about Wii-Motes and Mii's. If you still have not gotten your Wii-Mote connected to your computer now is the time to get a known working wii compatible bluetooth adapter and join in on all the fun. Once your bluetooth adapter is connected, follow these simple instructions to connect the wiimote to your bluetooth adapter.

Once you have a driver installed and your wiimote's HID device is connected, you are ready to download some apps.

Wii-Mote Apps for Windows
For Windows you will definitely want to check out GlovePIE along with a host of other scripts.
These scripts will allow you to control all kinds of applications. GlovePIE is really a great program because it allows you to map buttons and values on the wii-mote to trigger keypresses in other applications.

Another great program for Windows Mii-Mote users is BigRedPimp's Wii-Mote App






Not to be left out:
OSX users should check out DarwiinRemote or learn how to use the WiiMote with FrontRow
And, For Linux wii-mote adventures WMD by e-Hernick is the way to go.

Transferring Mii's
A new version of MiiTransfer has been released. MiiTransfer 0.9.1 (released 12/13) should work with most, if not all, BT stacks.. The original version only supported the Microsoft Bluetooth stack. Download the latest bins and source code here:
http://sourceforge.net/projects/wdml/

Even better, one of the visitors to this site has created a GUI to make using MiiTransfer even easier. SWiitPii was so kind as to give me all the credit, but the truth is, I did not write a line of code for this program. In any case you can download the MiiTransfer Gui Kit here. I have tried it myself and I was able to easily transfer about 20 Celebrity Mii's from WiiModWii Transfer Station to my Wii in a few minutes. It is basically the .0.9.1 version of the MiiTransfer binaries from sourceforge along with another .NET program that runs the correct command line parameters for you. It works great, thanks for the software SWiitPii! If you need help with this app there is a support forum here

MiiPlaza.net is now hosting Mii's. They have a large community of people, and I see good things coming from their site real soon. If you can't wait and just want to download as many Mii's as possible, then head on over to WiiModWii's Mii Transfer Station to download the latest celebrity mii's and other user submitted Mii's. Otherwise if your picky of what Mii's go into your Wii, and you need to see pictures of them before you download, goto MiiPlaza.

You can not break your wii by uploading Mii's from the internet. Any corrupted bits in the .mii file and the Wii won't even display it. Have fun!

Wednesday, December 13, 2006

Wii-mote 'driver' for linux updated

WMD is a python script for linux that will allow you to comminucate with the wiimote and fully supports motion data, IR pointer functionality and button presses. e-Hernick, the WMD author can explain it better:

actually there is a lot more..
It has advanced, multi-mode, adaptive, distance-dependent, predictive, smoothed pointer control.
It has advanced, fully scriptable graphing capabilities for accelerometer data
As well as primitive motion analysis
The ability to map any Wiimote button to any key, key combination or mouse button.
The ability to configure all the parameters that tweak every algorithm

Also from the website:

-WMD is a Linux Driver for the Nintendo Wii Remote
-WMD lets you use the Wiimote as a mouse
-WMD lets you use the Wiimote as a keyboard
-WMD lets you use the Wiimote as a vibrator
-WMD is dangerous and experimental
-WMD could make your Wii explode!
WMD has been greatly improved over the last few days, with live graphing and gesture graphing support! Get it now at http://www.ForTheWiiN.org

Sounds great! Thanks for all of your hard work e-Hernick!


Monday, December 11, 2006

HOWTO: Transfer a Mii from your Wii using bluetooth and the wii-mote

MiiTransfer is a small application for reading and writing data to the internal memory of the wiimote. Using this app you can easily transfer mii's from your wiimote to your pc, and back to your Wii.

This is exciting, because now Wii hackers can begin trading Mii's using sites such as WiiModWii's Mii Transfer Station:
http://www.wiimodwii.com/miis/

This was all made possible due to efforts by marcan and the author of WDML (WiiMote Data Management Library).

Here is how to transfer Mii's from your Wii to your Wii-Mote to your computer. Once on your computer you can upload and download Mii's from the internet, then transfer them back to your wii-mote and back into your Wii.

First you will need a bluetooth adapter and a Wii-mote.
The first release of MiiTransfer ONLY works with the Microsoft Bluetooth Stack. Yes this is the same MS Stack that will NOT work with GlovePie or many of the other wii-mote apps. If you are using another BT you need to go into device manager and update the driver. The next version of MiiTransfer should be more compatible with other Bluetooth Stacks.

If you can not wait for the next release here is how to change you bluetooth stack: Open Device Manager and goto your bluetooth adapter. Right click and goto properties. Goto teh Driver tab and press Update Driver. Select 'Install from a list' then 'Don't search i will choose a driver', now uncheck the box that says 'Show compatible hardware' and find the Microsoft Bluetooth Stack. Select it and press next until it's finished installing. It may tell you to reboot, but I did not need to, just unplug and replug the USB Bluetooth dongle.

Now you should have the Microsoft BT icon on the task tray. Open that icon, and start the BT connection wizard. Have it search for devices, and press buttons 1 and 2 on your wiimote to ut it into discover mode. After it finds the wiimote, you may need to press buttons 1 and 2 again to finish the bluetooth connection process. If it asks you to use a passcode press 'skip' or click the bubble that says not to use a passkey.If everything went well you will now be connected to the Wii-Mote.

You are now ready to launch the Mii transfer program. Download it from here and extract it. There are a bunch of batch files included in the download archive. Simply run the readslotALL.bat file to read all of the mii's from your wiimote.

Next goto the Mii Transfer website and upload your Mii's or download new Mii's you want to put into your Wii. Once you have these Mii's on your computer, transfer them back to the wii-mote using the writeslotX.bat files.

You will need to manually rename each mii to mii0.mii, mii1.mii, etc and put them in the same directory as your batch files.

Finally go into the Mii channel, hit the icon of the wii-mote on the right, and unload all of your new Mii's into your Mii Space.

Please upload your best Mii's to the Mii Transfer Station. They would like to build up a large database of Mii's and eventually have an online Mii generator.

Also, in case you are interested, Mii Data structure can be found here.
It would be nice to have a little editor app to modify the .Mii files from the PC.

Sunday, December 10, 2006

Mii Data Injection / Modification


Here is some info on the Mii data that is found in the wii-mote. There are 2 blocks of Mii Data, but we're not sure if it alternates between the two, or if it uses both. The data is a hash, so it's not as simple as changing the hex bits to change the look of your Mii. There is a way to update the CRC on the data and it's being investigated now. Here is some Mii Data from the WiiBrew Wiki thanks to Marcan and other hackers on IRC EFnet #wiidev:

Block format

Each block begins with a four-byte magic number / ID code 'RNCD'. Six unknown bytes (mostly zeroes) follow. Then follow the individual Mii data blocks. The last two bytes of the block are a CRC-16 CCITT of the previous 750 bytes (polynomial 0x1021, starting value 0x0000). C code to update CRC

Mii format

Strings are apparently stored in Unicode format (UTF-16), big-endian. Each Mii is 0x4a bytes:

  1. 2 unknown bytes (sometimes zeroes)
  2. 10 wide chars Mii Name (zero padded, non-terminated) (20 bytes)
  3. 32 bytes Mii settings and info (not yet figured out)
  4. 10 wide chars Mii creator (20 bytes)

You can test these codes using Simple HID Write. It's some sample program for Delphi programmers, but until someone else writes a more specific app for doing this stuff, it works. You can download it from here if you want to check out what your Wiimote's Mii data looks like.

To read Mii Data block 1:
Report ID: 17
Command: 00 0F CA 02 EF

To read Mii Data block 2:
Report ID: 17
Command: 00 12 BA 02 EF

Info for writing the data block is here:
http://www.ch0p.com/wiiki/index.php?title=Wiimote#Reading_and_Writing

Can someone put together a quick app that will read and write data from the wiimote mii data storage to a file on the computer? Big Red Pimp posted this Wii-Mote Test app which is close, but still does not fully support Mii Data.

Next step: figure out how to rewrite the hash to make our own mii with the info here, but this comes much later, for now it would be neat to be able to trade mii data block with other wii hackers as an easy way to bus multiple wii's around to other wii consoles without messing with friend codes and emails.

UPDATE: WDML Has cracked a good chunk of the Mii Data format off the Wii-Mote

Mii Data Structure (work in progress):

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;

#define MII_NAME_LENGTH 10
#define MII_CREATOR_NAME_LENGTH 10

#define MII_HEIGHT_MIN 0x00
#define MII_HEIGHT_MAX 0x7F

#define MII_WEIGHT_MIN 0x00
#define MII_WEIGHT_MAX 0x7F

typedef struct
{
// addr: 0x00 & 0x01
u16 invalid:1;
u16 isGirl:1;
u16 month:4;
u16 day:5;
u16 favColor:4;
// 0 - 11 (changing to 1111, along with setting the preceeding bit
// results in a grey shirt, some values over 11 will crash the Wii
// when trying to change the favorite color).
u16 unknown:1;

// addr: 0x02 through 0x15
u16 name[MII_NAME_LENGTH];

// addr: 0x16
u8 height;

// addr: 0x17
u8 weight;

// addr: 0x18 - 0x1B
u8 miiID1; // Unique Mii identifier
u8 miiID2;
u8 miiID3;
u8 miiID4;

// addr: 0x1C & 0x1D & 0x1E & 0x1F
u8 systemID0; // Checksum8 of first 3 bytes of mac addr
u8 systemID1; // mac addr 3rd-to-last byte
u8 systemID2; // mac addr 2nd-to-last byte
u8 systemID3; // mac addr last byte

// addr: 0x20
u16 faceshape:3;
u16 skinColor:3; // 0 - 5
u16 unknown:?;
u16 facialFeature:4; // 0 - 11

// addr: 0x22 & 0x23
u16 unknown:7; // Hair type falls in here
u16 hairColor:3;
u16 hairPart:1;

// addr: 0x24 & 0x25
u16 unknown:?; // Eyebrow type falls in here
u16 eyebrowrotation:?;
u16 unknown:?;

// addr: 0x26 & 0x27
u16 eyebrowColor:3;
u16 eyebrowSize:5; // min 0, max 16 (depends on eyebrow type?)
u16 eyebrowVOffset:?;
u16 eyebrowSpacing:?;

// addr: 0x28 & 0x29
u16 unknown:8; // Eye type falls in here
u16 eyeRotation:3;
u16 unknown:1;
u16 eyeHeight:4; // 12 == mid, 0 == highest

// addr: 0x2A & 0x2B
u16 eyeColor:3;
u16 unknown:13;

// addr: 0x2C & 0x2D
u16 noseType:4; // 0 - 11
u16 noseSize:4; // 0 - 8
u16 noseHeight:4; // 0 - 9?
u16 unknown:3;

// addr: 0x2E & 2F
u16 lipType:5;
u16 unknown:11;

// addr: 0x30
u8 unknown:1;
u8 glassesType:3;
u8 glassesColor:3;
u8 unknown:1;

// addr: 0x31 & 32
u16 glassesSize:3;
u16 unknown:1;
u16 glassesHeight:4;
u16 mustacheType:2;
u16 beardType:2;
u16 facialHairColor:3;
u16 unknown:2;

// addr: 0x33
u8 mustacheSize:3; // 0 (max) - ? (min)
u8 unknown:1;
u8 mustacheHeight:4; // 0 (high) - 16 (low)

// addr: 0x34 & 0x35
u16 moleOn:1;
u16 moleSize:3; // ? - 8
u16 moleHeight:5; // 0 -
u16 unknown:4;
u16 moleHorizontal:3; // 0 (left) - ? (right)

// addr: 0x36
u16 creatorName[MII_CREATOR_NAME_LENGTH];

} MII_DATA_STRUCT;

Tuesday, December 05, 2006

New Wii Mote Applications for OSX and Windows

It's good to see the Japanese have started to hack their Wii's already! Well, wii-motes anyway...


Hirolog posted this Wii-Mote Application for OSX which allows you to control and monitor several features of the Wii-Mote using OSX. There is also a mouse mode, but the calibration of my wii-mote must be different because my mouse pointer keeps going to the bottom left corner of the screen when it's active.

More Info From Hirolog:

  • DarwiinRemote is a tiny software which reads data from and sends data to Nintendo Wii Remote
    • Inputs
      • 3-axis acceleration sensors
      • all buttons except power button on/off
    • Output
      • 4 LEDs
      • Force Feedback
  • DarwiinRemote makes us control other applications by using Wii Remote
    • but now only supports "AppleRemote" mode...
Download the software here:
http://blog.hiroaki.jp/2006/12/000433.html

UPDATE: 12/10/06 - DarwiinRemote 0.3 is released!! This version supports IR sensor and motion sensor calibration. Enjoy!

New Project Page:
http://sourceforge.net/projects/darwiin-remote/





Also, from our new Japanese friends, here is another Japanese Wii Hacking Website which has similar software for Windows called WiinRemote.

Get it here:
http://onakasuita.org/wii/index-e.html

Saturday, December 02, 2006

Download the Windows WiiMote Driver

CarlKenner, has posted his wiimote application to the WiiLi forums. This is an amazing accomplishment on it's own, but to add even more to the coolness of this is the fact that Carl DOES NOT EVEN HAVE A WIIMOTE!

Kudos to Carl for writing this software, and having it work on the first try without the actual hardware. I am downloading the files now to test them out and I'll have a full report for you tomorrow on how it all works. Until then you can try it out for yourself by downloading the Windows wii-mote drivers here:
http://www.wiili.org/forum/download-windows-driver-here-t294.html

Friday, December 01, 2006

Control TV with Wiimote

This was a special promo item given out to Nintendo Club Members in Japan. It does not have the hardware of a retail wiimote, it is simply a wii-mote shell with hardware inside to emit infared signals. Does anyone know how this is programmed? Is it a learning remote, or does it have preset codes for each brand of TV like a radioshack universal remote?





With bluetooth drivers for the Wii Remote on the way, it's only a matter of time before people (like me) are actually doing things like this with the real wii-motes. This is just a big tease as to what's to come in the next few months. Stay tuned for more info! Fun stuff is in development...

Thursday, November 30, 2006

Wiimote Driver for OSX - RVL-CNT-01


Cliff has released an app for Mac OSX which will allow you to pair the Wiimote with your Mac to view and send commands. This is NOT a full blown driver, but now that the initial hooks have been made it will be much easier for other developers to get in on the action to start coding the other parts of the driver.

You can download RVL Enabler for OSX from Cliff's site:
http://windower.net/RVLEnabler.zip

Source Code is here:
http://windower.net/RVLEnablerSource.zip

UPDATE: A new OSX application for controlling the wiimote has bee posted here.

Wednesday, November 29, 2006

Wii Mode Driver Development Update

Marcan has posted a video showing his progress on WiiMote Development. He has a nifty little program that will allow you to see graphs of the data that comes from the remote as you wave it in the air. By using these measurements and calculations developers will eventually be able to predefine gentures and movements of the wii-mote in their software applications.
http://youtube.com/watch?v=9iBaKsh5z_o
Great work Marcan! When will we be able to get our hands on this demo app so we can see the pretty colors on our own screen?

Volsung, Wiilii, and others are busy documenting all of the math involved in the wii-mote over on the Wiili Wiki:
http://www.wiili.org/Motion_analysis

Also Cliff in IRC Efnet #wiidev has made progress on a linux i/o driver for the wii-mote. Nothing to test yet, but when code is released you can be sure it will be posted here.

Sunday, November 26, 2006

More Wii-Mote Hacking

I figured out a little trick with the wii-mote last night. The wii-mote is paired with the Wii, so you usually will not see it when you do a bluetooth 'discover all devices' on the PC.

But, If you press buttons 1 and 2 at the same time on the bottom of the wiimote it puts it into a discovery mode where the lights on the bottom are blinking. Now if you try to discover nearby devices on your pc you should see the wii-mote and can attempt to pair it.

UPDATE 11/26/06 5PM:
You can also put it into discovery mode by pressing the sync button under the battery cover. The remote doesn't actually have a passkey, however once it is connected, the 3 services it advertises are non standard bluetooth services. Until someone writes a wii-mote driver we can't do much with this hardware.

For specifics on the Wii's Bluetooth check out
WiiLii Wii Bluetooth Wiki Entry
and
WiiLi Wimote Driver Wiki

UPDATE 11/26/06 3AM:

Progress has been made! some developers have made the initial connection to the bluetooth remote and can now control the LEDS and force feedback.

The developer has posted a patch for getting bluetooth communication working and even posted a little script that makes the lights on the remote dance.

If you want to help you can join in on the conversation here on the Wiili forum.

UPDATE 11/26/06 11AM

Looks like it's time to break out the Math books, Andy on the Wiili forums has figured out
how to log linear force data.

They have begun to write the algorithms which will be used to detect movement, speed and rotation of the wii-mote when it is connected to a pc or mac.

* Linear force data can be logged using a SET_REPORT HID request on Output channel 12. The first parameter is a force feedback parameter while the second must be 31. Some other 3X numbers work for the 2nd parameter and do different things, but I'm not sure what exactly. Logging can be turned back off using 30. (example to turn logging on: 52 12 02 31) When logging data data with 31 the last 3 bytes of data represent the forces with ~80 being 0 force. The 1st bit represents the side to side force, the 2nd is the lengthwise force and the 3rd is the up-down force.

Wednesday, November 22, 2006

Wii Mote Drivers for Linux

http://article.gmane.org/gmane.linux.bluez.devel/9659

From: Andy Spencer
Subject: WiiMote driver
Newsgroups: gmane.linux.bluez.devel
Date: 2006-11-16 07:39:00 GMT

I've been thinking about purchasing a WiiMote when they become
available in order to start working on a linux mouse driver for it.
Since it communicates using bluetooth this seems to be the most
appropriate place to do development. Anyway, I've never done much with
bluetooth or drivers before so I'm going at this as a bit of a
learning project. If anyone else is interested let me know. I'll be
reading though source code, but if anyone has any suggestions about
where to start or what documentation to check out let me know that as
well.

I would LOVE to see this happen. It is a great remote. It has a nice weight to it, and the buttons are easy to get to. To be able to use it as a pointer in linux would be fantastic!

Subscribe to the Nintendo Wii Hacks Blog RSS Feed

Also see:
PSP Hacks
PS3 Hacks
Zune Hacks
iPhone Hacks
Apple TV Hacks