iPhone 5sのセンサー問題、原因が判明。解決策も

iPhone 5sのセンサー問題、原因が判明。解決策も 1

でもアップルからは動きなし。

iPhone 5sのモーションセンサーが変、とお伝えしましたが、あるデベロッパーがこの問題について調査し、その原因を突き止めました。これはハードウェアの問題で、アップルが見逃したか、または無視したものと思われます。ただ幸い修正方法もあるんですが、それはアップルが提供するものではありません。

iPhone 5sの傾斜は加速度計で判断されているのですが、デベロッパーのRealityCapによれば、アップルがこのパーツのベンダーを変えたことが問題だそうです。同社のイーグル・ジョーンズCEOによれば、ChipworksのiPhone 5s解体で、その加速度計がボッシュ製のSensortechというパーツになっていることがわかりました。iPhone 5ではSTマイクロエレクトロニクス製のものが使われていました。そして、それぞれの加速度計のスペックは大きく違っていたんです。

iPhone 5sのセンサー問題、原因が判明。解決策も 2

ジョーンズ氏は、加速度計の正確さは2つの主な指標でわかるといいます。それは分散(Variance)バイアス(Bias)です。前者は加速度計の判定がどの程度安定しているかを示し、後者は製造工程で出る一定の誤差を示します。ジョーンズ氏はメールでより詳細を説明してくれました。

たとえば、重力の強さを計測するとします。それは9.81 m/s^2となります。

バイアスが小さく、分散が大きいセンサーは、それに対し「9.85 9.75 9.81 9.90 9.79 9.77」というような出力をする可能性があります。
バイアスが大きく、分散が小さいセンサーは、「9.60 9.61 9.59 9.60 9.62 9.58」というような出力をする可能性があります。

RealityCapが計測したところ、従来のSTマイクロエレクトロニクス製パーツと新しいBosch製パーツは、分散は同じなのですが、バイアスが大きく違っていました。

ここが問題です。STのパーツのバイアスは大抵±20mgで、Boschのパーツは±95mgです。このほぼ5倍の差は我々の計測でも確認でき、ユーザーやメディアが指摘している誤差とも一致します。±20mgのずれがあれば、傾き検知において±1度のずれがありえ、±95mgのずれは±5度のずれにつながります。

その結果が上のGIF画像みたいなことになっていて、iPhone 5sを水準器として使いたいときとかレーシングゲームをプレイするときとかに影響が出ています。

ジョーンズ氏は、この問題についてはアップル自身が工場でのカリブレーションで対応できたはずだと言います。が、何らかの理由でそれをしなかったようです。でもだからって対策がないわけではなく、アプリのデベロッパーがアプリ内にカリブレーションのプロセスを入れれば問題は回避できます。ただし、それは簡単ではありません。

この問題は、アプリの中にカリブレーションのステップを入れれば回避できます。ユーザーにデバイスをいろいろな方向に置いてもらって、加速度計のバイアスを判定するんです。その後アプリはこのバイアスを加速度計から渡されるデータから差し引いて、値を修正するんです。

ってことは、その分追加で開発しなきゃいけないのでデベロッパーにも負担だし、ユーザーにとっても煩雑になります。でもこの修正をシームレスに可能にするコードをRealityCapが開発中で、近々ブログで公開しようとしています。

この問題について、アップルからは何も動きがありません。ジョーンズ氏によれば、アップルは各iPhoneに対してカリブレーションをして、ファームウェアにバイアスを埋め込むこともできるはずだと指摘します。それをしていないということは、アップルとしてはそれほど問題ではないと考えているのでしょう。

残念なのは、アップルがパーツをこそっとダウングレードして、その埋め合わせの手段も講じてなかったってことです。アプリのカリブレーションするサンプルコードをデベロッパーに配ったりしてもよかったんじゃないでしょうか。でも今までそれをやってないってことは、これからもアップルからの対応策は期待できないってことなんでしょうね…。

RealityCap and Chipworks

Mario Aguilar(原文/miho)