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?
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.
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.
Let’s ask Ito-san, who was in charge of the electrical circuitry, to explain how you managed to overcome that problem.
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...
300 degrees per second doesn’t sound slow to me! (laughs)
But there are people who make incredibly quick movements when they’re playing games.
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.
That’s right. Which is why we designed the sensor so it could detect 1600 degrees of movement per second.
Which is about four and a half complete rotations. For a person to rotate their hand that much would demand quite an effort!
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.
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.
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.
We had a fair few discussions about it, didn’t we?
So, Ota-san, how did you solve this issue?
We designed the sensor so it would have two modes: one for fast movements and the other for slow movements.
And what precisely are those two modes?
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.
So let’s say that data resolution is fixed at ten bands, you can't simply increase it to twenty, can you?
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.
So if you adjust the settings to let you measure high speeds of up to one hundred kilometres per hour, the data will be measured in increments of ten kilometres per hour.
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 kilometres per hour; and the high-speed mode where the data is sent in ten bands, within a range of up to one hundred kilometres per hour.
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.
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?
No, it wasn’t. The sensitivity of the gyro sensor’s detection ability could be adversely affected by changes in the surrounding temperature.
The “M” in MEMS does stand for “mechanical”.
So precisely because it is mechanical, it meant that could occur.
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.
So although no one is touching it, it’s behaving as if it were in motion.
The technical term for this phenomenon is “temperature drift”.
So what’s happening is that as the temperature changes, the point that should be zero drifts out of place.
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...
But isn’t that…
…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.
But we weren’t allowed to ramp up the cost unnecessarily.
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.
This meant that you had no choice but to figure out some method of detecting that the Wii Remote was not currently in motion.
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…
But it didn’t work, did it?
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.
That’s no use, is it?
So ultimately, we made it so that the gyro sensor is actually able to detect that it is not currently moving.
So even with fluctuations in temperature and humidity, the gyro sensor is able to function correctly.
That’s right. We included software which made that possible.
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.
I think the single biggest development is that Wii MotionPlus will allow game developers to get a sense of the player's feelings.
The player’s feelings?
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 realising.
That’s undoubtedly true.
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.
There was also the problem of temperature drift.
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.
How did you resolve that problem?
Using the gyro sensor alone, we couldn’t find a satisfactory solution to that problem, but the accelerometer proved very useful in correcting it.
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.
That’s exactly right.
© 2020 Nintendo.