2009/02/22

PandoraとUSB #07

BeagleBoardのWikiを見ていたら気になる記述を発見。何やらUSB OTGをホストモードで使用する為にはUSB Mini Aで繋がなければいけないみたい。
To operate the Beagle as an OTG Host, you need a special cable -- plus you will need a power brick to power the Beagle, because it is now the host and must supply power to the peripherals. The key is that the cable needs to have a USB Mini-A-male (NOT a Mini-B) to connect to the Beagle. If you have cables with USB male mini connectors, the overwhelming chance is that they are Mini-B. While both Mini-A and Mini-B fit in the Mini-AB connector on the BeagleBoard, there is an internal wiring difference in the Mini-A and Mini-B connectors that allows the BeagleBoard to sense the type; Mini-A have pin 4 connected to GND, whereas Mini-B leave the pin unconnected.
あんまり詳しくないのですが、PandoraやBBのUSB OTGの端子ってMini ABという奴でMini A、Bどちらでも繋げる事が出来るタイプの端子らしいのですが、Hostとして機能するのはMini Aだけらしい(Mini Bとは内部の配線が違うらしい)。これはBBだけでPandoraと関係しているのかはわかりませんが、多分OMAP3全体の仕様だと思うので、そのまま当てはまりそうです。要チェックですな。ちなみに先ほど紹介した「PL-USB-Y01」はMini Aなので大丈夫だと思います。

#追記
多分この説明文が当てはまりますね。何だかややこしい規格だなぁ。
 現時点では、USBを使ったPCとの接続以外についてはシャープから何も公開されていないが、SL-C3000のUSBコネクタは、「ミニAB」と呼ばれるものになっている。ミニABは、OTGで規定されたコネクタで、ミニA、ミニBのオス(Plug)コネクタを装着できるもの。USB OTGに対応したDual-role Deviceが持つ唯一のコネクタであると規定されている。OTGでは、ミニABコネクタに接続されたケーブルは、4番ピンのID信号で区別する。この端子とグランド(GND、5番ピン)の間の抵抗値が10Ω以下の場合にはミニAと判断されホスト動作を行ない、100kΩ以上の場合には、ミニBであると判断しクライアント動作を行なう。したがって、OTGによるホスト機能を使うには、ミニAプラグを持つケーブルが必要となる。

#外部リンク
BeagleBoardBeginners - eLinux.org
http://elinux.org/BeagleBoardBeginners#Important_USB_Cable_Information

塩田紳二のPDAレポート
http://pc.watch.impress.co.jp/docs/2004/1115/pda38.htm

PandoraとUSB #06

暇なのでまたUSBについて考えてみます。具体的にUSBで何をしたいかという話なのですが第一目標としてはUSBモデムを使いたいという事です。他にもGPSやワンセグ等も考えていますが、そちらは代替手段や実用度からみてUSBモデムより優先度は下がりますからね。今までの調査で日本でポピュラーであろうイー・モバイルの「D02HW」は、すんなりとPandoraで使用できないと言うことが判明しました。具体的には以下の手順が必要らしい。
PandoraのEHCIに、セルフパワーUSBハブを接続し、更にそこからD02HWを接続する。ソフトウェア的には、自動認識して、いわゆるプラグアンドプレイが可能らしい。
一見かなり楽な印象を受けますがPandoraがモバイル用途な事を考えると、この縛りは結構面倒ですね。いちいちセルフパワーUSBハブを持ち歩かねばならない訳ですから。セルフパワーと言う事はコンセントがある場所か、かなりの大容量な外部電源を用意しなければいけませんし。ちなみにバッテリー内蔵のUSBハブというのも存在しているみたいです。日本でも数年前までは発売していた模様。ただバッテリー容量が少ないらしく500mAで使用すると1時間くらいしか持たなかったみたいですね。これじゃ緊急用くらいしか使えませんね。残念。

ここでもう一方のUSBであるUSB OTGについて考えてみます。ドキュメント等によると一応OTGならば現在流通している全てのUSBスピード規格に対応しているらしいのです。ただしOTGでは100mAしか通電出来ず、USBモデム等に必要な500mAは自力では供給出来ません。そこで登場するのが、二股のUSBケーブル。片方を通常の使用方法として使い、もう片方を電力供給のみに使うという、苦肉の策です。

これについて調べてみたのですが、意外とポピュラーな解決方法な模様。現にウィルコムのW-ZERO3系や、イー・モバイルのスマートフォン等では対応製品として売られているみたいですから。それと、USB規格を逸脱しているデバイスでの補助用としても使われているみたいですね。日頃USBデバイスを使っていないので、全然知りませんでした。

今のところPandoraでも使えそうかなと思っている製品として2つ程紹介しておきます。1つはPLANEXの「PL-USB-Y01」。これはW-ZERO3用のオプションとしてウィルコムショップでも紹介されているくらいですから、OTG用途として使用可能かなと思っています。具体的な使い方としては、PandoraのOTGポートにデータ通信用ケーブルを挿して、補助電源用ケーブルを外部電源、例えばモバイルクルーザーや、エネループの外部バッテリー「KBC-L2S」、定番の「PowerBank slim 2.0」辺りに挿して使用するパターンですね。多分これらは安全なのではないかと思います。

もう一つの使用法としては、OTGにデータ通信ケーブル、PandoraのEHCIに補助電源ケーブルを挿して使用する方法。こちらは全てをPandora内で完結できるので、外部電源を持ち歩かなくて済むというメリットがあります。ただ、以前も書いたように、このやり方だとOMAP3の通常の使用法から逸脱する行為なので、使用出来ないか、長期使用時に何らかの不具合が発生する可能性も考えられなくは無いです。多分大丈夫だとは思うのですけどね。

それにこの方法だと、全ての電力をPandoraが負う事になりますので、かなりの勢いでバッテリーが底を付くと思います。大雑把な計算ですが、500mAを全力で使用した場合は持続時間が約半分くらいになるのではないかと思っています。普通の使用法で約8時間(多分)くらいなので、4時間くらいになるのかな? この辺りは実際に使用しないとわかりませんけどね。

「PL-USB-Y01」以外で、使えそうなケーブルとしてエレコムの「USB-M5DPBK」というのがありました。何が違うのかというと差込口の形状。どちらも一長一短ですので、使用したいUSB機器によって選択するのがいいかも。まぁ一番良いのは、自分で二股ケーブルを製作する事かもしれませんね。私は知識が無いので出来ませんけど。長くなりましたが一応ご参考までに。例によって素人の考察ですので内容的に間違いがあるかもしれません。お察し下さい……。

#Amazon





2009/02/18

Assembled in TX?

これといって情報もないのですけど、小ネタを一つ。何やらPandoraの組み立てはアメリカで行われる模様。しかもテキサスの工場らしい。何か新鮮な響きですね。テキサス。私の中ではテリーマンか、マイケル・デルの印象しかないのですけど(笑)。多分ですけど、TI関係で工場を紹介してもらったのかもしれませんね。そうだったら、組み立て品質については合格点が出そうですね。ちなみに、ケースは中国の工場に発注しているらしい。CNCケースと同じ工場なので、CNCケースの出来が良ければ、そのままゴーサインが出せるので、MP用のケースの品質も心配する程でもないみたい。

本当はケースだけじゃなくて、組み立てまで中国に発注しようと思っていたらしいですけど(その方がコスト的にはだいぶ安いらしい)、品質的に問題があるので止めたそうです。勿論、全ての中国企業が粗悪品を造る訳ではないですが、Pandoraの製作チームみたいに、素人に毛が生えたような企業だと、相手も足元を見る場合が多く、結果的に「掴まされる」可能性が高いと判断したのかもしれません。個人的な見解ですけどね。こういった製品にしては珍しくPandoraは「アメリカ製品」になる見通しみたいです。正確には「Manufactured in China, Assembled in USA」みたいな感じですかね。多分ですけど。

2009/02/17

PowerVR SGX demo

そういえば、Pandora実機上でのPowerVR SGXのデモも公開されていました。関係ないですけど、以前書いたBeagleBoardでのデモの辺りで、BBコミュニティとPandoraコミュニティとで一悶着あったみたいですね。どうも、BB側からするとPandora(特にCraig氏)は情報がいい加減すぎると思われているみたい。確かにそういった印象は無きにしも非ず(苦笑)。

というか、BBのコミュニティに比べると、PandoraのコミュニティはFLOSSに対して認識不足であると感じる部分はありますね。まぁPandoraの成り立ちを考えれば、無理からぬ事だとは思いますけど。もともとは携帯ゲーム機でのエミュ・自家製ゲームのコミュニティですからね。最近はだいぶFLOSS系も流入してきてはいますけど(笑)。

話がだいぶ脱線しました。まぁそんな感じで微妙な感じの両プロジェクトですが、着々と成果物の融合が進んできているみたいです。このOpenGL/ESのドライバーもそうですね。もう少し時間が経てば、今度はPandora側からのエミュレーター・ゲーム系ライブラリ等での成果物がBB、ひいてはOMAP/ARM系のコミュニティ全体へ還元されると思います。早くそうなるといいですね。

余談ですが、ビデオ中に出てくるマウス(なんか豚っぽいけど)のデモに見覚えがありました。どこかで見たなぁと思っていたのですが、遙か昔にMWeston氏が製作していた自分用ゲーム機(笑)でのデモでした。同じデモかは解りませんが、だいぶスムーズな動きしてますね。Pandoraの方。楽しみだなぁ。

#YouTube
PowerVR SGX demos running on a Pandora dev board. - YouTube
http://youtu.be/xeEZq1-AH5I



More PowerVR SGX demos running on a Pandora devboard. - YouTube
http://youtu.be/wnr4HCIoFlk

2009/02/16

PandoraとUSB #05

この前書いたPandoraとUSBモデムですが、フォーラムの方でも話題になっていました。結論から言うと、「使える」という事らしいです。

使えるといっても、予想通り「D02HW」(海外ではE220)はFULL-SPEEDまでしか対応しておらず、EHCIに直接挿して使う事は出来ない模様。今回検証を行った、主要デベロッパーの一人であるDJWillis氏は、EHCIにHI-SPEED対応のセルフパワーUSBハブを挟んで使用したみたいですね。残念。

今回はOTGでの使用は行われませんでしたので、そちらでの使用が可能なのかはわかりませんでした。まぁこちらの場合、二股USBケーブルの使用が可能なのかが知りたいので、実験してくれるかわかりませんけどね。話の流れてきに、「自己責任」による使用ならば、理論上は可能というのが大半の見方らしいですが。ただ、推奨は出来ないとの事らしい。

朗報としては、E220よりも新しいUSBモデムである、Huawei E160では、USBハブを経由しないEHCI直挿しで、USBモデムとして認識は出来たそうです。実際の通信までは確認していないそうですけど。

これはかなり嬉しい情報です。Huawei E160がいけると言う事は、同じ系統であるHuaweiのイー・モバイル端末にも可能性が残されているとみて良いと思います。具体的には、「D21HW」と、最近出た「D12HW」。

ただマニュアルを読むと、D12HWの方は「Full Speed」って明記されているんだよなぁ。対して、D21HWの方は何も書かれていない。これをどう見るべきなのか迷います。微かな希望としてD12HWの方はSDカードリーダーの機能も付いている事。こういったカードリーダー系って、速度的にHi-SPEEDの方が普通だと思うのですけど、そうでもないのかな。

まぁ無難なのはD21HWの方ですけどね。こちらはLinuxでの使用報告があれば多分大丈夫でしょうし。というか、実機持っている人にHi-SPEED対応かどうか確かめてもらうのが一番確実な方法なんですけど(笑)。誰かお願いします。

#外部リンク
‘Mobile Broadband’ on the Pandora? @ Distant-Earth
http://blogs.distant-earth.com/wp/?p=51

データ通信カード D21HW | イー・モバイル
http://emobile.jp/products/hw/d21hw/

データ通信カード D12HW | イー・モバイル
http://emobile.jp/products/hw/d12hw/

2009/02/14

Bluetoothの謎 A2DP編 #03

今日もしつこくA2DP。微妙ですがZaurusよりもハードウェア的にPandoraに近いであろう、NokiaのN8xxシリーズでのA2DP状況について調べてみました。その辺を適当に書いときます。某フォーラムから引用。
--Current Status--
What works:
-Playing music with mplayer and Kagu and Mediabox through your A2DP headphones!
-Scrolling in Kagu or Mediabox does not cause skipping, usually.
What's not so great:
-CPU usage is ~50% at 320MHz! That'll go through battery life pretty fast.
-No way at all to playback music through A2DP in the default media player
-Skipping can still occur during periods of high CPU usage from other apps.
-Installing still takes a little time at the command line. No need to learn vi or mess around with root privileges though.
まずは動くかどうか。とりあえずは動くらしい。ただし再生できるアプリケーションが限定されているみたいですね。Pandora的にはMplayerで動けばOKなので、その点では大丈夫みたい。Maemoだとデフォルトのメディアプレイヤーが対応していないみたいですね。どのくらい快適なのかですが、正直あんまり快適ではなさそう。

Bluez的にはSBCエンコードをソフトウェアで処理するので非力なCPUしかないSoC系では厳しそう。現にN810でも320MHz動作時でCPU使用率が50%に達する場合もあるみたい。これは厳しい。いくらBTが省電力(2.5mW)でも送り出しにこんな消費するんじゃ意味ないですね。

適当ですがN810で50%(320MHz時)と言う事は600MHz動作時のPandoraで25%。まぁARM自体のバージョンが違うので、一概にどうとは言えませんけど。ARMの話じゃARM11とCortex A8じゃ3倍くらい違うとか言っていた気がしますし。実際はそこまで差が出るとは思えませんけど。まぁ2倍くらいとして10%台半ばくらいですかね。OSとかメモリとかも換算しなくちゃいけませんけど。

希望があるとしたら、やはりDSPの使用ですかね。後はCPUのNEON最適化も。NEONは性能的に微妙らしいですが、DSPの方は結構有望だと思います。現にNokia機でもDSPの使用は試みられているみたいです。更にSBCは最適化しやすいコーデックらしいですし。勿論、そう簡単に最適化できるものではないでしょうけど、将来的にはあり得ると思います。

どちらにしろPandoraでのA2DPは音楽鑑賞や、動画再生時のみに使用するといった使い方しか出来なさそうですね。これでエミュレーターとかも併用するにはCPU負荷がかかりすぎるかもしれません。もしDSPやNEONの最適化が可能になったとしても、他のアプリケーション(PSXエミュ等)でも、同様にDSPやNEONを使用する可能性もありますからね。残念ですけど。

それと、Bluezの対応アプリケーションのリストに書いてあったのですが、XMMSとの相性が悪いそうです。やはりXMMSのデフォルトアプリ化は避けてもらいたいですね。一応、後継としてaudaciousというのがありますし。ただaudaciousって微妙に重いし、不安定なんだよなぁ。最新版はどうなのかわかりませんけどね。

#外部リンク
A2DP works, help me test it? - maemo.org - Talk
http://talk.maemo.org/showthread.php?t=13468

Questions for Nokia - maemo.org wiki
http://wiki.maemo.org/Questions_for_Nokia#Status_of_DSP_SBC_task

Huawei i-Mo HSPA modem with WiFi

寝ようと思ったらスゴいのキター! これとPandoraは最強になれる気がする。イー・モバイルは直ぐにでも買い付けに走るべきだ。

#外部リンク
Huawei i-Mo HSPA modem with WiFi - SlashGear
http://www.slashgear.com/huawei-i-mo-hspa-modem-with-wifi-1334150/#entrycontent

2009/02/12

Bluetoothの謎 A2DP編 #02

昨日に続いて、A2DPについて調べているのですが、やっぱり難しい。手元にBT機器が一つもないというのも大きいですが、思ったより日本語での情報が無さそう。というかBTって結構複雑なんですね。プロファイルいっぱいだし。とりあえずPandoraで使うであろうLinuxのBlueZの公式ウェブサイトを見てみたら、結構興味深い事がかかれていました。以下抜粋。
This release contains mostly fixes for the audio support. The SBC encoder should now produce a much better audio quality and its performance should increase noticeably on ARM and x86 platforms.
何というタイミング。どうやら例のSBCコーデックのエンコーダー性能が向上したらしい。そのおかげでARM(とx86)環境での性能が著しく上昇しているみたい。これはおいしい。でも、SBCのエンコードってソフトウェア処理なんですね。てっきりBTデバイス(ドングル等)がハードウェア処理しているのかと思ってた。よくわからん。それともBlueZだからなのかな。

SBCのエンコードがソフトウェア処理という事は、昨日チラッと書いたオプションのMP3やAACの処理もソフトウェアで対処出来るのかなぁ。だとしたら送信側(Pandora)はどうにでもなるって事ですよね。受信側(ヘッドフォン等)は最初から対応していないと駄目ですけど。そんな単純じゃない? 謎がいっぱい。

何か私が思っていたMP3対応と違うなぁ。イメージとしてはMP3やAACに対応している場合なら送受信前の再エンコードをスルー出来る機能なのかと思っていたのですけど、単に再エンコードにSBCじゃなくてMP3やAACを使用出来ますよってだけなのかなぁ。そうだとしたらあんまり嬉しくない機能だな(笑)。単にCPU負荷が上がるだけっぽい。

そりゃ低ビットレートならSBCよりもAACの方が音が良くなりそうだけどさ。結局ある程度以上(300くらい)のビットレートで飛ばす場合、それほどの差がつくとは思えないし。ってSBCの性能がどのくらいかわかりませんけど。調べた感じだとMP3とそれほど変わらないみたい。もちろんビットレートによりますけど。

それより、気になったのはA2DPで飛ばす場合、送り出し側がSBCにソフトウェア処理で再エンコードしなくちゃならないって事です。毎回この処理をするって事は、Pandoraのような非力な機体だと馬鹿にならないコストだなぁなんて思ったりして。普通に音楽鑑賞くらいならどうって事ないでしょうけど、動画だったりゲームだったり、ましてプレステのエミュを使用しながらA2DPで飛ばすなんて事をしたら、結構ヤバい気がします。もしかしたら全然違う事なのかもしれませんけど。ザウルスでの実績を調べてみた方がいいかな。多分同じパターンだろうし。内蔵しているかどうかっていうのはありますけど。

#追記
上で書いたSBC機能の向上ですがバージョン4.28に含まれているみたいです。Pandoraで使用されるであろうAngstromのパッケージを調べてみたらOMAP3用のパッケージは現在4.29みたいです。有難い。

#外部リンク
BlueZ
http://www.bluez.org/

Bluetoothの謎 A2DP編

続いてBluetoothでの音楽鑑賞編です。調べた所、BTで音楽を聴くにはA2DPというプロファイルを使用しなくてはいけないみたいですね。それと、AV機器のリモコン機能を実現するためのプロファイルとしてAVRCP。とりあえず、この2つのプロファイルがあれば、機能的に問題はなさそうです。そのA2DPですが調べてみると意外とややこしい。基本的にSBCというコーデックでやり取りされるみたいですね。以下、某サイトから引用。
A2DP は GAVDP に依存しています。A2DP では、複雑性が低いサブバンド コーデック (SBC) のサポートが必須であり、オプションで MPEG-1 と 2 オーディオ、MPEG-2 と 4 の AAC および ATRAC がサポートされます。
なるほど。最低でもSBCというコーデックをサポートしていなくてはならず、オプションとしてMP3やAACでのストリーム送信もサポートするらしい。A2DP対応と謳っている商品でも実際にMP3やAACまでサポートしている商品はかなり少ないみたいですね。Sonyの商品はMP3対応というのもありましたが。

ちなみに、このMP3対応というのもBluetoothデバイスが送受信ともにMP3に対応していなくちゃいけないのか、受信側だけでいいのかまでは調べられていません。多分、両方共にサポートされていないといけないのでしょうけど。

もしそうなら、Pandoraでは基本的なSBCのサポートしかないだろうな……。多分ですが、このMP3対応みたいなやつは、パソコンのような汎用性のあるデバイス用ではなく、iPodやWalkmanのような、家電製品向けの拡張機能なんでしょうね。まぁどちらにしろ、MP3は使いませんけどね。Ogg厨だし。

さて、肝心のSBCですが、こいつが少しやっかいそう。SBC自体はデコード負荷が少ないコーデックで扱いやすいみたいですが、A2DPで音楽を聴こうとすると、BT機器間の無線部分で、必ずSBCへのエンコード・デコード作業を挟まなくてはならないという事になります(多分)。

となると、例えばPandora内でOgg Vorbisだったデータが、BT機器間ではSBCに再エンコードされて送受信され、そのSBCデータを人間の耳で受け止めるという事になってしまいます。これは残念な事実ですね。必ず再エンコードを挟まなくてはいけなくなる訳ですから。間違っているかもしれませんが(苦笑)。

となると、PandoraでA2DPを頻繁に使う場合、元データはFLACのようなロスレスか、Ogg Vorbisでもビットレートを高めに設定したファイルにしないと、多少残念な結果になるのかも知れません……。まぁ実際に使用した事がないので、何とも言えませんけどね。

それに、A2DPの使用が限定的な場合はあんまり気にする事はないかも。電車に乗っている時とか、人混みでの使用時とか。まわりがうるさいですからね。無線の利便性を考えれば十分実用的ですし。

#外部リンク
ケータイ用語の基礎知識 第259回:A2DP とは
http://k-tai.impress.co.jp/cda/article/keyword/27461.html