SL-A300ちらつき抑制

結構ちらつきが激しい SL-A300 の LCD ですが、LCD のドットクロック(ピクセルクロック)を上げてちらつきを抑制することができました。
リスクを覚悟の上で使ってみたい方はこちら。スペシャルカーネルv19aのパッチも当ててあります。

とりあえずリフレッシュレートさえ上げればちらつきはなくなるだろうという安易な考えでドットクロックを上げることにしました。

ただ、いくら検索しても SL-A300 で使われてる PXA210 の仕様書が見つからなかったので、PXA255 の仕様書と、カーネルソースを参考にいじりました。(^^;
とりあえず、LCDコントローラ近辺は PXA210 も PXA255 もほとんど同じようです。

PXA255 の仕様書によると、ドットクロックはシステムクロックを分周して生成しているようです。で、スペカのページによると SL-A300 のシステムクロックは100MHz らしいです。

LCDコントローラのレジスタ設定値から、デフォルトで 22 分周しているようなのでドットクロックは4.54MHz になります。また、レジスタ設定値から、1画面の描画に 96888clk 必要なようなので、リフレッシュレートは

4.54MHz / 96888 = 46.9Hz

となります。50Hz 以下なんですね。これではちらつくのも当然です。

Wikipediaのフリッカーのページを見ると、一般的にリフレッシュレートが 70Hz を超えるとちらつきを感じなくなるそうです。

分周比を変更してドットクロックを上げたカーネルをビルドし、書き込んでみたところ、ちらつきが少なくなることが確認できました!とりあえずこの方法でちらつきを制御できそうです。

個人的に許せる程度のちらつきになるよう、分周比をいろいろ変更してみたところ、100MHz / 14 = 7.14MHz あたりでほとんどちらつきが感じられずいい感じでした。リフレッシュレートは 73.2Hz でした。確かに70Hz以上になってました。

 

と、とりあえずドットクロックを上げることでちらつきは抑えることはできましたが、デメリットやリスクもあります。SHARP さんも訳あってレートを下げているはずですし。

軽く考えてみて思いついたのは以下の3つ。

  • 液晶パネルにダメージを与えるかも
  • アプリのパフォーマンスが低下するかも
  • バッテリの持ちが悪くなるかも

まず、液晶パネルの仕様書を見たわけではないので、ドットクロックの保証動作範囲に収まっているかわかりません。動作範囲外の場合、とりあえず動いているように見えますが、パネルの寿命を縮めるなど、ダメージを与える可能性があります。

次に、アプリのパフォーマンスが低下する可能性があります。リフレッシュレートを上げるということは、その分、画面を表示するためのメモリアクセスが増えるということになります。そうなると、必然的にアプリが使用可能なメモリ帯域が減ってしまうため、アプリの動作が若干低下するかもしれません。

また、何も処理をしていないアイドル状態でも画面描画のためのメモリアクセスは増えたままですので、当然消費電力も増えます。これによってバッテリの持ちが悪くなる可能性があります。

 

パフォーマンス低下やバッテリの持ちの悪化はどの程度か試してみないとわかりませんが、個人的にはちらつきの方が許せないのでこのまま使ってみようと思います。

いまさらSL-A300購入

ほんとに今さらですが、SL-A300を買っちゃいました。

SL-A300買っちゃいました
SL-A300購入!

無性に欲しくなってしまってオークションで買いました。これでSLザウルス4台目・・・。
無駄に台数が増えているような気が・・・。

ものすごく今さらですが、SL-A300レビューです(^^;
誰もこんなの期待してないでしょうけど、私は初めて見たので許してください。

早速軽く使ってみましたが、結構サクサク動くじゃないですか!
初期バージョンはモッサリで評判悪かったようですが、ROM 1.50J はすごく軽いですね。
SL-C シリーズよりも画面描画が軽く感じられます。
画面が QVGA と小さいのと、画面の回転処理が不要なためでしょう。

あと、SL-C シリーズの大きさになれているせいか、ものすごく小さいですね。
4桁機の LCD 部分を少し厚くした程度でしょうか。

とにかく薄い!
とにかく薄い!! (下はSL-C1000)

すごい小さいですね。8年前に発売の機器ですが、機能は別として、今でも通用する大きさ&軽さだと思います。大きさは iPhone をちょっと大きくしたくらい??

携帯しやすい大きさなので、なにかいい使い方ないですかねぇ。
いくらでもカスタマイズできますし、すごくいいデバイスだと思うんですが。
qgmap で地図が見れたらいいなと思ってインストールしてみましたが、当然動きませんでした (^^;
簡単に対応できそうなら動くようしたいなと思います。

ただ、知らなかったんですが、画面がかなりチラチラしてますね。初めは故障かと思ったくらいです。ググってみてこういうものなんだと知りました。
思い出してみれば、 MI-E1 もこういう感じだったかも・・・。
インターレース表示しているような感じというか、リフレッシュレートが低い感じで、ちょっと揺らすと文字の判別は不可能です。電車の中での使用は厳しいですね。

新しいおもちゃを手に入れたので、いろいろいじってみたいと思います。

qgmap-0.2.1 リリース

久しぶりに qgmap をリリースしました。→ダウンロードページ

変更点は以下の通りです。今回はあまり機能追加等はなく、主にバグフィックスとなります。

バグフィックス

  • フリーハンド範囲指定機能で重複した領域が出力される (sugarwareさんのご報告)
  • ガンマ補正時に画面が動的に反映されない (sugarwareさんのご報告)
  • POI機能でアイコンの指定がない状態で登録すると落ちる (botesanさんのご報告)
  • POIの情報表示で全てが表示されない場合がある (botesanさんのご報告)
  • POI削除時の確認ダイアログに名称ではなくズームレベルが表示される (botesanさんのご報告)
  • 2つめ以降に登録されたPOIの表示をOFFにできない (cycloneさんのご報告)

新規機能

  • 2GB以上のisoイメージがマウント可能に (bxk07344さんのご報告)
  • POI追加時にプログレスバーを表示
  • POIにプリセットアイコンを追加

今回の修正は多くの方のバグ報告やご意見を反映させていただきました。ありがとうございました。

修正が多いので新規機能だけご紹介します。

まず、2GB以上のisoイメージを使用することができるようになりました。この問題は zaurus に元々入っている mount コマンドが 2GB 以上のイメージを扱えなかったのが原因でした。
そのため、独自にビルドした mount コマンドを同梱し、qgmap が mount する時は、同梱した mount コマンドを使うようにしてあります。
これにより、大きな iso イメージも意識することなく普通に使えるようになりました。

次に、POI を追加する時にプログレス表示をするようにしました。

POI追加のプログレス表示
POI追加時のプログレス表示

今までは、大きな CSV ファイルを登録しようとすると、登録が終わるまで操作を受け付けず、CSVファイルによっては1分以上も固まったような状態になっていました。
登録処理が早くなったわけではないですが、状況がわかるので不安にならずに済むようになったと思います。

最後の新規機能は、POIのアイコンにプリセットアイコンを追加しました。

プリセットアイコンを追加
プリセットアイコンを追加

今のところ、赤丸の1つだけですが、他にも著作権フリーもしくは作者に許可がいただけたアイコンを追加していければいいなと思っています。

1つだけでもアイコンを登録しておけば、落ちる問題が回避できるからという安易な考えがあったのは内緒ですあっかんべー

 

とりあえず大体のバグは修正できたので、これから新規機能を追加していく予定です。
まだ決めてないですが、POI検索か住所検索あたりを実装しようかなと思ってます。

SL-C750/760/860用 SDHC ドライバ更新

kana さんからご指摘があった、取り外し操作後の電源OFF中のカード入れ替えに対応しました。 → ダウンロードページ

取説を全く読んでなかったので知らなかったのですが、SDの差し替えは以下の手順が正しいそうです。

  1. タスクトレイのSDアイコンをクリックし、「SD-カード取り外し」を実行
  2. 電源を切る
  3. カードを差し替える
  4. 電源を入れる

いやぁ、お恥ずかしながら知りませんでした (^^;

そのため、この手順では確認してませんでした。
今回の問題が起こるのは SL-C750/760/860 用の v2.0 のみです。
他の機種は抜き差し検出周辺をいじっていないので、発生しないと思います。
また、この問題の解決にはブースカさんにもご協力をいただきました。ありがとうございました。

 

今回のリリースを機に、SDHCドライバのダウンロードページを見直しました。

SDHC ドライバの v2.x 系ですが、おおよそ安定してきたので実験バージョンから、メインバージョンに格上げしました。

SL-C700用の SDHC ドライバも特に問題なさそうですので、ダウンロードページでの配布に切り替えました。

だいぶ落ち着いてきたので、そろそろ qgmap の開発に戻ろうかな?

一応認識したけど・・・

手元にある Team 製の TG032G0SD26A (32GB SDHC Class6) が認識しない件ですが、調べてみた結果、CMD2 (SEND_ALL_CID) のレスポンスで CRC エラーが出ていたのが原因でした。

ただ、CRC エラーが出ていると言っても、エラーのあったレスポンスと、SL-C760 でエラー無く取得できた CMD2 のレスポンスは全く同じでした。

ということで、ひとまず CMD2 の CRC エラーを無視する修正を加えたところ、カードを認識し、Read/Write も問題なく動作するようになりました。

とりあえず CMD2 以外はちゃんと動いているようです。

ただ、エラーを無視しているだけで、エラーが出ていることには変わりないので、ちょっと不安ということもあり、ひとまず修正版のドライバ公開は差し控えます。

私もしばらく使ってみて問題が無いことが確認でき、他にもこういった症状の方が出てきたら公開しようと思います。