Aller au contenu

[TUTO] [EN COURS] Résoudre le "battery aging" : arrêt à 15%


kokirigames

Recommended Posts

Ce tuto est en cours de construction. Je veux bien de l'aide, des testeurs et des correcteurs :)

Ce tutoriel explique comment recalibrer la batterie quand même la technique de JaymZ37 ne fonctionne pas.

Dans les faits, ce tuto corrige le problème de l'arrêt du téléphone à environ 15% de batterie restante.

Il est basé sur ces threads :

http://forum.xda-dev...d.php?t=1534892 : toute la doc et les ressources proviennent de là

http://forum.xda-dev...&postcount=2112 : détails sur les travaux

http://forum.frandro...58#entry1736558 : mon expérience personnelle la première fois que j'ai fait la manip

http://forum.frandro...32#entry1736134 : la discussion sur le problème dans les commentaires de l'autre tuto de calibration

Premièrement, cette manip est normalement réservée aux kernels sense, je ne pourrai en aucun cas être tenu responsable si vous brickez votre phone (le forum non plus, le développeur de xda non plus).

Tuto si vous avez une rom SENSE (je n'ai pas essayé et n'ai pas envie d'installer une rom sense, je cherche donc un/des testeurs) :

2 MÉTHODES !!!!!

Méthode "Flasher un nouveau kernel" (ne fonctionne pas avec sense 3.5) :

- backup OBLIGATOIRE

- flasher le zip qui va bien en fonction du kernel que vous désirez :

BFS+SVS : ahmet-exp4_bfs_svs.zip

BFS+HAVS : ahmet-exp4_bfs_havs.zip

CFS+SVS : ahmet-exp5_cfs_svs.zip

Voir FAQ si vous ne savez pas lequel choisir.

- reboot

- installer BatteryCalibrator.apk

Ne vous trompez surtout pas dans les données que vous aller rentrer dans Battery Calibrator, cela pourrait bricker définitivement votre batterie. Lisez toute la manip avant de commencer.

- préparez votre chargeur sur le secteur

- laissez votre téléphone descendre à environ 4% de batterie restante (ex : si il s'éteint à 15%, commencer la manip à 19%)

- passez en mode avion

- ouvrez Battery Calibrator

- menu->settings : cochez toutes les options sauf "airplane mode on/off"

- aller dans "LearnPrep"

- entrez la valeur "100" dans "age" et sauvegardez

- entrez la valeur "1452" dans "Full40" et sauvegardez

- si vous utilisez une autre batterie que celle fournie, rentrez 1650 ou plus dans "Full40"

- rentrez "66" dans "register" et rentrez la valeur "a4" dans "value"; sauvegardez

- rentrez "65" dans "register" et rentrez la valeur "06" dans "value"; sauvegardez

- allez dans "LearnMode"

- ne touchez pas aux options

- activez le Learn Mode en appuyant sur "ON"

- attendez que la tension en microVolts (le texte en rouge) arrive à 3201000 environ, une pop-up apparaîtra ou le bouton "LEARNF" s'allumera

- quand la pop-up apparait ou que le bouton "LEARNF" s'allume, branchez TOUT DE SUITE le téléphone au chargeur, une pop-up devrait apparaître disant "Learn mode is active"

- arrêtez et fermez toutes les autres applications, débrouillez vous pour qu'elles ne redémarre pas, laissez bien sûr Battery Calibrator ouvert. N'oubliez pas que si vous avez bien fais toutes les étapes comme il faut, vous êtes en mode avion à ce moment

- si vous le pouvez, avec setCPU ou dans vos paramètres de performances, désactivez l'overclocking et réglez les valeurs maximales et minimales du processeur à la meme valeur : "998Mhz". Cela correspond au mode "Performance" dans CM9 vous devez avoir quelque chose de semblable sur Sense.

- laissez charger votre téléphone 4 heures et demi, l'écran éteint et n'y touchez jamais

- vérifiez que le bouton "CHGTF" s'est bien allumé et que "Battery Status Register" affiche "0x81"

- si oui : vous y êtes presque

- si non : vous avez du vous tromper quelque part, recommencez

- débranchez votre phone

- redémarrez

- démarrez Battery Calibrator, postez votre Batt Age sur le forum au cas ou.

- normalement c'est fini, votre phone devrait s'éteindre à 0 ou 1%. La première fois (juste parès la calibration), laissez le phone se décharger à fond.

Si après quelques décharges, la batterie se décalibre mais que le tuto a fonctionné, j'ai la solution [pour bientôt]

​Solution provisoire : ne chargez pas votre téléphone éteint

Méthode pour Sense 3.5 :

La meme chose que précedemment mais passez directement à la calibration par Battery Calibrator. (encore une fois ne prenez pas celui du market)

Tuto si vous avez une rom NON sense (je l'ai moi même essayé sur le kernel de CM9, ça a fonctionné) :

2 MÉTHODES !!!!!

Méthode "clean et sécurisée" :

[A venir elle est relativement longue]

- Télécharger Battery Calibrator ici : https://play.google....brator.ui&hl=fr

Ne vous trompez surtout pas dans les données que vous aller rentrer dans Battery Calibrator, cela pourrait bricker définitivement votre batterie. Lisez toute la manip avant de commencer.

- préparez votre chargeur sur le secteur

- laissez votre téléphone descendre à environ 4% de batterie restante (ex : si il s'éteint à 15%, commencer la manip à 19%)

- passez en mode avion

- ouvrez Battery Calibrator

- menu->settings : cochez toutes les options sauf "airplane mode on/off"

- aller dans "LearnPrep"

- entrez la valeur "100" dans "age" et sauvegardez

- entrez la valeur "1452" dans "Full40" et sauvegardez

- si vous utilisez une autre batterie que celle fournie, rentrez 1650 ou plus dans "Full40"

- rentrez "66" dans "register" et rentrez la valeur "a4" dans "value"; sauvegardez

- rentrez "65" dans "register" et rentrez la valeur "06" dans "value"; sauvegardez

- allez dans "LearnMode"

- ne touchez pas aux options

- activez le Learn Mode en appuyant sur "ON"

- attendez que la tension en microVolts (le texte en rouge) arrive à 3201000 environ, une pop-up apparaîtra ou le bouton "LEARNF" s'allumera

- quand la pop-up apparait ou que le bouton "LEARNF" s'allume, branchez TOUT DE SUITE le téléphone au chargeur, une pop-up devrait apparaître disant "Learn mode is active"

- arrêtez et fermez toutes les autres applications, débrouillez vous pour qu'elles ne redémarre pas, laissez bien sûr Battery Calibrator ouvert. N'oubliez pas que si vous avez bien fais toutes les étapes comme il faut, vous êtes en mode avion à ce moment

- si vous le pouvez, avec setCPU ou dans vos paramètres de performances, désactivez l'overclocking et réglez les valeurs maximales et minimales du processeur à la meme valeur : "998Mhz". Cela correspond au mode "Performance" dans CM9 vous devez avoir quelque chose de semblable sur Sense.

- laissez charger votre téléphone 4 heures et demi, l'écran éteint et n'y touchez jamais

- vérifiez que le bouton "CHGTF" s'est bien allumé et que "Battery Status Register" affiche "0x81"

- si oui : vous y êtes presque

- si non : vous avez du vous tromper quelque part, recommencez

- débranchez votre phone

- redémarrez

- démarrez Battery Calibrator, postez votre Batt Age sur le forum au cas ou.

- normalement c'est fini, votre phone devrait s'éteindre à 0 ou 1%. La première fois (juste parès la calibration), laissez le phone se décharger à fond.

Si après quelques décharges, la batterie se décalibre mais que le tuto a fonctionné, j'ai la solution [pour bientôt]

​Solution provisoire : ne chargez pas votre téléphone éteint

Méthode "BOURRIN" : (seulement pour une rom ICS!!)

-backup OBLIGATOIRE (la manip ne peut PAS être faite sans backup!!)

- flasher ahmet-exp5_cfs_svs.zip via le recovery

- reboot, vous allez avoir vôtre splashscreen puis un écran noir (normal vous avez flashé un kernel sense Gingerbread)

- enlever la batterie de votre Desire

- mettre votre téléphone à charger (sans batterie) environ 1 minute

- remettre la batterie

- démarrer en Hboot en appuyant sur vol. down, power ET la molette du milieu (vous avez bien lu)

- recovery

- restaurer la backup faite précédemment

- reboot

Et voilà c'est fini, le problème est normalement corrigé. (vous pouvez essayer sans faire les étapes en rose pour me dire si elles sont vraiment utiles)

Je ne peux que vous conseiller de faire ensuite un callibrage "normal" de votre batterie avec le tuto de JaymZ37 si vous avez récemment installé votre ROM.

Toute aide est la bienvenue :) N'hésitez pas à tester pour que toute la communauté puisse avoir des retours et corriger ce fichu problème!

NB : techniquement, cette manip ne peut pas bricker votre phone : vous flashez juste un kernel, cela ne peut donc pas atteindre votre recovery ou votre hboot.

Un petit screenshot bonus de mon Desire avec 1% de batterie restante :

post-58067-0-40250600-1339679740_thumb.p

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

FAQ :

- Mais sérieux pourquoi mon Desire s'éteint à 15% ?!!

Le problème est du au vieillisement de votre batterie. même si les batteries Li-Ion n'ont pas le problème de "l'effet mémoire" que des batteries au nickel,ce sont tout de même des batteries et elle perdent de la capacité en vieillissant. (là je vous apprend pas grand chose)

Idéalement, la batterie (qu'elle soit vieille ou neuve) donne 3200 mV quand elle est "vide" et 4180mV (parfois 4200) quand elle est pleine. Et cela ne change jamais, pas comme avec nos batteries au nickel (les batteries NiMH). Le fait est que les cellules de la batterie vieillissante, bien que donnant toujours le même voltage, peuvent ne pas durer le même temps à cause d'une diminution de leur intensité par heure (mAh pour une cellule de batterie). C'est cela qu'on appelle le vieillissement de la batterie du point de vue scientifique. (il ne faut pas confondre avec l'effet mémoire même si au final, le résultat est le même : la batterie tient moins longtemps).

Sur le HTC Desire, il y a une puce qui contrôle la batterie (le Maxim DS2784 Chip si ça vous intéresse) : elle est responsable de la mesure de la capacité de la batterie, de l'estimation du pourcentage et de la compensation de l'effet de vieillissement.

Ouais. Sauf que HTC a beau mettre une puce qui devrait compenser l'effet de vieillissement, si le kernel sense qui va avec ne le fait pas bien ça risque pas de marcher...

Une petite partie du code dans dans le driver de la batterie ds2784 est écrite avec une admission fausse : en effet cette partie du code admet que la batterie du Desire a une capacité "comme neuve", ce qui n'est plus le cas pour nos Desire vieillisant! A cause de cela, le phone croit qu'il a encore de la capacité alors qu'il est totalement vide (cela arrive entre 11 et 20% en fonction du vieillissement de votre batterie).

Vos extinctions inattendues sont maintenant expliquées!

- Ok sauf que moi ta manip me fait peur j'aimerai bien savoir comment ça marche !

Le "mauvais" code dans le kernel assigne à la batterie 1393 mAh, a chaque redémarrage et sans prendre en compte le vieillissement de la batterie! Le .zip est donc juste un kernel qui ne contient pas le "mauvais" code. Il va plus précisément modifier le fichier drivers/power/ds2784_battery.c

Il est donc normalement essentiel de flasher le zip sur une ROM sense (les AOSP comme cyanogen ont des kernels créés différemment, le "ds2784_battery.c n'y existe pas!

Le bug est corrigé, mais votre batterie n'est pas encore callibrée : il faut alors utiliser battery calibrator.

- Ok donc pourquoi ça marche sur une AOSP?

Les kernels récents des roms AOSP sont tous compatibles avec cette calibration : si le téléphone était bien calibré sous SENSE, une rom AOSP flashée après sera bien calibrée!

- Ok mais je comprends toujours pas comment la "méthode bourrin" fonctionne!!

[pour bientôt]

- Tu m'as dis d'aller voir la FAQ si je ne savais pas quel kernel choisir...

Premièrement, il faut connaitre la différence entre BFS et CFS

BFS - Brain f**k Scheduler

L’ordonnanceur (le composant du kernel qui choisit les processus qui vont être exécutés par les processeurs du phone) est très dynamique. C'est un ordonnanceur assez vieux (et donc stable). Il est conçu pour minimiser les ralentissements sur les petites configs. A priori c'est le mieux pour Desire.

CFS - Completely Fair Scheduler

Plus récent que le BFS. Il était à la base conçu pour tirer le maximum des grosses configs. Il était à la base un peu plus laggé que le BFS mais maintenant la différence est minime voire imperceptible, à vous de tester si vous avez le temps.

Et maintenant que vous avez choisi le BFS parce que vous êtes des petits joueurs, la différence entre SVS et HAVS :

SVS - Static Voltage Scaling. Compris dans le kernel officiel de HTC.

Chaque fréquence potentielle du CPU utilise une valeur prédéfinie "d'énergie" pour atteindre cette fréquence. Plus la fréquence potentielle (en MHz) est élevée, plus la valeur prédéfinie d'énergie est élevée (en mV).

Le SVS utilise un tableau simple où fréquence x <=> tension y

Si vous avez la flemme de lire ou avez rien compris, voici à quoi ressemble (en version largement simplifié) le tableau de VDD quand le kernel est SVS :

128MHz=950mV
245MHz=975mV
384MHz=1000mV
-------------
-------------
-------------
998MHz=1300mV

J'ai passé des fréquences et les fréquences que je donne ne sont pas forcément celles rentrées dans le kernel mais on s'en fiche vous avez compris le principe.

HAVS - Hybrid Adaptive Voltage Scaling

Chaque fréquence potentielle du CPU utilise une plage de valeur prédéfinie "d'énergie" pour atteindre cette fréquence.

Le HAVS utilise donc un tableau moins simple que le SVS où fréquence x <=> tension comprise dans un intervalle [y-75;y].

Pour choisir la valeur dans l'intervalle, le HAVS prend en compte la température du phone.

De la meme manière voici un tableau de VDD simplifié quand le kernel est HAVS :

128MHz=[875-950]mV
245MHz=[900-975]mV
384MHz=[950-1000]mV
----------------
----------------
----------------
998MHz=[1225-1300MHz]mV

Vous l'aurez compris (ou pas!), le HAVS permet parfois de faire des économies d'énergie puisque la tension pour arriver à une fréquence commence plus bas que le SVS. (mais attention cela dépend de la température, et en réalité le HAVS va généralement choisir une tension presque maximale, l'économie d'énergie sera donc presque imperceptible). Vous gagnerez entre 5 et 45 minutes de batterie je pense. (si vous avez le temps de faire des mesures je veux bien!)

Si toutes les explications ne vous intéressent pas et que vous voulez un kernel qui ai beaucoup de chance de fonctionner sur votre Desire, choisissez le BFS_SVS (mais ce n'est pas forcément le meilleur).

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

Je viens de tester avec la rom RunBattLife v9 (sense)

le redémarrage était légèrement plus long sur le splash screen

mais ça a bien redemarré

Je suis à 34 % on verra à 13/15 %...

N.B. : ahmet-exp5_cfs_svs.zip chez moi -> md5 : 925A16ECEB61C5C614ABEE4FF3A6FAFA

EDIT :

20h08 : je viens d'avoir un freeze, je retire la batterie et je redémarre

20h16 : freeze sur le déblocage de la carte sim

20h24 : freeze sur sortie de veille (touches allumées, écran noir) pffff

restauration de la backup : pas de freeze mais ça s'eteint à 15 %

Modifié par GDEHON
Lien vers le commentaire
Partager sur d’autres sites

suspense. je stress parce que j'ai oublié de préciser un truc (j'y avais même pas réfléchi vu que la question ne se pose pas pour une rom AOSP)

Il y a plusieurs versions qui cadencent le processeur de différentes manières. Il y a beaucoup plus de chances pour que tes force closes viennent d'un problème de cadencement:

ahmet-exp4_bfs_svs.zip

ahmet-exp4_bfs_havs.zip

ahmet-exp5_cfs_svs.zip

infos : http://androidforums...feb-2012-a.html

EDIT :

Après réflexion, il y a peu de chance que ca marche pour toi.

je m'explique :

- ton tel était mal calibré

- tu flash le kernel, tu reboot : à ce moment ton tel est calibré

- le kernel fait tout planter ==> tu restore

- tu as donc remis l'ancien kernel et tu reboot

2 solutions :

-ton kernel contient le mauvais code : puisque tu as redémarré, le "mauvais" code va calibrer la batterie comme si elle était neuve==>FAIL

-ton kernel ne contient pas le mauvais code : tu avais hérité le problème de calibration d'un ancien kernel qui contenait le mauvais code==> le kernel étant un bon kernel, ton desire va être calibré==>WIN

Tout ça pour dire qu'il ne faut pas désespérer, tu peux encore tester les deux autres version que j'ai mises ci-dessus (le plus simple étant de savoir laquelle est compatible avec ton kernel en regardant sa configuration : en svs ou havs. Ça je ne peux pas le faire pour toi tu connais ta rom mieux que moi ;)

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

EDIT : tu es tombé sur la première solution ou j'ai loupé quelque chose... (j'ai vérifié le md5sum c'était bien le même)

RE-EDIT : je te laisse tester avec les deux autres kernels quand tu auras le temps (lis mon edit du message précédent!)

Désolé pour le dérangement.

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

bonjour,

je suis en milwild V-4.0 . J'ai voulu essayer la méthode "bourrin" mais la kernel est compatible car il a rebooté normalement et le kernel est bien installé. Je laisse comme ça et je vais bien voir à quel pourcentage il va s'éteindre

Lien vers le commentaire
Partager sur d’autres sites

uname -r dans un terminal

Tu compares avec ce que tu as dans "à propos de mon tel ---- version du noyau " c'est la même chose normalement!

Après tu go Google et tu cherches ! Et postes ce que tu trouves stp on pourrait faire une liste dans la faq.

Tapatalk c'est bien

Lien vers le commentaire
Partager sur d’autres sites

En réalité tu peux choisir celui que tu veux (c'est juste une histoire de fréquence du processeur). Par contre fait attention il ne sont pas optimisés pour sense 3.5 !!

Ah aussi la calibration avec l'apli est obligatoire avec sense ! Elle est assez compliquée je ferais un tuto en attendant voici le lien in english http://forum.xda-developers.com/showpost.php?p=24599586&postcount=284

Tapatalk c'est bien

Lien vers le commentaire
Partager sur d’autres sites

Ah, précise le alors dans le Tuto ! Parce que je suis sous Sense 3.5 :/.

Si tu pouvais préciser quelle kernel choisir aussi pour les autres alors !:

Lien vers le commentaire
Partager sur d’autres sites

Pour sense 3.5 j'ai découvert ça lundi matin ( je me demandais pourquoi GDEHON avait des problèmes ) . Je suis en période d'examens mais je finis demain . Je ferais une grosse maj avec l'explication des bfs et autres + tuto de calibration sous sense : le kernel corrige le bug donc je pensais que ça suffirait mais même pas : le kernel permet de retenir la calibration, mais rien dans le kernel sense ne FAIT la calibration (sense c'est définitivement nul ), il faut donc faire une calibration manuelle!

Ne faites rien et attendez le week end svp !

Tapatalk c'est bien

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

bonjour,

je suis en milwild V-4.0 . J'ai voulu essayer la méthode "bourrin" mais la kernel est compatible car il a rebooté normalement et le kernel est bien installé. Je laisse comme ça et je vais bien voir à quel pourcentage il va s'éteindre

Mon desire sous MIUI a aussi reboot normalement donc je restaure mon backup

Lien vers le commentaire
Partager sur d’autres sites

J'ai réessayé la manip "bourrin" (j'ai du décalibrer ma batterie c'était galère!), j'ai eu blackcscreen, j'ai reboot==> ça a marché. Je suis sur ics c'est pour ca. Donc en gros la méthode bourrin ne fonctionne que si l'on a une rom ics, en gb le kernel est trop compatible et le tel arrive à démarrer.

EDIT : EPIC MAJ qui m'a pris pas mal de temps : le tuto pour sense (3.5 ou moins) est fini, vous pouvez reéssayer

le tuto version clean pour rom non sense est fait aussi

Modifié par kokirigames
Lien vers le commentaire
Partager sur d’autres sites

idem. gros hors-sujet en attendant que je finisse le tuto : t'as pris quoi ?

[Hs]Les mutations de la population active en France depuis 1850 pour l'histoire, et le commentaire composé en Français.

Et toi ?[/Hs]

@kokirigames : Parfait pour le tuto ! Je le ferai après mon oral. Question : Ta rom sous ICS lague, bug, elle est bien, rapide, ...?!

Lien vers le commentaire
Partager sur d’autres sites

[Hs]comme toi![Hs]

La rom BCM ne bug jamais! Par contre elle lag si tu mets pas la bonne stratégie dans les performances du CPU (j'avais pas compris au début j'ai passé trois jours avec une rom qui m'a rappellé la fluidité de la 2.1 d'Orange!). On peut prendre des photos mais pas encore de films (du moins tu peux mais c'est encore tout saccadé). Sinon c'est quand même la meilleure que j'ai eu du point de vue ergonomie et design. J'ai choisi le launcher apex dans aroma qui est vraiment bien.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...