2008/11/10

S21HT -TouchDiamond- のバッテリ充電が満充電に達しない件を調べてみる

2008/11/10 Monday - 16:19:38 by chameleon

S21HTのバッテリ充電を行うと、時としていつまでたっても100%に達せず充電が完了しないという状況が発生することに気づきました。 何となく不可解ではありましたが、WifiやBluetoothをONにしたままだったから充電に時間がかかるのかなぁとか思っていました。確かに、端末の電源を切るとすぐに充電が完了するので、待ち受けたりしていると消費電力が結構あるんだと、まあ、無理矢理納得しようとしたりしてました。 しかし、購入当初は満充電になるまでに異常に時間がかかる・・・というかいつまでたっても充電が完了しないようなことはなく、夜寝る前に充電しておけば、翌朝には完全に充電が完了していましたので、やはり不可解ではありました。 そんなわけで、ちょっと前に、バッテリの充電状況の遷移をログにしてグラフ化してみたのですが、途中でまったく充電が進捗していないことが明らかになりました。 また、同様の状況にあるという人からコメントをいただいたり、価格.COMのクチコミにも同様の状況で初期不良対応でTouchDiamondを交換してもらったが、状況が改善しなかったという書き込みを教えてもらったりして、どうやら何らかの原因で充電が完了しない状況があると判断しました。 では、どんな状況でそうなるのか・・・まあ、ハードリセットして初期状態に戻して、環境を再構築しながら確かめるのが一番確実なんですが・・・バッテリを満充電するにはまず空にしないといけないんで・・・そう何回も検証作業をやる根気がないというのが正直なところで・・・。 今回は、逆の手順+ある程度、状況から「あたり」を付けて・・・ということで、少しずつ環境を初期の状態に近づけていくという手法にすることにしました。これでうまくいかなければ、ハードリセットして順次再構築して、どこで問題が起こるか確認することにします。 状況を整理 購入当初はそのようなことはなかった気がする 途中から充電が進まなくなる 電源を切る、あるいはリセットすると再起動後すぐに(充分充電時間があればいきなり)100%になっている 電源を切った状態で充電すれば、短時間で満充電になる これらのことから考えるに、OSが起動していない状態で、純粋にハードウェアだけで充電しているときには問題がないということは、S21HTの充電機構には問題はなさそう・・・。あとは、購入当初はそのようなことはなかったはずなので、途中でインストールしたソフトウェアによる障害を疑ってみることに。 インストールしたソフトウェアは Diamond TF3D Config S2U2 spb Backup 自作のソフトウェアの動作確認に.NET Compact Frameworks 3.5 TRE GSFinder+ の6本です。 まず、手始めはS2U2を疑うことに・・・(何となくS2U2の挙動に不審を持っていましたので・・・)。S2U2のバージョンは、1.32をインストールしています。現在は、1.33がリリースされているようです。 例によって、YouTubuを視聴して電池を減らします。オバマ大統領が選出されましたので、その関連のビデオが18分近いやたら長いのがあったりして、何度もビデオを再生する手間をかなり省略できました。 起動しない状況になるまで、バッテリを使い、その後、ACアダプタに接続して充電しつつ、起動します。S2U2をアンインストールして、念のために再起動しました。 充電中に定期的にバッテリの充電状態を知るために、ログを採る自作プログラムをインストールしておきました。今回は、前回作ったやつとは違い、Microsoft.WindowsMobile.Statusでバッテリの充電量が規定値になる度にOSが通知するイベントを捉えて、バッテリの充電量を記録することにしました。これなら、ログを採っている動作をしている間以外は、端末を完全にスリープ状態にしておけますから、充電状況に影響を与えることが少ないはずです。 もっとも、仕事をしないといけないので、そうちょくちょくS21HTをいじってるわけにもいかないので、結果はS21HTに自動的にメールで知らせてもらうことにしました。(これを実装する方が手間がかかりました・・・)ざっと、書いたプログラムで動作確認を兼ねて実験です。 実験結果 AM8:00頃 充電開始 AM8:32  41%充電 AM8:56  61%充電 AM9:46  81%充電 PM1:00頃 充電完了 という結果になりました。 本来なら21%充電状態も取得できるのですが、充電を開始してからいろいろ準備をしている間に、あっという間に充電状態が30%を超えてしまったらしく、充電量のログ記録用プログラムを起動したときには、最初の通知イベントが降る既定値の21%を超えていましたので、いつ21%に達したかの記録はとれていません。 また、充電完了のイベントは降ってこないので、100%になったかどうかは筐体のリング部分のLEDの光かたによる目視です(よって、PM1:00頃というのもかなりアバウトです・・・見たときにはもう充電完了していました)。8割方充電が終わってからの、進捗状況が緩やかになっていますが、きちんと満充電になって完了しました。 自分の環境固有の問題かもしれませんので断言できませんが、この充電問題についてはS2U2が影響しているおそれがあります。まだ、もう少し検証してみないと早計でもありますが・・・。 ただ、S2U2に「あたり」を付けたのには理由があります。S2U2でロック状態になったときに、ロック画面を解除する画面下のスライドボタンの部分が、指を滑らせてもスライドしなかったり、その部分にグラデーションで表示されている文字が固まったまま動かない状態があったりして、どうも正常動作していない感じがあったからです。一応、スライドボタンが動かなくても指をその部分でスライドさせれば、ロックを解除できていたので気にしなかったんですが・・・怪しい筆頭ではありました・・・。もしかしたら、この状態になると、S2U2のせいで、バッテリ関係のイベントがキューから取り出せないか、イベントそのものがうまく通知されなくなっているのかもしれません。 標準装備のバッテリアイコンも内部的には同じようなAPIでバッテリ情報を取得していると思うので、バッテリ情報関係のイベントが正常処理されないのが原因という気がします。 もうしばらく検証してみて、この問題に決着をつけるつもり・・・。