View Single Post
  #12145 (permalink)  
Old 10-04-2009, 09:59 PM
fenixjn's Avatar
fenixjn
Halfway to VIP Status
Offline
 
Join Date: Jun 2009
Posts: 535
Reputation: 485
fenixjn is becoming a PPCGeeks regularfenixjn is becoming a PPCGeeks regularfenixjn is becoming a PPCGeeks regularfenixjn is becoming a PPCGeeks regularfenixjn is becoming a PPCGeeks regular
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Re: |HERM|ROM|6.5|WWE| ** EnergyROM 'Genesis' (23016) ** | Built Sep 20th | Manila 2

Quote:
Originally Posted by winmonewbie View Post
Are you sure? As I understand it, the rationale for the process is thus:
The phone comes from HTC without a fully charged battery and for some it "thinks" the phone is fully charged when it's not. So draining the battery and hard resetting would erase any files/settings that allow this mistake. I'm not saying your wrong but based on that scenario, how would putting the phone into bootloader help? Just asking.
Well as far as I have seen so far, the setting that controls the battery charge status is not within the flash itself but on some separate circuit. If it was on the flash, then any hard reset/reflash would fix it but it doesn't. My guess is, there is a circuit within the TP that measures the time to reach certain voltage and current transfer when charged. If the current becomes constant over a large period of time (read: overnight charging), then the circuit assigns the voltage AND the current at that point as the status for charged battery.

Now whenever we connect our phones to the PC or to the charge for a small amount of time, the voltage inside the regulators and capacitors peaks and the system does an initial slow discharge to prevent damage to the battery (since the battery still has some charge on it)... so here comes my conclusion:

Since the voltage at the battery terminal is high (like in a charged status, because we just plugged the phone to the charger/pc) and the regulator is draining the battery slowly.. as slow as when the battery is charged my assumption is, the circuit assumes that the battery is charged or near charged and stops charging the battery and then assumes that whatever value is in there is the new 100% or fully charged value.

When the battery is completely discharged, the regulator does not stop the current from going directly into the battery, in fact, it will take as much as possible from the charger (reason why the battery becomes so hot) and then gradually starts reducing the amount of current sent as the battery charges.

Now, if the constants were stored on the flash itself, it would create an issue whenever we flash and hard reset because the OS would not know what is the current status of the battery until the phone just shuts off on its own due to low battery conditions. This also would mean that the charging circuit has to learn the new constants every time a hard reset happens or we risk killing the battery due to irregular (more like incomplete) charge/discharge cycles.

Now if these values where to be stored in a separate circuit within the phone or the battery itself it would make sense since the OS would be able to recall these values (for display purposes) and the circuit would keep charging the battery "as usual". This also eliminates the need of having to due a battery cycle every time we flash or HR the phone.

Now it makes even more sense to store these values while the phone has power, as a failsafe (if it was on the flash, not even a full powerdown would kill the value which would mean we would not be able to charge the battery because as soon as the charger is connected the phone would indicate that the battery is fully charged).

At least that is the reasoning behind my theory. I have personally had the battery bad memory issue and this procedure solved it without killing the contents of my flash.

EDIT: And why bootloader?

Well it so happens that the OS will keep the phone running up to a certain value, after which it will start to shutdown individual components of the phone to preserve power. Remember, there is no way for the phone to know we are purposely discharging the battery so the OS will try to preserve power. There is a point where the OS will read a reserve charge out of the battery which is the minimum value needed to power on the phone and the OS will shutdown at that point.

When this happens we still can power on the phone, it wont load the OS (because of the reason stated above), but it will still load the touch pro logo and then we would be stuck on a power on/emergency shutdown cycle until the phone does not power on... the problem is... there is still a small residual charge that might build up and allow the phone to power on one last time... so we dont have a fully discharged battery... we have a discharged battery with some minimal charge on it.

On bootloader mode... well this does not happen: most of the components are off but two power hungry components are working at 100%, the screen and its backlight. The backlight is responsible for most of the discharge process and the bootloader is not really an OS on its own so it will not shutdown the phone even if the battery reaches the minimum value... so no enery preservation here. As long as the phone can keep the screen on, the bootloader will keep the phone going.

So when finally the shutdown happens, it is because the phone has no enough charge to power up the screen at all, that still leaves a minimal residual charge but the charge is so small the phone self test cannot complete properly due to extreme low battery conditions which is as close as we can get to a empty battery.
__________________
Some Samsung fold phone > Treo 600 > Treo 650 > Treo 700p > Treo 755p > HTC Touch Pro > HTC EVO

ROM: DamageControl 3.1.2
Radio: Stock +upgrade (for now)

Last edited by fenixjn; 10-04-2009 at 10:11 PM. Reason: Bootloader reason
Reply With Quote
This post has been thanked 1 times.