2016年3月27日日曜日

microUSBコネクタのピンアサイン

OTGケーブルを作ったりするのにeBayでmicroUSBのオス端子の10個セットを買ってみた。

これで100円ちょいだから安かった。


ピンアサインを忘れそうなのでメモっておく。通常IDのUSBケーブルとして使う場合はIDには何も繋がなくて良いんだけど、GNDとIDを接続しておくとOTGケーブルとして使用できのでUSBホスト機能がついてるデバイスでUSBデバイスを使うときに使える。このとき5Vが出力になってデバイス側に給電されるようになる。

さらにUSBホスト機能を使いながらデバイスに給電したいときはGNDとIDの間に124kΩの抵抗をつけるといいらしい。このとき5Vは出力じゃなくて入力になるっぽい。


組立時はこんな感じ。ケーブルの断線防止のやつがついてないけど、このケースの中に小型のディスクリート抵抗なら何個か詰め込めそう。

2016年3月16日水曜日

EZCast A2WのHDMI CECを無効にしてみた。

EZCastはマルチプラットフォーム対応だし、簡単に使えていいんですが、どうもHDMI機器連動の邪魔をするっぽいので対策してみた。

ブラビアにレコーダーを繋いでブラビアリンクが有効な状態でEZCastを追加すると、どうもTVがレコーダーを認識しなくなるっぽい…
電源をつけてる時に途中からEZCastを刺しても問題ないんだけども一旦電源を切ったりするとレコーダーを見失う。

更にEZCastのほうでEZChannelなんか設定してるとテレビが自動でついたりしてビックリする。ということでこれらの機能を無効にすることに。

HDMIにはCECと言ってテレビと連動できるような機能がついてて、TVのリモコンからHDMIにつながった機器に信号を送ったりとかできるようになってる。
CECはHDMIの映像や音声信号とは別に、13ピンを使用して通信しているので単純にHDMI端子の13番のピンを繋がなければCECは作動しないはず。

ということで早速分解。

EZCast A2Wのハウジングは爪だけで止まっているので、MicroUSB端子辺りに爪を突っ込んで開けば簡単に開けることができる。

そんでもってHDMI端子の13ピンにつながっているパターンをテスターで探ってみた。

すると裏側のR45の抵抗(画像の右上あたり)が0Ω抵抗で、こいつを介してメインのICの方につながってる模様。
ということでこの0Ω抵抗を外せばHDMI端子の13番ピンとの接続をカットできるはず。

結構小さい抵抗なのでハンダで外す場合は他のを外さないように注意が必要かも。
これでカバーをして起動してみるとBRAVIA LINKが切れない!
これでEZCastをテレビにつけっぱなしにできるな。

しかしHDMI CECってたまにこんな問題が起きるんだけど、どうにかならないもんかねぇ
メーカーによって呼び方は違うけどもHDMIのリンク機能で問題がある場合はこの方法で治るかも?

 

2016年3月1日火曜日

Anker PowerPort 2を買ってみた。

たまたまAmazonのタイムセールで見かけたUSB充電器が良さそうなのでポチってみた。

AnkerのPowerPort 2ってやつ。
この手のUSB充電器は電流がでかけりゃいいと思っていたんだけど、この充電器はVoltageBoostと呼ばれる電圧調整機能も付いてるらしい。さらに、接続された機器を自動的に検知して最適な電流を送るIQ Powerという機能にも対応しているっぽい。

充電高速化技術ではQualcommのQuickChargeしか知らなかったのでiPhone、iPadユーザーにはこの手の充電器は関係ないと思っていたんだけど、こんなインテリジェントな充電器が出ているとは…

最近iPad mini 2にSIMを刺したことにより出番も増えて同時に充電することが多くなっていたのでiPhoneとiPadを同時に充電できるようにという意味も込めて2ポートで24Wなモデルをチョイス。


なかなかおしゃれな箱

充電器自体は意外と小さめ

内容物はこんな感じ。
今回は黒にしてみた。

どちらのポートもIQ Powerに対応してる。
上部のLEDで充電状況が把握できる。
充電完了は青で充電中は緑に光るようになってるっぽい。


iPhoneとiPadの充電器と比較
2つ同時に充電できるとすれば結構コンパクトかな

iPhone 5Sのバッテリー残量が40%ぐらいだったので純正充電器と比較してみた。
まずは純正充電器

電圧もそこそこ出てるし、結構頑張ってるんじゃないだろうか。
やすい充電器とかだと4.8Vぐらいまで下がったりするし…

次はPowerPort 2

電圧が0.3Vぐらい上がってる!
VoltageBoostが聞いてる模様。充電電流もちょっとだけ高め。

iPad mini 2は最近充電したばっかりなので今度試してみようかな。

2016年2月26日金曜日

OpenELECをSambaからアップデートしてみた。

Orange Pi用のOpenELECが結構更新しまくってて、その都度SDにイメージを上書きすると設定画面どうなのでSamba鯖を使ったアップデートを試してみた。

ただし、U-Bootの更新が含まれるバージョンだとこの方法でアップデートするとU-Bootまで更新されないっぽいので注意かも。(U-Bootはめったに更新されないと思うけど)

意外とこの方法が簡単で、OpenELECの設定でSambaが有効になってる場合(デフォで有効)、OpenELECの共有フォルダが見えるはず。

その中のUpdateフォルダにアップデート用のファイルを突っ込めばいいというわけ。

フォーラムのOpenELECではmicroSD用のimgファイルとアップデート用のtarファイルが一緒にアップデートされてるので、拡張子にimgがついてない方のファイルをDLしてそのUpdateフォルダに入れてOrange Piを再起動するだけ!
アップデータの方は、フォーラムのLatest prebuilt imagesに常に最新版のリンクが貼られるようになってるっぽいのでこちら参照。

tarファイル突っ込んで再起動したら何回か再起動するので待つ。
起動したらSystem Infoからコンパイル日を見ればアップデートされたかどうかがわかる!
設定がそのままなので赤外線リモコンが使えた。赤外線リモコンの設定は面倒なのでこれは便利。


ちなみに今回は20160224版に更新してみたんだけども、何故かCMAのバグ再来でCPUのどれか1コアの使用率が100%に張り付いてる。メモリも全体のメモリが見えるようになってるし。CMAを再度有効にしたのかな?

もしかしたらU-Bootの更新があったのかもしれないのでmicroSDにimgファイル上書きで更新してみることに。
ただし、再設定が面倒なので、OpenELECの共有フォルダにあるConfigfilesのバックアップをとってから、imgファイルをddで上書きしてアップデートしてからConfigfilesを戻してみた。

するとCMAのバグが治ってる!これでビデオメモリが自動的に割り当てられるようになってるのか…効率的だ…
たしかにOrange Pi PCはメモリ1GBあるから余裕だけど、Orange Pi ONEのように512MBだとこの方法は有効かもしれない。

2016年2月20日土曜日

LAN-W300N/DRを分解してみた。

LogitecのLAN-W300N/DRをジャンクで入手したので分解してみた。
USBデバイス共有機能がついてる無線LANルーターで11nの300Mbpsに対応している。
USBポートが付いてるけどUSB over Ethernet専用な感じで、FTPサーバとかSMBサーバを立ててNASみたいに使うことはできないらしい。

シリアルナンバーを見るとB無しのバージョンだった。今回もACアダプタが付属してなかったんだけど、調べたらLA-10W5S-09という5V 2A出力のACアダプタらしい。コネクタはPSPと同じく4.0x1.7なので試しにPSPの充電器で動かしてみた。

一応起動するけどなんか不安定。何回か再起動すると無線LANに接続できて設定画面も開けたり。繋がらないときは接続中のまま…
とりあえずリセットボタンを電源LEDが高速点滅するまで長押しして離すと工場出荷状態に初期化できるっぽいのでやってみたらつながるようになった。
ファームウェアは1.08だったので最新の1.14までアップデートしてみた。

早速分解してみた。
LAN-W300N/DR
分解方法はLAN-W300N/Rと全く一緒だった。アンテナがどっちもPCBアンテナになっていた。
CPUには銅板が接着されていて剥がせそうになかった。なんのCPUかわからないじゃん…
Flash ROMはMacronix 29LV320DBTI-70Gで4MBだった。
LAN-W300N/DR
裏面にはRAMが2つ乗っていた。Zentel A3V28S40ETP-G6(16MB)x2で32MB

CPUがわからないのでシリアルコンソールを試してみることに。

表面のJP2ってところに2.54ピッチのピンヘッダをハンダできそうなところがあるのでそこが怪しい感じ。JP2って書いてあるところを1番として順番に3.3V出力、RX、GND、TXっぽい感じだった。
市販のUSB→TTL変換アダプタを使う場合は3.3Vは接続しなくても良さそう。(電源が衝突してしまう)

とりあえずCooltermでBaudrateを色々試してみたところ57600bpsで通信できた。
U-Boot 1.1.3 (Aug 12 2009 - 13:57:22)

Board: Ralink APSoC DRAM:  32 MB
relocate_code Pointer at: 81fa8000
****************************
Init GPIO Pin****************************
flash_protect ON: from 0xBFC00000 to 0xBFC262D3
protect on 0
protect on 1
protect on 2
protect on 3
protect on 4
protect on 5
protect on 6
protect on 7
protect on 8
protect on 9
flash_protect ON: from 0xBFC30000 to 0xBFC3FFFF
protect on 10
*** Warning - bad CRC, using default environment

============================================ 
Ralink UBoot Version: 3.1
-------------------------------------------- 
ASIC 3052_MP1 (MAC to GigaMAC Mode)
DRAM COMPONENT: 256Mbits 
DRAM BUS: 32BIT 
Total memory: 64 MBytes
Flash: 4 MBytes
Date:Aug 12 2009  Time:13:57:22
起動時にモニタしてるとこんな感じで出てきたのでCPUはRalink RT3052Fっぽい。
Logitecのルーターで脆弱性で騒がれてたけど実はシリアルナンバーにB無しはRalinkでB付きはRealtekなのかな。B無しはアップデートの必要なしって書いてあったし…。

Ralink RT3052FなのでOpenWRTみたいな改造ファームウェアも使えそうな気がする。USB付いてるのでOpenWRTが入れられればNAS化もできそうだし。しかしCFIのROMなので剥がしてバックアップ取れないし、JTAGがついてないので書き換えミスったら怖いな…
構成的にはBuffaloのWHR-G300Nとほぼ同じなのでGPIOだけ変更してビルドすれば同じようなファームが動かせたりするかも?WHR-G300N v1はDD-WRTもあったような…

マルチSSIDをオフにして、セキュリティーをWPA2(AES)にしてiPhoneでスピードテストをしてみると最大で55Mbpsぐらい。
倍速モード(40MHz)に設定するとそもそもWiFiに接続できなくなったり、設定画面が超重くなったりするのでデフォルトのチャンネル幅20MHzで使うといいかも。
B付きのLAN-W300N/Rは80Mbps出てたのでRalinkよりもReaktekのほうがiPhone(倍速モード非対応なのでどっちみちチャンネル幅20MHz)とは相性がいいのかな。

USBデバイス共有機能はルーターモードじゃないと使えないって書いてあったけど、APモードでも設定をすれば使える。
APモードにして起動したらPCのIPアドレスを強制的に192.168.2.2に設定して192.168.2.1にブラウザからアクセスすると設定画面が出るので、上位のルーターから割り振られるのと同じセグメントのIPアドレスを手動で設定してやればOK。

でもやっぱりRalinkは熱くなる感じがする。 逆にLAN-W300N/RはB付きでRealtekだったけどすげー安定してるし、速い。発熱もほとんどない感じ。もしかしたらシリアル番号B付きは安定性が改善されてるのかもしれないな。

2016年2月7日日曜日

Orange Pi PCのKodiで赤外線リモコンを使ってみた。その2

前回はOrange PiのOpenELECでNECプロトコルの赤外線リモコンを使えるように設定したんだけども、フォーラムを見ていたらモジュールをアップデートして他のプロトコルにも対応したようなので試してみた。
なお対応してるプロトコルはこちらを見ればわかるかも。

フォーラムに貼ってあるイメージを早速入れてみた。

リモコンの登録方法は前回のNECプロトコルの時と少し違うっぽい。
ちなみにモジュール自体が入れ替えてあるからなのか、このファームに関してはNECプロトコルのリモコンに関してもこの方法じゃないと登録できないっぽい。

今回もSSH経由で設定してみた。
とりあえずKodiを止める。
systemctl stop kodi

irrecord /storage/.config/lircd.conf
でリモコンを登録する。
エンターを2回押してからリモコンのボタンを押しまくる。

リモコンプロトコルの解析が終わったらボタンの登録。
前回同様、割り当てたいボタン名を入力した後に、リモコンのキーを押す。
この時に長押しするとなんか変な動作をするので注意。

登録が終わったらボタン名を入れずにエンターを押して、リモコンのボタンを押すように言われるのでまた押しまくる。
これでリモコンの登録は完了。

次に
nano /storage/.config/lircd.conf
で先ほど作ったコンフィグファイルを開いてNECプロトコルの時と同様に
name /storage/.config/lircd.conf
ってなってる部分を
name devinput
に変更して保存します。

最後に起動スクリプトを作成。
nano /storage/.config/autostart.sh
以下の3行をコピペして保存。
#!/bin/sh
killall lircd
lircd /storage/.config/lircd.conf
そして
chmod +rx /storage/.config/autostart.sh
で起動スクリプトに実行権限を与えて完了。

あとはrebootするとリモコンが使えるようになってるはず。

ちなみにキー名リストはirrecord --list-namespaceで出せるらしいので
ターミナルをもう一枚開いて確認しながらやるといいかも。

2016年1月31日日曜日

Orange Pi PCのKodiで赤外線リモコンを使ってみた。

やはりOpenELEC版のKodiはAndroid版と違って起動が速いし動作も更にサクサク!

テレビで使うにはやっぱりリモコンが使えたほうが便利なので赤外線リモコンを使ってみることに。Raspberry Piの時はOSMCで簡単にいろんなリモコンが使えていたんだけど、Orange Pi PCの赤外線受光部はSunxi-irの制約があるみたいでNECプロトコルしか使えない模様。(GPIOに別なモジュール繋げばいけるのかな?

とりあえず今回はフォーラムに乗っていたやり方でNECプロトコル対応のリモコンを使えるようにしてみた。
たまたま東芝のテレビのリモコンがNECプロトコル対応だった。

設定にはシリアルコンソールかSSHが必要。今回はSSHを使用した。
sshでrootでログオンする。デフォルトパスワードはopenelec。
リモコンのデバイスはKodiで予め使用されてるのでkodiを終了。
systemctl stop kodi

まずは赤外線リモコンが受信できるかテスト。これでNECプロトコルかどうかも判断できるかも。
ir-keytable -t --sysdev=devinput -d /dev/input/event1
この状態でリモコンのボタンを押すとNECプロトコル対応のリモコンの場合は画面に何か表示されるはず。

うまく認識出来てるようなら次はリモコンの登録。
この画面はCtrl+cで終了できる。

irrecord /storage/lircd.conf -H devinput -d /dev/input/event1
このコマンドでリモコンを登録していく。
一度実行すると設定ファイルができるので、もし失敗してもう一回実行する場合は設定ファイル名を変更するか、
rm /storage/lircd.conf
で先ほど使った設定ファイルを削除すると良いかも。

早速このコマンドを実行すると説明が表示されるのでとりあえずEnterキーを押す。
次にリモコンの適当なボタンを数秒ずついろんなボタンを押して見る。
画面にピリオドで埋まるはず。(ピリオドが増えない時は長押ししてみると良い。)

そして次はリモコン登録
登録したいキー名を入力してエンターをおした後にリモコンの割り当てたいボタンを押す。
これの繰り返し。

登録を終わりたいときは登録したいキー名を入力せずにEnterを押すと登録完了。

登録したらそのままでは使えないのが面倒なところ…
先ほど作成した設定ファイルを編集します。
sed -i -e "s/ 0x00000000000000//g" /storage/lircd.conf
で余計なリモコンコードを削除します。
なぜか各リモコンコードの後ろに0x00000000000000が付くらしい。

次に
nano /storage/lircd.conf
で設定ファイルを開いて
name /storage/lircd.conf
ってなってる部分を
name devinput
に変更します。
ctrl+x → Y → Enterで保存。

これでKodiが認識できるようになる模様。

最後に起動時にlircがこの設定ファイルを読み込むようにします。
nano /storage/.config/autostart.sh
でシェルスクリプトを新規に作成して
中身に以下をコピペ

#!/bin/sh

killall lircd
lircd -H devinput -d /dev/input/event1 /storage/lircd.conf

そしてctrl+x → Y → Enterで保存。

次に実行権限を与える。
chmod +rx /storage/.config/autostart.sh
これで再起動すればリモコンが使えるようになってるはず!
rebootコマンドで再起動できます。

リモコンで電源付けられるようになると便利なんだけどなぁ


P.S
2016/02/07以降ではNECプロトコル以外に対応したため登録方法が変わりました。
その2を参照ください。