Iwata Asks is a series of interviews conducted by former Nintendo Global President Satoru Iwata with key creators behind the making of Nintendo games and hardware.





Iwata Asks: Wii MotionPlus

Combining Two Sensors

Iwata

So we've heard that the gyro sensor has its own idiosyncrasies but could you tell us precisely what made it so difficult to work with?

Takamoto

Well as we've said, the device can measure twisting and rotation. But having said that, once it goes outside the area where you can actually observe it, there are times you can't be sure that you're receiving reliable data.

Iwata

So that means that if you wave the Wii Remote in a large movement, it could go beyond the limits of the area the sensor can detect and the movement wouldn't end up being reflected in the gameplay.

Takamoto

That's it.

Iwata

Let's ask Ito-san, who was in charge of the electrical circuitry, to explain how you managed to overcome that problem.

Ito

Certainly. Well, we increased the sensitivity of the gyro sensor for Wii to five times the level of a normal one. After all, the gyro sensors used in video cameras can only detect a rotation of about 300 degrees per second, which makes them pretty slow...

Iwata

300 degrees per second doesn't sound slow to me! (laughs)

Ito

But there are people who make incredibly quick movements when they're playing games.

Iwata

So you mean that if the sensor could only detect a rotation of 300 degrees per second, there would be cases where the limit of the sensors would be exceeded and any movement beyond that would be cut off.

Ito

That's right. Which is why we designed the sensor so it could detect 1600 degrees of movement per second.

Iwata

Which is about four and a half complete rotations. For a person to rotate their hand that much would demand quite an effort!

Ito

Right. So by doing that, we made sure that fast movements would be detected. But then we had to discuss the need to detect slow movements.

Iwata

It sounds like there's a contradiction here. After all, if you ensure it can detect quick movements, common sense would tell you that its sensitivity when it comes to detecting slow movements would decrease.

Ito

That's exactly what common sense would tell you! (laughs) But we really wanted to do what we could to make it detect slow movements as well. I had repeated discussions with Ota-san about this.

Ota

We had a fair few discussions about it, didn't we?

Iwata

So, Ota-san, how did you solve this issue?

Ota

We designed the sensor so it would have two modes: one for fast movements and the other for slow movements.

Iwata

And what precisely are those two modes?

Ota

Well, as the data from the sensor is sent wirelessly, the resolution of the data is already determined. Let's imagine there are ten bands at which data can be sent. In reality, there are more than this, but I'm using this example to make it easier to understand. So if you have ten bands, this means that you can only send data signals ranging from zero to nine.

Iwata

So let's say that data resolution is fixed at ten bands, you can't simply increase it to twenty, can you?

Ota

That's right - you can't do that. Let's use the speed of a car as an example. With a car that can travel at speeds of up to ten kilometres per hour, data about its current speed would be sent in units of one kilometre per hour. That is to say, each band corresponds to one kilometre per hour. However, if we increase the maximum speed we can measure to one hundred kilometres per hour, each unit would then become ten kilometres per hour. This would mean we would become unable to detect low speeds such as two or three kilometres per hour.

Iwata

So if you adjust the settings to let you measure high speeds of up to one hundred kilometers per hour, the data will be measured in increments of ten kilometers per hour.

Ota

Correct. This is why we equipped the sensor with two modes: the low-speed mode where the data is sent in ten bands, within a range of up to ten kilometers per hour; and the high-speed mode where the data is sent in ten bands, within a range of up to one hundred kilometers per hour.

Iwata

So by having two modes, you've made high-sensitivity to small movements possible while at the same time allowing detection of more dynamic movements.

Ota

That's right.

Iwata

So that's how you made the sensor so it was able to respond to slow movements. But it wasn't just that which made the gyro sensor hard to handle, was it?

Ota

No, it wasn't. The sensitivity of the gyro sensor's detection ability could be adversely affected by changes in the surrounding temperature.

Takamoto

The "M" in MEMS does stand for "mechanical."

Iwata

So precisely because it is mechanical, it meant that could occur.

Ota

Normally, if something is not in motion, the data being sent back should read zero. But in the case of the gyro sensor, even when it's perfectly still, data that reads one or two will start to be sent back after a while.

Iwata

So although no one is touching it, it's behaving as if it were in motion.

Ota

The technical term for this phenomenon is "temperature drift."

Iwata

So what's happening is that as the temperature changes, the point that should be zero drifts out of place.

Ota

It's not just temperature that can do it: humidity or sudden impacts can have the same effect. So we discussed ways of achieving our aim of somehow getting a sensor made where this problem didn't occur…

Iwata

But isn't that...

Ota

…Impossible! But there is a way of getting round the problem. All you have to do is include a completely separate sensor that adjusts the point of zero, let's say.

Takamoto

But we weren't allowed to ramp up the cost unnecessarily.

Ota

This is why our only option lay in trying to find a software-based solution to the problem. We tried a range of solutions — it was a process of trial and error.

Iwata

This meant that you had no choice but to figure out some method of detecting that the Wii Remote was not currently in motion.

Ota

And the first idea we came up with was an accelerometer. We thought we might be able to use it to detect whether or not it was moving but...

Iwata

But it didn't work, did it?

Ota

No, it didn't. The gyro sensor is much more sensitive than the accelerometer, meaning that there were cases where even though the accelerometer was indicating zero, the gyro sensor was moving.

Iwata

That's no use, is it?

Ota

So ultimately, we made it so that the gyro sensor is actually able to detect that it is not currently moving.

Iwata

So even with fluctuations in temperature and humidity, the gyro sensor is able to function correctly.

Ota

That's right. We included software which made that possible.

Iwata

So Ota-san, while you were trying to tame that hard-to-handle gyro sensor, you were also developing the SDK — that is, the kit for software development. What new directions in game development do you think were opened up by the combination of the accelerometer and the gyro sensor? I'd like to hear your considered opinion as someone who has been involved in the development of a wide variety of game titles.

Ota

I think the single biggest development is that Wii MotionPlus will allow game developers to get a sense of the player's feelings.

Iwata

The player's feelings?

Ota

By being able to detect rotation, the movement of the Wii Remote in the player's hand and the movement of the object on screen have been made to match in real time. That's something that everyone has always dreamed of realizing.

Iwata

That's undoubtedly true.

Ota

But it was by no means easy to achieve that. The measures we've just spoken about, such as broadening the range of the speed detection or increasing the sensitivity of low-speed detection, was not enough by itself.

Iwata

There was also the problem of temperature drift.

Ota

Also, because the data is being transferred wirelessly, there was the possibility of some data not being received. All of which meant that while you were moving the Wii Remote, it became slightly out of synch with the movement of the corresponding object on screen.

Iwata

How did you resolve that problem?

Ota

Using the gyro sensor alone, we couldn't find a satisfactory solution to that problem, but the accelerometer proved very useful in correcting it.

Iwata

So this was something that neither the accelerometer nor the gyro sensor could achieve alone. But by combining both of those sensors, you were able to achieve what you had always wanted — to be able to take account of the way the player was feeling.