Há algumas semanas confirmamos relatos de que os sensores de movimento do iPhone 5S não funcionavam direito. Alguns desenvolvedores passaram a investigar o problema, e descobriram que a raiz dele de fato é uma falha de design que a Apple não percebeu ou simplesmente ignorou. A boa notícia é que vem aí uma correção – mas não por parte da Apple.
O nivelamento do iPhone 5S é medido pelo acelerômetro do dispositivo, e, segundo os desenvolvedores da RealityCap, o motivo dos problemas está no fato da Apple ter trocado de fornecedor da peça. Em um post em um blog, o CEO Eagle Jones ressalta o desmonte feito pela Chipworks para o iPhone 5S, que mostra que enquanto os antigos iPhones usavam acelerômetros STMicroeletronics, o iPhone 5S usa uma peça Bosch Sensortech. É uma observação incrivelmente nerd, mas é uma que importa, já que os acelerômetros em questão são diferentes.
Jones explica que esses pequenos dispositivos de precisão dependem de duas medidas-chave que informam quão precisos eles são: variação e viés. O primeiro informa quão consistente são as leituras de um acelerômetro, enquanto o segundo descreve uma imprecisão constante devido à fabricação de hardware. Ele detalhou em um email:
Vamos dizer que você esteja medindo a força da gravidade, que deve ser 9.81 m/s^2.
A um viés baixo, mas alta variação, o sensor deve mostrar 9.85 9.75 9.81 9.90 9.79 9.77.
A um viés alto, baixa variação, o sensor deve mostrar 9.60 9.61 9.59 9.60 9.62 9.58
Segundo as medidas da RealityCap, o antigo componente ST e a nova peça Bosch possuem a variação similar, mas a especificação de viés é bem diferente:
Foi aqui que encontramos o problema: o viés comum da peça da ST era +/- 20mg, enquanto o da peça da Bosch era de +/- 95mg. Isso é quase 5x mais amplitude de deslocamento e foi confirmado nas nossas medições, e está de acordo com as falhas relatadas por usuários e meios de imprensa. Para ser específico, uma amplitude de deslocamento a +/- 20mg significa um intervalo de +/- 1 grau na precisão de detecção de inclinação, enquanto em +/- 95mg a diferença é de +/- 5 graus.
O resultado é que o equilíbrio geral nas medições do smartphone está errado, afetando de tudo, desde nivelamento a como você joga games de corrida.
Jones me disse que a Apple poderia ter consertado isso com uma calibração em fábrica, mas por algum motivo acabou não fazendo isso. Não significa que tudo está perdido para sempre; desenvolvedores de apps podem compensar a mudança no acelerômetro com calibração adicional.
É possível resolver o problema ao incorporar procedimentos de calibração nos apps. Esse procedimento pediria ao usuário para posicionar o dispositivo em diferentes orientações para determinar o viés do acelerômetro. Apps podem então usar essas medidas para conseguir uma medida correta.
O que seria complicado de fazer em cada um dos apps afetados. A RealityCap, enquanto isso, está trabalhando em códigos para desenvolvedores colocarem a correção com facilidade, e planeja detalhar mais sobre isso em um futuro post em seu blog.
A Apple permanece calada sobre o problema. De acordo com Jones, a Apple poderia fazer a calibração de cada novo iPhone e consertar o viés no firmware – mas eles ainda não fizeram isso e aparentemente não acham que vale a pena.
O mais decepcionante é que o pessoal em Cupertino aparentemente escolheu uma peça inferior sem compensar a perda da mudança. Na teoria, ela poderia criar um passo adicional de calibração em apps, e oferecer o código para ajudar desenvolvedores a fazer isso. É o mínimo que podem fazer. Mas isso não aconteceu até agora, e não parece provável que vá acontecer. [RealityCap andChipworks]