Monday, January 24, 2011

Is there a software switch proximity error on the iPhone 4?

A few months ago there was a lot of buzz about the proximity solution that was promised with the iPhone 4.  I have still not yet seen this.  I offered a tentative solution to this a few months ago, by showing that if you depressed the Home button, you can press the virtual speaker button on the screen or access other virtual buttons.    Alas, this is not a real solution to the problem.  Sometimes keeping the Home button pressed will also inadvertently bring up the Voice Command screen, something that you do not want while you are on a phone call.  It also defeats the purpose of being able to make a phone call with one hand.

This weekend, I was tinkering with an electronics set in my garage, working with something that I will write about at a later date, called ARDUINO.  It is a programmable logic board that enables you to use simple programming language to do a lot of things, such as turning LED lights on and off etc.  A lot of artists use ARDUINO boards to do light shows etc.  As I stated, I will write about the ARDUINO later.  But while tinkering with this, I noticed something strange.  I was able to use a light sensor to ring a bell.  Akin to a home alarm system that detects a change in the light source, occluding the sensor would ring the bell.  This whole thing is programmed into the ARDUINO .  Just then it came to me!  What if there is something in the IOS 4.0 software that is programmed in reverse?  In other words, what if when the sensor is blocked, instead of the virtual screen going blank as it does if you place the phone next to your face, the screen turns on?

To test this, I made a phone call and decided to keep my finger on the light sensor (located at the top of the phone screen, next to the telephone speaker).  Low and behold, the virtual keyboard showed up and stayed on.  However, when I placed the phone next to my cheek, my cheek kept on pressing keys during the conversation.   I tried it again and it didn't work.  But it worked again on the third phone call.

Of course this could be a faulty sensor, but could there really be millions of faulty sensors around?  The one support for a faulty sensor is the fact that not everyone is complaining about having a sensor problem, but everyone has the same IOS software.  But why would it only happen intermittently?  Is it the light source or is it a software issue?   Could it be that if the proximity sensor is covered from the beginning of the call there is no issue - as I noted with my three calls 2/3 times?  That would not be a hardware issue then, but a software issue in the ROM.   In using ARDUINO, albeit a rudimentary software/hardware platform, I am learning a lot about more complex circuit boards.  And as I state again, rudimentary is the operative word.  There may be a plethora of things going on that account for the sensor issue, but it would be nice if it was just a software glitch that gets fixed very soon. 


Addendum:  More testing shows that if I use the iPhone in a relatively dimly lit room, I do not get the flashing virtual screen problems.  This may mean a sensitivity issue in reading the data from the photosensor.   The question that comes with that is if this is correctable via software or is that a hardware (ie. capacitance/resistor) issue?   It would seem that software could compensate for this.  But if it isn't happening to everyone that brings up the hardware debate again.  If an update is released for the ROM, how would that affect people who do not have the problem in the first place?



No comments:

Post a Comment

I will be trying unmoderated comments for a while. If this gets ridiculous, then I will have to move to moderating the comments once again.