Saturday, September 17, 2005

How the Nintendo Revolution Controller detects Motion


How does it work? well, they could us RF or IR and have a receiver measuring deltas in time of packets received at a receiver, but that is too expensive and not likely how they did it. Instead, its likely they put a potentiometer in the controller. A potentiometer is very cheap: 4 wires standing straight up within a liquid stuck onto the circuit board. As the liquid moves, the current across the 4 poles changes and you can detect roll, pitch, and yaw (position will likely be controlled with the standard d-pad on the top of the control). This info is transmitted via IR back to the console. So, with a $.50 device, Nintendo will open up new forms of gameplay. Don’t disappoint us Obi-wan.

A simple 2D example is shown above. As the liquid moves around the current on each of the two wires is measured and motion can be detected, the amount of change in current is proportional to the movement that has taken place. Technically, you can probably get away with only 3 poles in 3D, but for robustness there will probably be at least 4 poles, and maybe multiple potentiometers at the front and back of the controller, for example. Note, i'm just guessing on all of this :)

3 comments:

KimPallister said...

Possibly you mean an accelerometer or some other type of specialized potientiometer?

A potentiometer is just a variable resistor, such as those used in volume & tone controls on your electric guitar or any radio.

See wikipedia entry for specifics:
http://en.wikipedia.org/wiki/Potentiometer

They are also referred to as "pot" for short, and thus are the second largest reason I used that word a lot in college.

KimPallister said...

Oh, and based on a TGS conversation with someone that worked on one of the demos, it has more than one kind of sensor.

Ahh... perhaps to overcome weakness of any given one? Maybe one for acceleration, one for pitch/yaw/roll, and one for position?

adam lake said...

you could clarify and say a 'specialized potentiometer'. to me, its a potentiometer. as a guy developing the driver for it (for example), i would get the different resistance on each of the wires (differences in potential), and use these to determine RPY. i can use the speed of those deltas to determine acceleration (thus using the potentiometer as an acclerometer as well). yep, for this to be robust, they will probably have more than one mechanism. let's take it apart and see!! can't wait to get one :)