2021年12月25日

USB PD メモ

今更ながら、USB PD に対応したノートPC用のプラグアダプタがあることを知った。
adapter-ali-003.jpg
こんなやつ。内部にチップが入っていて電圧を設定してくれる。
    adapter-ali-004.jpg

今まで ASUS の 1kg クラスのノートPCを使ってきたのだが、ACアダプターのケーブル断線で純正ACアダプタを2回買っている。価格が高くて馬鹿らしいのもあるが、突然充電出来なくなるとパニックになる。それで PD アダプタで充電できればと考えた。

写真では DC18-20V となっているから、多分 20V 出力可能で 30W (1.5A) のアダプタなら使えそうだ。
探すと RAVPower RP-PC152 というのが見つかった。($13.72 のところ $11.72 で購入)
adapter-ali-001.jpg

 Input: 100-240V, 50/60Hz 1A Max.
 PD Output: 5V 3A, 9V 3A, 12V 2.5A, 15V 2A, 20V 1.5A, 30W Max. Each Port
 Total Output: 40W Max.

これで良いではないか。・・・ただノートPCの入力はチェックさえしなければ本来12V 2.5A, 15V 2Aなどでも動くはずだと思うのだ。 電源ICはふつうひとつで、充電を含めすべての電源を制御する。基本スイッチングなので、19V である必要はない。むしろICの耐圧の関係で上限が重要。

もうひとつ AR-890 というのも買ってみることに
adapter-ali-002.jpg

PD がひとつに QC3.0 ひとつ + 5V USB ふたつというもの。写真では PD 20W と書いてあるようだ。QC3.0 というこは、ついでに PD も 9V 2A とか 12V 1.67A に対応しているのだろうか?
$2.35 と安価なものなので、どうも怪しい。怪しいが、買って確かめてみたい。

    adapter-ali-006.jpg
    別のもので PD がひとつに QC3.0 ひとつというのもある(MODEL: HC-082)。$3.73 でちょっとだけ高い。
    PD 5V/3A, 9V/2.22A, 12V/1.67A (20W)
    QC3.0 5V/3A, 9V/2A, 12V/1.5A (18W)

    これは電圧がちゃんと書いてあるので大丈夫なのだろう。

    どうやら "POWER QUICK CHARGE 3.0" とプリントされていて 上記の AR-890 もこれも Maerknon というブランドのようだ。AR-890 も電圧が表記されているショップがあって 5V/3.5A, 9V/2A, 12V/1.5A をサポートしているようだ。

    adapter-ali-007.jpg

    内部の 3D モデルの写真まである。トランスがひとつあり、大きなコントローラがひとつ。IC と コンデンサ、ダイオードが3組。2組は明らかに出力用。あと一組は入力用なのだろうか? 大きなコンデンサの裏には、電解コンデンサが並列に付いている。最近の電源用コントローラは電解コンデンサなど必要ないものが多いのだが、スイッチング周波数が低いのだろうか?また、小さなコンデンサが多数付いている。これは装置の安定性を高めるために入れるのが普通。これだけでしっかりした造りだと判断できる。スマホの充電だけなら Maerknon で十分そうだ。ちなみに 5000mAH のバッテリーは 18WH ぐらいの容量なので、PD20W なら 1C 充電ぐらい。30分で 0 → 50% ぐらいは充電できる計算だ。

      Maerknon というのは間違い。10000個以上売れている製品で FOLVEME とは書いてあるのだが、FOLVEME オフィシャルストアに同じものはない。Maerknon と勘違いしたのはデザインが似ているため。側面の印刷が違う。内部イメージのは、側面に 20W を丸で囲んだ印刷。この丸の線も細い。丸の線が太い別の製品まで見つかってなんともややこしい。

    adapter-ali-008.jpg
    一方で買った RAVPower RP-PC152 の内部イメージは、出鱈目。だいたい USB Type-C コネクタがないではないか。基板もそれらしくないし、パーツも訳が分からない。こんな写真を載せるようでは、大丈夫か?と思ってしまう。


ここで USB PD trigger PDC004 というのを見つけた。
adapter-ali-005.jpg

プラグアダプタの中身だけ。9V,12V,15V,20V のマークがあって、チェックが入る。安いのは送料込みで $1 程度。これを持っておくと実際に何Vが出力されるのか?確かめることが出来るし、良いかも。

    使用している IC は IP2721 というものでデータシートも見つかる。15V,20Vを選択できるのが 無印 IP2721 で 9V,12V を選択できるのが IP2721_MAX12 。#11 sel が無接続ならば 低い方 9V,15V で high (100kΩでプルアップ) だと 高い方 12V,20V の選択になる。(GND にすると 5V)

    要求した電圧がサポートされてなければ、サポートされる最も高い電圧を要求する。なのでチェックするだけならば、20V だけ買えば良いはずで、電源として利用する場合も 9V,15V はパターンカットすれば良いので買う必要はない。

購入したものが届いた。
RAVPower RP-PC152
プラグアダプタ (ASUS 用)
PD ケーブル (60W 対応)

ちゃんと 無負荷時 20V が出力されて ASUS のノートPC で使えた。これで万が一の断線時に慌てなくて済む。あと同時に買った PD 20W と書いてある 安物 AC アダプタに 20V のプラグを付けてみたが 5V しか出力されない。PDC004 が届いたら、どんな感じなのか確認してみる。
posted by すz at 19:23| Comment(0) | TrackBack(0) | 日記

2019年03月21日

SBCラック (まとめ)

sbc-rack1.jpg

SBC-heatsink8.jpg
SBC-heatsink4.jpgSBC-heatsink5.jpg
SBC-heatsink6.jpgSBC-heatsink7.jpg
SBC や HUB, 電源を載せるラックを検討してきた。結果をまとめておこうと思う。

SBCラック

    sbc-rack2.jpg
    エヌアイシ・オートテック(NIC) では、90mm 幅の ベーシックフレーム AFS-1590 というのを好きな長さで切ってもらうことが出来る。これをを 140mm に切ったものを ヒートシンク+棚板とするのが基本的な発想である。これを取り付ける支柱は、スライドドアフレーム AFR-2030 275mm 。20mm のアルミアングルに放熱フィンが付いたような形状をしている。
    これだけだと、ひし形に歪んでしまうので、ブラケットを付ける。図では、アルミアングル AFL-2020 を 15mm で切ったもの。これでも良いのだが、少々気に入らないので、AFSR-2020 15mm に変更しようと考えている。

      アルミアングル にタップして取り付けているのだが、ネジ穴を完全に垂直でできるわけがなく気に入らないのである。裏からナットで止めれば良いのであるが、・・・というかそれが一番かもだが、デザイン的に AFSR-2020 を使ってみたい。これを止めるには、スリットに四角ナット 8mm を入れる。六角レンチの iso7380 のボルトでガチガチに締めるのだ。

    なにをどのように載せるかによるが、天板・底板を 木材で作っても良い。90mm 幅の ファルカタ・桐材を使おうかと。高価な木材だと意味がないが、これだと格安に作ることが出来る。いや・・・値段ではないのだ。必要があって AFS-1590 を使う。強度も放熱性能も必要がないところに使うのはいかがなものかと考えてしまうのだ。木材では、最初は木ネジで済まそうかと。何度も付けたり外したりして、ネジ穴が怪しくなってきたら、Injection nut なるものを埋め込んで対処するつもり。

    また、パネルを一応付けられるようにと考えた。 長辺を正面として、サイドには 12mm の両方メスのスペーサ、正面には 18mm のスペーサを使おうと考えている。なんというか アクセスするのに不便だし、デザイン的にも取ってつけたようなものになりそう。いらないとは思うのだが、付けたい理由ができたときのため最初から検討しておく。

      AFSR-2020 の場合困ったことになるのだが、スリットに iso7380 の頭を入れて、裏に六角レンチが入る穴を空けようかと。径は M4 だと 4mm あれば良いようだ。レンチは 2.5 。

    書き忘れたが、ネジ・ナットは全部 M4 。結構な数が必要で、コストもばかにできないぐらいになる。

続きを読む
posted by すz at 06:27| Comment(0) | TrackBack(0) | 日記

2019年02月27日

HYSTOU MINI PC

デスクトップ Linux マシンを新調することにした。
もう何年も使っているし、調子悪いし。ファンの音も怪しいし・・・というのが一応の理由ではあるが・・・
いろいろ検索しているうちに欲しくなってしまったのが、本当のところ。

hystou-p12a.jpg
買ったのは HYSTOU というメーカの製品。産業用?
    CPU N3160
    メモリ SODIMM DDR3L (2 - 8GB)
    ストレージ SATA x1 (2.5inch ベイ) , mSATA スロット , mPCIe スロット(wifi 専用)
    USB USB3 x2 , USB2 x4
    HDMI x2 , COM port
    GbE x2
    13.9 cm x 12.8 cm

こんなスペック。GbE が 2 ポートあるのが気に入った。産業用は2ポート付いているものが結構ある。ルータにするのではなく、性能のためでもなく、おそらく冗長性のためである。あるいは、イントラネットと物理的に切り離すためかも。で、ちょっと設計が古そうでもある。産業用は長期間供給するのが重要なので世代交代はあまり頻繁ではなかったりする。

    NIC は Realtek RTL8111E。マザーボードの写真でカニチップが 2 個見える。(1つは mSATA の下)。個人的に 2ポートあると嬉しいのは仮想化。パススルーを使うとオーバヘッドが低減されるのだが、デバイスをまるまるゲストOS に渡さないといけない。HOST で1つ使うなら 2 個必要。もし DMA engine が使えるなら、優位性がないという気もするが。(VT-d はサポートされてなかったから関係なかった)

    あるいは、2台のゲストOS を稼働させても良いかも知れない。メンテナンスは COM port のみとか。

    そういえば HDMI が 2個あるが、こちらはパススルー出来るのだろうか?

最初に見つけたのは、GeaBest のここ 。mPCIe wifi が付いて $136.99 。

で、何気に aliexpress を見たら、こんなショップが。

hystou-p12.jpg
Nano ITX マザーボード単体 でも買えて $90.53 。ベアボーンが $124.69 〜。
Wifi いらないので こちらのベアボーンにした。他のオプションもなし。

マザーボード単体は、SBC のようなもので、最初それでも良いと思ったのだが・・・

    ARM の SBC が大型化してきている。高性能化で電力消費もより大きくなって 12V 電源のものも増えてきている。裏面に SoC を配置して 大型ヒートシンクを裏に付けるタイプもちらほら。12cm角の Nano ITX までにはなっていないが、あまり変わらないような気がしている。

hystou-p12b.jpg
CPU が裏面にあって、ヒートシンクを自前でなんとかしないといけない。固定用の穴が開いているが汎用のものなどなさそうに思える。
35mm 角の対角線に穴が開いているような感じで、50mm 角とかのヒートシンクを加工しないとダメそうだ。干渉するフィンも削らないといけなくて難易度が高い。その上、なにもない裏面に付けるのは収まりが悪い。
hystou-p12c.jpg
120mm x100mm 7mm 厚のヒートシンクが見つかった。これを使ってボード自体の取り付け穴にマウントすることは出来そうだ。ただし 7mm 厚の所に穴を空けなくてはならない。全体を取り付けるためのネジ穴も別に必要。・・・まぁめんどくさいのである。

N3160 は TDP 6W (マシン全体の消費電力は 12W) 。こんな大きなヒートシンクは必要さそうだが、致し方ないだろう。

・・・とか考えたが、結局は安易にベアボーンにした。ケースがヒートシンクになっていてなにも考えなくてよい。$35 ほどの追加でACアダプタと SATA ケーブルが付くわけで、むしろ安いのかなとも思う。

    CPU を J3160 に変更するオプションもある。だが、機能的には同じみたいなので、パス。

あとメモリは買わないといけない。(HDDは持ってる)。 アマゾンで DDR3L の 8GB が 4300円 ぐらいだったので、これもポチった。

    このマシンではないが、HYSTOU FMP06 N3160 でググるといくつかレビューが見つかる。BIOS は、仮想化に対応している・・・当然か。BIOS の設定がやたら多く、デフォルトが適切ではないらしい。要注意。

      Over Clocking mode
      Boot Performance mode
      EIST ( Enhanced Intel Speedstep Technology
      このへん。
      あとデバイス関係が、無駄に enable されてるらしい。

    熱が籠るという問題もあるらしい。内蔵 mSATA が熱暴走とか。BIOS の設定も関係ありそうなんだが、気にかけておこう。もし問題が起きたとしたら、ケースの放熱を良くすれば良さそう。ヒートシンクをケースに張り付ければ良いのではないかと思う。12W だし普通に使う分には問題なさそうだが・・・


追記 2/28 発注 3/5 到着

付属品は、SATA 電源ケーブル, SATA ケーブル, AC アダプタ (12V 3A), VESAマウント用の鉄板, CD , ユーザマニュアル、保証書、マウスパッド(緩衝材?)

OS を何にするかは、考え中。Oracle Linux 7.6 が候補。? RHEL クローンの1つで、ARM 版もあるし。ソースRPM も iso ファイルで手に入る。(2枚組)。私のネットワーク環境は貧弱なので、どこかで一気にダウンロードしたい。そうするために都合が良いのである。ARM も込みだと 6枚。

x86_68 版は、ISO を USBメモリに焼くには、rufus を使うと良いらしい。

    ARM 版は、どうするべきか? 先にインストールした PC の Linux で、rpm を 空の FS にインストールしていく。u-boot とカーネルは armbian のものを使う。かなりの手間だが、以前にやったことがある。なんとかなるだろう。

    CentOS の ARM 版は、Disk イメージがあるので、rpm のセットを参考にしても良い。なぜ CentOS をそのまま使わないかと言うと、作業を通じて何が入っているのか把握したいため。

     ・http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/7.6.1810/isos/

ダウンロードをようやく完了した。あとはボチボチやっていこう。続きを読む
posted by すz at 22:28| Comment(0) | TrackBack(0) | 日記

2018年12月22日

Nanopi M4 用ボード

記事が2つになってしまったので、しきりなおし。

Nanopi M4 を買ったわけだが、アドオンボードというか HAT ? を作ろうとした。余白に思いついたボードもつけ加えた。

M4_PWR_SATA_v12s.png

一回というか、2回発注したのだが、暇だといじってしまって現状はこうなってる。(未発注)

M4-PWR-SATA

    左側のボードは、HAT で、12V → 5V (5A !) の電源回路 と 電圧・電流モニタ。それに PCIe SATA x2 , USB 2.0 x2。
    ASM1061 を採用し、カン!で回路を起こした。・・・というのはあながち嘘ではない。実際は、データーシートの説明と、他のボードを眺めて回路を決めている。動くかどうかは分からない。
    ファームウェアは入手済み。一応 3.70 を添付。ROM データを GPIO から SPI-FLASH に書けば良いはず。

DP-SATA

    右のボードは、JMS567 を採用した USB3.0 - SATA ブリッジ。普通のボードと違うのは、USB3.0 のコネクタには、Super Speed の配線しかせず、USB2.0 は、別のコネクタに配線している点。Dual Port 化が出来るんじゃないかと考えて 設計してみたもの。もちろん、動くかどうかは分からない。
    ファームウェアは update tool を入手。PC と接続すれば書き込めるはず。

概要説明 おわり。続きを読む
posted by すz at 19:22| Comment(85) | TrackBack(0) | SBC

2018年12月15日

JMS578/JMS567 USB3-SATAブリッジ

JMS578/JMS567 という USB3-SATAブリッジチップがある。USBディスクなんかでよく採用されてて有名なもの。まともなデーターシートなど入手できないが、回路図はあるのである。続きを読む
posted by すz at 15:41| Comment(59) | TrackBack(0) | 日記

2018年12月07日

Nanopi M4 購入

RK3399 のボードを買おうかとずっと思っていたのだが、Nanopi M4 にした。

基本的には、ビルドしたりするだけのサーバマシンの用途。CPU が高速でメモリが多いものを希望していた。
I/O は、GbE は必須として、ストレージ。native SATA が良いことは良いのだが、USB 3.0 なら別に問題ないだろうと。そう割り切ると Nanopi M4 は、HUB 内蔵で 4 ポートも使えるので魅力的。

また、Nanopi M4 は、専用ヒートシンクがでかい。RK3399 にはヒートシンク必須だと思うが、自分であれこれするのも面倒だし、かなり魅力的に思える。

決め手になったのが、Black Friday セール。ギリギリになって気が付いた −− 日本では既に土曜日。深く考えずにポチってしまった。

一応お安かったようである。4GB + ヒートシンクで $86.98 + 送料 $7 。今の値段は $101.99 + 送料。

(続く) 
続きを読む
posted by すz at 14:21| Comment(114) | TrackBack(0) | 日記

2018年02月18日

SBCメモ

興味がある SBC に関してのメモ

シングルボードコンピュータ(SBC)というとラズベリーパイが有名だが、コスパという点では他の SBC で良いものが多数あるようだ。メジャーではないから使うのに骨が折れそうだが、armbian が対応しているものであれば、基本的な使用では問題なさそう。

コスパと言っても2通りある。高機能なものと、格安なものである。

高機能なもの:

最近の SoC だと、Allwinner H6 , ROCKCHIP RK3399 を採用した SBC がぼちぼち出てきている。この 2つの SoC は、PCIe を持っている。それ故に、ボードデザインの自由度が高く、これが良いというのがなかなか難しい。サーバ用途では、ODROID-N1 が良さそうだと思うが、発売は 2018年夏ごろ。また、armbian も先の話のようである。

    rockchip
    RK3399: Cortex-A73 x2 , Cortex-A53 x4 2.0GHz GPU Mali-T860MP4
    RK3399Pro: RK3399 + 2.4 TOPS Neural Network Processing Unit (NPU)
    RK3328: Cortex-A53 x4 1.5GHz GPU Mali-T450MP2

    allwinner
    H6: Cortex-A53 x4 1.8GHz GPU Mali-T720MP2
    H5: Cortex-A53 x4 ? GHz GPU Mali-T450MP4
    H3,H2+: Cortex-A7 x4 ? GHz GPU Mali-400MP2


    ODROID-N1:PC っぽく見えるが、基板サイズは 90mm角

現時点で使え、最低限の機能として ギガビットイーサ(GbE) と ストレージ用に native SATA または USB 3.0 、2GB 以上のメインメモリ というのを考えると、RK3328 を採用した ROCK64 が良さそうに思えてくる。秋月で購入できる点が高ポイントで 4GB モデルまである。サーバーとして十分な機能だと思えるが、SoC には、ビデオエンコード/デコード 用の VPU がある。これが使えるかどうか? GPU は、Mali-450MP で、X で GPU が使えるかどうか? (openCL は使えない) 。このあたりに興味がある。また 128Mbit (16MB) SPI FLASH を備えており、microSD なしで ネットワークや USB DISK からのブートが出来そうな感じ。この SPI FLASH を安全に書き換えられるか? というのも要調査。
それ以外だと ODROID-HC1/HC2 という NAS専用とも思える SBC がある。悪くはなさそうだが、GbE が USB 3.0 接続なのが気になる。


    ODROID-HC1: 2.5in DISK と一体化する形状。HC2 は、3.5in DISK 用

    ROCK64: Rasberry pi サイズ。

私としては、現時点では ROCK64 推し。ゆっくり待てるのであれば、H6 , RK3399 採用のまだ出ていないボードということになる。あと H6,RK3399 は openCL が使えるかも知れない、楽しみな要素がある。さらに、NPU 付きの RK3399pro というチップも控えている。

    推しと言っても用途を明確にしておかないと意味がない。私の場合は、ファイルサーバーと開発用にビルドが出来れば良い。出来れば仮想化も使いたいが必須ではない。ディスプレイも多分つながない。

    ついでに書くと、ROCK64 は、消費電力が大きそうだ。12V 〜 19V の ACアダプタを使い、DC/DC コンバータで 5V の降圧して供給するのが良いと思われる。aliexpress で $1 - $2 で購入できるのでお勧め。("XL4015 5A" で検索)。
    発熱も大きいだろう。ボードを覆うほどの大きなヒートシンクを付けたいがどうしたものか。邪魔な部品が多数あるので、絶縁を兼ねて 厚めの熱伝導シートを敷いたうえで、ボードの穴を利用して固定するのが良さそうではあるが、ヒートシンクの加工が大変そう。


格安なもの:

格安というと Allwinner H2+ を採用したボードが安い。別ブログで推しているが、Orange pi Zero, Nanopi DUO あるいは TV BOX の Sunvell R69 が良さそうである。特に Nanopi DUO が 電子工作的に面白そうなのである。また microSD カードなしで使える可能性もあり、そうなると 使い方によっては さらに格安感が出てくる。格安ではあるが、VPU も付いている。これが使えると さらに面白そうだが、要調査である。Sunvell R69 は、メモリ1GB eMMC 8GB に HDMI 出力あり。一応サーバーやデスクトップにも使えそうなのだが、ひと昔前のスペック。何にでも最高スペックを求める必要はないので、場合によっては 最適解になりえる。Orange pi one (512MB , HDMIあり $9.99+送料 $3.11)と比べると、メモリが増えてケース付き+おまけでリモコン、ACアダプタ。さらに eMMC 内蔵で microSDカード いらず。


    Sunvell R69:

    Nanopi DUO

    今見たところ Orange pi Zero は値上げされて、256MB モデル $8.49 + 送料 $3.41/512MB モデル $10.49 + 送料 $3.41。Nanopi DUO は 送料若干値上げ? 256MB モデル $7.99/512MB モデル $11.99 変わらずで、 送料 1個 $5 , 3個まで $7。
    Sunvell R69は、gearbest が安く 今は 送料込み $20.48 だが、在庫がつきかけている。

さて、Orange pi Zero, Nanopi DUO は R69 とは趣が異なる。デスクトップには使えないしサーバーにも適してない。やはり組み込み系用途が良さそうな感じで、電子工作でなにか装置を付けたりするのが、向いてそうである。SPI FLASH にプログラム全部を入れて、スタンドアローン あるいは PC の周辺機器みたいな使い方が良さそうなのである。
そして、そういう使い方をするためには、なにか相当な工夫が必要そうである。逆にそれゆえに興味がわくのだ。
PC の周辺機器という観点でいうと microUSB は、OTG でデバイスになれる。ただし、5V2A ということになっており、普通のPC の USB で使うのは無理がある。だが、いろいろ設定したり、改造することで 500mA 以下に出来るように思う。アイドル時は 100mA 程度に抑えられるという情報もあるし、多分いける。 そうなると、あらゆる USB 機器が範囲に入ってくる。極端な話、単なるシリアル変換でも良いのである。$8 であれば、FTDI 並みの機能を持たせれば 十分実用になりそうである。
問題なのは、どうやって作るかである。Linux のモジュールとして作れば、いけるのは分かっている。しかし Linux に精通していないとトラブルが起きるだろう。Arduino + FreeRTOS 的 API を 用意して 組み込み系のプログラミングで作れるようにしたら、どうか? --- と、こういうことを考えていくのが楽しそうなのである。

    ベアメタル・プログラミングという解もあるかも知れないのだが、一から作るのはもう面倒なのだ。最低限の動作をさせるまでの道のりが長く、そこまで行くまでに興味が失せてしまう。次の解として、U-boot に機能を追加していくという手がある。これはアリだと思うが、Wifi を使うところまではたどり着けないだろう。Linux であれば、ハードウェアのフル機能を利用できそうである。ただし、今度は環境づくりが大変になりそうだ。microSD を使うのであれば、フルディストリを入れても良いわけだが、そこは拘りたい。SPI FLASH だけで動作可能な範囲で考えたい。

これらについて、なにか進展があったら書いていくかも知れない。


Sunvell R69 について

TV BOX は、いろいろあるが、Blink X2 だけが armbian で正式サポートされた。Sunvell R69 はこれにかなり近い。Blink X2 のイメージや、Orange pi zero のイメージが(問題があるにしても)一応動いてしまうらしい。お手軽にサーバーにするには有望な機種である。

技術情報:sunxi.org R69
野良 armbian : google drive
 - Armbian_5.34 Ubuntu, Armbian_5.34 Ubuntu_desktop,
 - Armbian_5.41 Ubuntu, Armbian_5.41 Ubuntu_desktop,
 - ビルドソースの tarball
github : Sunvell R69
 - ビルド方法 (kernel, u-boot)
フォーラム: https://forum.armbian.com/topic/4877-h2-sunvell-r69-android-tv-box-aliexpress/

ショップ:GearBest

Nanopi NEO について

ブレッドボードにも刺せる形状で、電子工作向け。Mini Shield というアクセサリがあり、ラズベリーパイ的な形状にもなる。ついでだが、ばらばらで買うよりは スターターキットの方が安くなる。50mm x 25mm というサイズだが、立派な SBC であり armbian も対応。それ以外に オフィシャルROM とソースコードが公開されている。

技術情報:friendlyarm.com Wiki
オフィシャルROM : MediaFire (Doc , Source, Toolchain あり)
armbian : armbian 公式
フォーラム:https://forum.armbian.com/topic/5035-nanopi-duo-plus-mini-shield/

ショップ:friendlyarm.com

http://linux-sunxi.org/Bootable_SPI_flash

SPI flash についての情報はここにある。microSD からブートする SBC であれば、SPI FLASH に書き込むのは容易である。通常優先順位が microSD > SPI FLASH になっているので 文鎮化する心配はない。

さいごの手段として、http://linux-sunxi.org/FEL という方法まである。USB OTG からのブート手段で、やり方さえ確立してしまえば、こちらの方が容易かも知れない。要調査。

    FEL では、u-boot や kernel + initrd をダウンロードして起動することが可能になっている。ただし、FEL 有効にできる機種のみが使用可能。

    1) recovery or uboot or fel ボタンを押して電源ON
    - R69 には、uboot ボタンが付いている。多分使用可能。
    2) POWER key + FEL key(VOL+)
     Press and hold the suspected or reported FEL key.
     Press and hold the power key for about 2 seconds.
     Release the power key, and press it at least 3 times immediately.
    - タブレットしか無理

    http://linux-sunxi.org/MicroSD_Breakout
    ブートで、microSD が必要なくなると、SD カードの信号線を UART または JTAG に使えるとのこと。その為のアダプタも購入可能。



H3,H2+ の HW encoding,decoding について

Cedius - Cedrus is a linux-sunxi community project
ここが VPU サポートの本家らしい。

HW H.265 And H.264 Codec On H3 より

 https://github.com/uboborov/ffmpeg_h264_H3
 To give you some idea, I get ~24FPS encoding 1080p h264 into 1080p h264 using cedrus.

良く分からないが、H3 で動く実績があるようだ。H2+ は、H3 とほぼ同じだそうなので、格安ボードでも使えるのだろう。

    ちょっと見たがあまり把握できてない。Cedrus 自体 は、
     https://github.com/linux-sunxi/sunxi-cedrus
    これらしいのだが、ベースは rockchip VPU driver v3 ???
    --- ということは、ROCKCHIP系も有望ということか?

その他 cnx-software.com の記事の追記
On a separate note, somebody has recently released ffmpeg 3.3.4 with open source Cedrus driver for Allwinner video processing unit, and tested with Allwinner R40 and A64 SoC. Code and package can be found in github.
 ・ https://github.com/avafinger/ffmpeg-3.3.4_cedrus264


Rockchip の VPU サポートについて

フォーラム:https://forum.armbian.com/topic/4806-the-vpu-driver/
github:https://github.com/Miouyouyou/rockchip-vcodec

This repository goal is to focus on this Rockchip VPU driver code in order to use it with 4.13 kernels and onward.

Most of the code is written by the Rockchip engineers, in the rockchip_forwardports repository initiated by phh, and updated by wzyy2, and in the kernel 4.4 patched and maintained by Rockchip.

ここに RK3288 の VPU のドキュメントがある。ROCKCHIP の技術者が開発し、ドキュメントまで公開されているとは! RK3288 というと ASUS Tinker ボード 。ただし、ROCK64 の RK3328 には対応していないような。。。

http://opensource.rock-chips.com/wiki_Main_Page
公開資料は、ここ。RK3399 の テクニカル・リファレンス・マニュアル(TRM)まであるが、VPU の資料はないようだ。

https://github.com/Kwiboo/linux-rockchip
こちらは、完全な linux ソースツリー。4.4 だからより新しい。

    Performance h264/hevc(hdr) decoding 4k60@RK3328 (rock64) - GitHub

    こんな issu があるぐらいだから、全然というわけではないようだ。



以上、興味があるボードについての基本的な情報を調べてみた。

まぁ高性能な開発用ビルドマシンというのは、欲しいところであるが、これは別途考えることにして、当面は、H2+ のボードだけでやっていくのも良いかも知れない。ビルドなどは GCC がほとんどの CPU能力 を消費する。I/O も大したことはないので、高性能なボード1つよりは、H2+ 多数の方が高速になるかも知れないのだ。LD -- 最後のリンクだけは、消費するのはメモリである。メインの SBC はメモリが多いほど良い。

多数の H2+ SBC をネットワークでつなげる必要があるわけだが、禁じ手としては Wifi を使うという手がある。シールドしたケースの中でローカルネットワークを組めば良い。これは法的な問題の回避以外に、電波が込み合う問題の回避にもなる。
そこまでしたくないならば、USB OTG でネットワークを通すという手がある。この方法の問題は電力供給である。HUB としての機能を持ったうえで、多大な電流を供給できなければならない。これについては、考えることがあって、基板を作ろうとしている。

    実は、Ether net で Nanopi DUO を相互接続する基板も設計した。これでも良いのだが、製作がちょっと停滞している。基板など安く作れるので、別のタイプも設計したのだ。

    USB コネクタ5個。5V3A DC/DC コン3つ+α 搭載可能! HUB IC は有名な安物で 100均の HUB からも取り出し可能。電源は 12V 〜 19V 60W 程度を想定。Nanopi DUO で制御し、100M Ethernet に接続可能。

もともと電力供給は悩みのたねではある。Anker 等 USB急速充電器 を買えば済むのだろうが、機器の自動検知というのが気になる。上記の DC/DC コンバータを並べて、12〜19V の AC アダプタで供給するのが良いと思う。60W AC アダプタ なら 2 つ並べて 5A x2 。4 〜 6 台の供給が出来そうである。90 〜 100W の AC アダプタもあるわけだから、3 つ並べて、6 〜 9 台もいける。AC アダプタにさえ PSE マークがあれば、法的にも問題にならないし安心である。

さて、こういう構成を考えたときに、動画エンコードシステムというのも、利用範囲に入ってくる。実用としはあまり興味がないのだが、出来るのであればやってみたい。




PINE_H64.jpg

追記: 高機能な SBC はいろいろと出てくるのだが、その中で PINE H64 が気になって来た。1GB $25 , 2GB $35 , 3GB $45 と ROCK64 に近い価格。スペック的にあまり違いはないが、mini-PCIe が付いている。
armbian が出るのが前提だが、mini-PCIe を使って SATA ポートが拡張できれば ROCK64 より良いかなと。また、基板が大きくなって コネクタが前後2面に集約されている。私的には好ましい。

    mpci-sata-AMS1061.jpg

    mini-PCIe だが、こんなボードがあった。$8.16 で比較的安価だが、SATA-PCIe ブリッジチップは、ASM1061 というもの。-- 評判はあまり良くないような ...

    mpci-m2.jpg

    他には、M.2 に変換するボード。これはさらに安く $1.51 のものがあった。

PINE H64 で気に入った点としては、SDIO サブボードが付けられるというところ。wifi モジュール用だが、電子工作で自作したボードが付けられる可能性がある。実際には付けたりしないのだろうが、わくわくする。

ついでに書くと 128Mbit SPI FLASH が付いている。これは u-boot にしか利用しないと思うが、DISK からの boot という可能性が出てくる。

あと H6 は、GPGPU が出来る可能性がある。ROCKCHIP だと RK3399 まで待たねばならない。ROCK64 は無理。RK3399 は、確かに高機能な SoC だが、採用ボードが高価になる傾向がある。また発熱も大きいようで、大きなヒートシンクが必要なようだ。続きを読む
posted by すz at 10:35| Comment(109) | TrackBack(0) | SBC

2015年05月30日

格安BTキーボードを買ってみた

android 用の bluetooth キーボードが気になって調べてたら、aliexpress で、送料込み $7.77 のキーボードを見つけた。随分怪しげなんだが、ものは試しと買ってみることに。


例によって2つ買ったのである。下のやつは違うショップで、カラー版。安い方は 白 or 黒のみ。

最初にかいておこう。$7.7 の方は、AB1112 採用の 新しいタイプ (BT3.0 対応)。F1 に虫眼鏡がマークされている。カラーの方は、RDA5871 採用の 古いタイプ(BT2.1 対応)。虫眼鏡は F2 。裏のアルミがペラい。いずれにしても、剛性が足りない。木板を張り付けて補強することを薦める。




こんなやつ。どうも中華には、このキー配列のものが多い。このタイプが安いが、それ以外に、同じキートップでケースになるやつだとか、いろいろある。


キートップの刻印は3通りあるようだ。Android/Windows 用と iOS用、そして古いタイプ。機能は同じようだが使ってみないことには分からない。カラー版は古いタイプで、中のチップまで違う。

Fn+Q(Android), Fn+W(Windows), Fn+E(iOS) でキーマッピングが変えられる。はやりのマルチデバイス対応ではないと思う。たぶん、一番上の Fn + の機能が変わるだけで、Windows だと ファンクションキーになるのだろう。iOS用キートップは、切り替え機能の刻印がない。固定かも知れない。

このキー配列が好みに合ってそうな気がしてきて欲しくなった。自分に合えば長らく使うことになりそう。

赤札天国でも、売っているこういうタイプのも。



後で色々調べてみたが、$7.77 だと 1000円弱だが、そう格安というわけでもないようだ。2000円までのものが国内でも結構ある。気になったのは、ポケモンキーボードで、かなり使いやすいらしい。ただ、少し大きいような気もする。また、やたら小さいスマホ用は使いにくいというレビューが多いみたいだ。

同日に申し込んだが、上のやつが先に到着した。10日に注文して 23日に到着だから、まぁ早いほう。

2015-05-20 00:00 Japan Arrive at Japan Airport-(Yanwen's Track End)
Original Country-Yanwen[SZAA008252670] To China Post Air Mail[YC66766xxxxYW]
2015-05-16 00:00 BeiJing Handled by Airline
2015-05-15 00:00 Beijing Internationg Mail Center Prepare to Dispatch
2015-05-14 00:00 BeiJing Arrived at Beijing Internationg Mail Center
2015-05-14 00:00 Beijing Internationg Mail Center Received
2015-05-12 20:00 ShenZhen Despatched from Yanwen ShenZhen Sorting Center
2015-05-12 18:00 ShenZhen Arrived at Yanwen ShenZhen Sorting Center

中国郵政 Small Packet By AIR で、記録上はこうなってる。

充電しつつ 接続しないで、キーを押したりして どんな感じか確かめ。キータッチはそんな悪くない。ただ、非常に軽いんだが、剛性が全然ない。好みではないので、補強とかしてみたいような ... 。

次に接続を試みた。... これが全然つながらない。ちゃんと "Bluetooth 3.0 Keyborad" と名前が出るのだが、PIN コードが正しくないとかなんとか。Android の方をいろいろ変えてもダメだった。

Windows でも試した。最初はランダムな数字を 接続するキーボードで入力せよと出ていたが、後で 入力BOX が出るようになった。何を入力すればよいか分からなかったのだが、ここで入力した数字を接続するキーボードでも入力すれば良いらしい。0 でも良いらしいので試したら、遂に接続できた。

接続してようやく分かった。入力できないキーがやたらにあるのである。数字は、0 と 9 のみ。あとはダメ。アルファベットは、"pgklvbnm" のみ。スペースもダメで、カーソルキーは OK 。

要するに不良品である。早く着いたので、喜んで Confirm 押しちゃったし、最初からワケアリだと思ったし。ここは一回クリーニングしてみようと思う。

さあ、分解。


中にキーボードのモジュールが入っているのではなく、ケースがキーボードの一部。裏側も金属板が入ってないから、底面のアルミ板も剛性確保に必要なパーツとなっているようだ。フィルムケーブルの厚み分を逃がす仕組みはないから、キーによって、打ち味が違うかも知れない。

基板は、ネジで止まっているが、ネジをわざわざ潰してある。あと、見慣れた QC pass のシールはない。裏板がアルミだが、基板との絶縁はされていない。底板を曲げて接触させないよう注意だ。



ラジオペンチで外して、記念撮影。メインのチップが、BT のアンテナと、キーボードにつながってる。キーボードのケーブルはちゃんとコネクタで接続されている。基板の設計は新しい。20141208 と記載されている。

さて、なにが出来るのだろう。ケーブルの抜き差しは、全く効果がなかった。基板から見えているテストパッドのような所を適当にショートさせると 入力できなかった文字が入力された。接触不良がどこかにある。

aliexpress では、Confirm した後もメッセージが書ける。ダメもとで 不良品だったと書いたら返事がきた。進展があるかも知れないので、破壊するような所業はおあづけ。

交換はするつもりはないので、(元には戻せないのを覚悟して)キーボードを止めてるプラスチックを外そうと思っている。マトリックスを記録するのだ。清掃なりして再度トライ。やはりダメとなったら、電子工作で変てこなキーボードを作るかも。その場合、底のアルミ板を(今だ来ていない)もう一つのキーボードの補強に使うつもり。
さらに、カラー版のキートップが iOS用だったら 交換するかも。機能まで iOS専用だったら 基板も交換という手があるか。意外とこのジャンクは役立つかもしれない。

すぐに返事が来た。新しいやつを 送ってくれることになった。ダメなやつは、好きにして良い!



止まっているところを全部切り取って外し、キートップも外したところ。
予想に反して、キーボードはモジュールだった。配線パターンがなにか変、黒いところが所々ある。断線してたりするのかも。

水を少しこぼして放置すれば、パターンが腐食することもあるそうだ。その人は、NICKEL CONDUCTIVE PEN で補修したそうだが ... パターンが複雑だったりしたら絶望的。



ぶっ壊して、マトリックスを記録。上の写真は、裏から撮ったものを左右反転している。右に伸びた線が下の写真の右につながっている。結構複雑な取り回しで、整理するのは大変。



キートップ裏。パンタグラフなのだが、構造が良くわからない。キートップの交換に使えると思ったが、付けたり外したりの練習して経験を積まないと壊してしまうかも知れない。

2つの部品がキートップ裏にきれいに収まっている。一回外れると、この状態にするのにも難儀する。精密な部品だから壊してしまいそう。


これは、iBuffalo のポメラキーボードで宣伝されている、パンタグラフの構造図。まさに、これと同じなんだが、支点がどこにあるかとか、良くわからないのだ。

おまけ




これは基板に載っているチップ。左がメインチップで、Bluetooth のアンテナパターンとキーボードが接続されている。



これを見ると、AB1112 は、キーボード専用のチップ。外付けの EEPROM が付けられる。おそらく右の写真のもの。これに入っているものは、単なるキーマップなのか?それとも ファームウェアなのか? 型番 24C64 から見て 64kbit (8KB) 。たぶん秋月とかで売っている 24LC64の系統なのではないかと。もしそうならば、外して読みだすなんてことも可能。電子工作的には、楽しめそうな素材。

専用チップなので、たぶん上記の性能がちゃんと出る。消費電力的にも優秀な印象。

ちょっと見たが、同じ 8pin で VCC にはコンデンサ、SCL,SDA のところにプルアップ抵抗らしきものが付いている。I2C ROM なのは間違いなさそうだ。

もし、キーマップを自由に設定できれば、さらに楽しめる。気に入ったキーボードを bluetooh 化できるかも知れない。ちなみに、コネクタは 1mm ピッチ 26pin 。信号線は 24 本で、2pin は接続されていない。往年の HPC マシンのキーボードだけ流用するとか..面白そう。

少し近い AB1120 のデータシートは、入手できた。詳細は分からないが、I2C ROM にはまず、config 情報が入る。その config の設定にプログラムを指定するものがあるらしい。汎用OS のドライバのような構造っぽい。

あと、このチップは SPP にも対応してるし、UART も積んでいる。設定方法が分かれば、全く別の使い方ができる。全然情報ないから絶望的だが。

I2C ROM だが、外さなくても読めると思う。多分電源投入時に読み込んでしまうはずだ。その後は空いているから、コマンドを送れるだろう。また、ロジアナなんかがあれば、読みだす場所と順番が分かるかも知れない。そうであれば、解析の情報になる。

キーマップ解析




写真を見て、キーマップを解析しておこう。

まず、信号名を決める。右側の線を上から A,BC,DEF,GHIJ としよう。よく見ると A と F は接続されているだけ。A=F なので注意。右下のケーブルは、数が多い。左の9本を 1-9 、右側は、上記の A-J を除いて abc .. と付けていく。信号線は、上側が BCDEGHIJ と 8本ある。下側は、1-9, a-f,F で 16 本。

ピンとのマップ (+正式信号名)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1 2 3 4 5 6 7 8 9 a b c d e B C D E F G H I J f
C00 C02 C04 C06 C12 C10 C09 R0 R2 C15 R6 R7
C01 C03 C05 C13 C11 C14 C07 R1 R3 R4 R5 C16
キーマップ
ESC 1 2 3 4 5 6 7 8 9 0 - =
B5 C5 C6 C7 C8 B8 B9 C9 Ca Cb Cc Bc Ba

TAB Q W E R T Y U I O P DEL
E5 D5 D6 D7 D8 E8 E9 Db Da D9 Dc Ee

CAPS A S D F G H J K L ; ENTER
E6 G5 G6 G7 G8 I8 I9 G9 Ga Gb Hc Gc

LSFT Z X C V B N M , . RSFT
E3 H5 H6 H7 J8 J9 H9 Ha Hb Jc He

FN CTRL ALT WIN SPACE / \ UP
G1 B4 E2 I1 IF Ec Ea Id

LEFT DOWN RIGHT
Jd JF Jf

C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
1 2 3 4 5 6 7 8 9 a b c d e F f
R0 B CTRL ESC 5 6 = -
R1 C 1 2 3 4 7 8 9 0
R2 D Q W E R O I U P
R3 E ALT LSFT CAPS T Y \ / DEL
R4 G FN A S D F J K L ENTER
R6 H Z X C N M , ; RSFT
R5 I WIN G H UP SPACE
R7 J V B . LEFT DOWN RIGHT
1 2 3 4 5 6 7 8 9 a b c d e F f
C00 C01 C02 C03 C04 C05 C06 C13 C12 C11 C10 C14 C09 C07 C15 C16
(目視でのみ作成:未チェック)

まとめ


格安ではあるが、不良品をつかまされた。分解したところキーボードのフィルムに断線もしくはショートがある模様。再送してくれることになったが、同じロットならこの部分の品質が悪そうだ。良品でもすぐにダメになるかも知れない。

ジャンクとして見れば、基板は使えそうだし興味深い。300円なら良かったんだが。

ただ、まとめるにはまだ早い。2つ目も到着してないし、再送品も受け取ってない。到着しだい追記予定。

2つめ



Number: FTL0045xxxxMY
Status: Transit
Destination: Japan
Origin: China
2015-05-28 16:52 MPC PMIH (KLIA), Item Arrived at Japan
2015-05-26 18:58 MPC PMIH (KLIA), Item Sent to JAPAN
2015-05-26 16:45 MPC PMIH (KLIA), Item Posted Over The Counter to Japan
2015-05-25 16:31 MPC PMIH (KLIA), Dispatch PreAlert to Japan
2015-05-20 06:08 FLYTEXPRESS-CN, Processed Through Sort Facility
2015-05-20 06:08 FLYTEXPRESS-CN, Processed Through Sort Facility
2015-05-19 15:16 FLYTEXPRESS-CN, Acceptance
2015-05-11 16:39 Customer, Shipping information recieved
======================================
Powered by www.17track.net

適当なトラッキング番号しか載ってなかったんで、メッセージを送ったら、土曜にも関わらず返事が来た。FLYT というところ。昨日日本に到着したようだ。速攻で手続きはしたようだが、送付まで時間がかかっている。

6/3 到着。普通は3週間みとかないとダメそうだ。



写真と違って、キーは黒。キートップは 上の2種類とも違う。
とりあえずは、Windows でペアリング。"bluetooth keyboad" と表示される。3.0 がないから、最初のものとは中身が違う。ちょっと古いバージョンかも知れない。

そして、重要なことは刻印どおりでないキーがいくつかある。詳細にしらべないと。

... これは、Windows の罠であった。多分英語キーボードの設定かなにかしないとダメなんだろう。Android で接続してみたところ、刻印どおり。
どう刻印どおりかというと ... Winモードでは Fn+数字は、ESC, F1 - F12。
Android モードでは刻印と同じ。KeyTest.apkで確認したところ。
ESC ホーム
F1 ESC
F2 SEARCH (84 217)
F3 ctrl A
F4 ctrl C
F5 ctrl V
F6 ctrl X
F7 MEDIA_PREVIOUS (88 165)
F8 MEDIA_PLAY_PAUSE (85 164)
F9 MEDIA_NEXT (87 163)
F10 VOLUME_DOWN (25 114)
F11 VOLUME_UP (26 115)
F12 電源OFF
(keycode scancode)

こういう結果であった。iOS モードは、Androidモードと少し違うだけのようだ。F3 で電卓が起動し、F4 で連絡帳が起動した。

その後、電源が入らなくなった。充電ランプは付くが動作しない。前のやつで経験したがバッテリーのケーブルが外れると同じ症状になる。本当に品質が悪い。

中身を空けたところ、バッテリーの電源はちゃんと来ている。壊れた?

バッテリーの電圧は、4.1v あって問題ないのだが、電源をON すると 0v になる。一度動いた基板が突然壊れるなど信じがたいが、4.1v あるバッテリーが弱っているとも思えない。どうしたものか。

しょうがないので、ダメだったキーボードとのニコイチ作戦に出た。基板そのものは、大分違うのだが、互換性がある。あと、バックパネルがペラペラなので、これも入れ替え。ペアリングして、チェックしたが全部キー認識した。OK。
FN キーの部分が刻印と違ってしまったが、気にしない。

再送分が来る!

2015-06-03 00:00 Japan Arrive at Japan Airport-(Yanwen's Track End)
Original Country-Yanwen[SZAA008359148] To China Post Air Mail[YC69146xxxxYW]
2015-05-30 00:00 BeiJing Handled by Airline
2015-05-29 00:00 Beijing Internationg Mail Center Prepare to Dispatch
2015-05-28 00:00 BeiJing Arrived at Beijing Internationg Mail Center
2015-05-28 00:00 Beijing Internationg Mail Center Received
2015-05-26 20:00 ShenZhen Despatched from Yanwen ShenZhen Sorting Center
2015-05-26 18:00 ShenZhen Arrived at Yanwen ShenZhen Sorting Center

これ、Arrive at Japan になって初めて出た。安心は出来るが意味ない。


キーボード台




黄色のキーボードを買った理由は、これ。
クラムシェルもどきのキーボード台を作ってみたかったのである。



まだ、試行錯誤中ではあるが、こうなってる。プラスチックのものは、ダイソーのスマホスタンド。これを曲げてこんな形にした。で、レールのようなアルミのアングルを付けて、3mm 厚のアルミ板に取り付けた。一応、キーボードを乗せれば後ろに倒れないようだ。

タブレットの取り付けは、ダイソーのマジックテープ。十分強力でテープの方がはがれそうになる。レールのようなものは、コの字型で、8mm x 5.5mm 。 3mm 厚のアルミ板に溝を切って差し込んでみた。

このアルミパーツをキーボードに貼り付けようかと思っている。そのためには、段差をなくす必要がある。また、これではキーボードの補強にはなってない。もう少し検討しないと。

ちなみに、このスマホスタンドは、かたさにばらつきがある。バネだかなんだかが弱いものがある。



結局補強は、木でやることにした。簡単に曲がらなきゃなんでも良いのである。とりあえず、ホムセンに行ったら、ファカルタ集成材というのがあった。120mm幅、5mm 厚のを購入。すごく柔らかいが、補強という点では、これでも十分だろう。アルミパーツの段差問題は、木に埋める方針。アルミパーツなしなら塗装などしないのだが、はがれて来そうなぐらい柔らかい。で、ウレタンニスとかいうのを塗ることに。結局高くついたのだが、趣味の品だから良いのだ。

他に、3mm厚 アガチス材 も買ってみた。これは、えんぴつなどに使われているそうだ。加工してみたが、すこし無理をすると割れそうな材質。まぁ、えんぴつと同じ。アルミパーツを付けるのは、1つだけなので、別のやつに使ってみる。

正確に加工されていて、曲がってないやつは、この2つだけだった。あ、MDF もあったか。 MDF では補強にならないと思って外した。

ちょっと重さを測定。本体 130g に対して 5mm厚 ファカルタ集成材が 37g。アルミパーツも 38g で プラスチックの スマホ台も 38g 。全部で 243g。 3mm厚 アガチス材 は 31g 。

その後:スマホ台のヒンジがゆるゆるになって、すぐ後ろに倒れるようになってしまった。交換可能なようにはしたが、思いのほか早かった。

スマホ台を破壊して中をみたところ、バネが入っていて、溝と出っ張りを押さえつけている。で、溝が摩耗してゆるゆるに。元には戻せないが、修理することは可能かも知れないのでやってみる。

黄色キーボード基板



電源が入らなくなったので、入れ替えた 黄色キーボードの基板。基板自体は、しっかりしている。I2C ROM (L24C64) の信号線がコネクタとして出ている。キーのマトリックスも信号名が載っている。さらに、TXD/RXD のテストパッドまで。
なかなか面白そうではあるが、チップは RDA5871 であった。にも関わらず、基板には AB1107 とかなんとかのシルクがある。

信号名を記録。C00 とか R0 とかになっている。

ところで、 RDA5871 だが、ググると色々と出てくる。こっちの方が改造とかしやすいかも知れない。このチップは、bluetooth 2.1 対応と少し古い。16KB までの I2C ROM に対応していて、そこに入れたコードで、機能をカスタマイズするタイプ。AB1112 と同じ仕組み。

改造するツールなども見つかった。
 ・https://code.google.com/p/rda5871-sdk/
これなど興味深い。HID にしか対応していないはずだが、SPP のファームウェアがある。リンク先には、ソースコードまである。


エレコム TK-FBI033BK


送料込み、1200円と安価なので、iPhone 4s 用のキーボードを買ってみた。pigu で使ってみたいのと、中身に興味がある。



スライドじゃなくて、パンタグラフのような構造。ケース部分を外すとこんな感じ。ダイキャストの金属部品が使われている。ケース部分を取って pigu を直付けしようかと思ったが、意外にもほとんど薄くならない。1mm ぐらいしか稼げないので、方針変更。ケースのホールドする部分を切り取って pigu のバックパネルを直接張り付ける。



分解したところ。基板の上に、タクトスイッチの接点が幅広のテープのようなもので、張り付けてある。上は micro USB の コネクタ。ちなみに、白い部分は何かちゃんと見てない。位置決め用のマスクのようにも見えるが、基板のシルクかも。

タクトスイッチの接点と言ってもわからないかも知れない。皿のような形状で押すとぺこぺこ凹む。内側にポッチがあって、そこと、皿の周囲が接点となる。これはタクトスイッチを分解しても出てくる。



基板の裏、バッテリーは 95mAH 。この基板一枚が主要部品で、見慣れたモジュールが載っている。AB1112 が載ってないかと、期待してたが違った。日付は 2011/11/17 で結構古い設計。

再度分解して、シール下の型番を確認したが、BCM20780 らしい。シリアルROM らしきチップも載っているが、型番見てもサッパリ。

一応レビュー。クリック感があるし、キーの中央は凸になってて、押しやすいかな。キー配列は慣れればなんとかなりそうな感じ。安く手に入れたとはいえ、高級感はある。ただ、常用するかどうかは分からない。


謎のセットぽちった



黄色キーボードを買ったショップを覗いたらこんなのがあった。値段は、$10.98 。

ハンドルリモコン と IRリモコン、時代遅れっぽい本体 ... という妙な組み合わせのセット。一応 MP3 プレイヤーだそうだ。

お目当ては、ハンドルリモコン。これは、bluetooth なのだそうだ。0000 でペアリングと書いてあった。これだけが欲しい。ただ、本体も bluetooth に対応しているわけで、ちょっと分解してみたい。

良くみたら、なんか違う。ハンドルリモコンは、多分 IR でしかも左ハンドル向け。本体が bluetooth でスマホと A2DP で接続できる。FM トランスミッタで、音をカーオーディオに飛ばすことが出来て、本体のマイクでハンズフリー会話も出来る。そういうものっぽい。予定が外れたが、まぁ面白そうだ。

"Headset Button ControllerTrial"とかいうアプリはあった。が、ハンドルリモコンのキーをフルカスタマイズできるようなものなのだろうか?やりたいことは、多分 Tasker に渡せるイベントを発生させること。で、Tasker で、アプリを起動したりしたい。

電子工作的には、例の余った基板を使い、IR リモコンの信号を受けたら、アナログスイッチで キーマトリックスの該当ボタンを押す .. みたいなものを作れば純粋な HIDキーボードになりそうだ。


3週間みておかないといけないから、忘れたころにレビュー予定。

ちょっとメモ



CScanCodeを確認する
 Key Testというアプリで、変更したいキーのScanCodeを確認してメモっておくScanCode: 数字の部分)
 ただし、fnキーとの同時押しがShiftとの同時押しと同じかどうかで扱いが違うので省略

DベンダーID、プロダクトIDを確認する
 要するにデバイスを区別するためのIDを確認する
 自分で確認しても良いけどBoxwave5sはVendor ID:05ac Product ID:023c
 別のデバイスとかならググってくれ

Eキーレイアウトを変更する
 E-1 .klファイルを作る
  一から作ることも可能だけどめんどいので、デフォルトのをコピーする
  多分どの機種も同じだろうけどZ1fだったら/system/usr/keylayoutにアクセスしてGeneric.klをコピーする
  ファイル名を"Vendor_○○_Product_△△.kl"に変更する
  ○○のとこはVendor IDで、△△のとこはProduct IDね
  Boxwave5sなら"Vendor_05ac_Product_023c.kl"
  OSは4.2でやったけど、この辺4.4だと処理違うかも
 E-2 .klを弄る
  ファイルの内容が"key ScanCode(数値) KeyCode(キーの名前、AとかMENUとか)"
  になってるから、Cで確認したキーScanCodeのところのKeyCodeを変更したいキーに変える
  ただし、fn同時押しが元々割り当てられてないところに新たに割り当てるとかは出来ない
  注意が必要なのはfn同時押しの操作がShift同時押しと同じもので、こっちを変更したい場合後で.kcmを弄る(今は省略)
  あと、アクサングラーブ"`"はアプリによっては全角半角に割あて出来る
 E-3 .klを設置する
  /system/usr/keylayoutにE-2で作ったファイルをコピーする

これでキーを無駄なく利用できる
自分が設定して便利だったのは
ZENKAKU_HANKAKU(日本語切り替え)
MUHENKAN(無変換、日本語入力アプリによるかも知れなけど英数カナ変換として使える
PAGE_UP,PAGE_DOWN とかかな

ここまでやれば、ハンドルリモコンの全キーをカスタマイズできるはず。

これなんだが、Mediatek の場合、言語と入力の設定で、"MTK BT HID" としか認識されない。複数のキーボードは接続できるのだが、システムには疑似キーボード1台と認識される。上の方法も使えそうだが、切り替えが相当に面倒。

 ・https://github.com/y10g/android_user-keymap_jp109keyboard
言語と入力の設定には、キーボード・レイアウトを設定する機能がある。(4.1 以上らしいが)。このレイアウトを追加するアプリのソースコードを提供してくれた人がいる。これを変更して独自のレイアウトを作るとかしても、好きな設定が出来るようだ。自動というわけには行かないが、こうすれば切り替えは出来る。

追記1 (2015/7/1)




現在のキーボード台(作成中) −2号機と3号機。
スマホ台がどうも弱いということで、ダイソーの竹製まな板とスマホ台2個を使って2号機を作った。まな板にスリットを切って、スマホ台を差し込んである。
だが、スマホ台がだんだん弱くなることが分かったので、全部木で作ったのが3号機。かたさを調節するためにEVAを差し込んでみようと思っている。
どちらも、ニスを塗ったのだが、まだベトつき感が残っているので使えない状態。

それはともかく、どちらも重いタブレットだと後ろに倒れるおそれがある。ウェイトを付ける必要があるかも知れない。
posted by すz at 10:43| Comment(115) | TrackBack(0) | android

2015年04月27日

MediaTekタブレット

MediaTek のスマホが随分と気に入ったので、タブレットを買ってみることにした。いろいろじった挙句に、飽きたらカーナビにするのが目的。最低限度カーナビにしたときに困らなければ良い。
条件としては、
1) MediaTek の Android 4.4.2 であること (+ROM が入手できること)
おそらく、4.4.2 であれば、BT子機になるだろう。ROM があれば、mtkbt が /dev/tun にアクセスするかどうかで分かるはずだ。カーナビでは bluetooth で接続したいのだ。消費電力を抑えたいのも理由の一つだが、親機側の操作も簡単にしたい。
また root が取れるのは確実だ。専用機にする場合には、要root である tasker を使って起動を自動化したい。
あとは、pigu のファイルを使ってカスタム化してみたり、弄ってみたいのもある。

2) 充電が常に追い付くこと。
カーナビでは、長時間使う場合があるから、バッテリが減っていくような機種は使えない。実際のところは、良くは分からないのだが、スマホ用が元になっている MediaTek だと消費電力が小さいだろうという期待がある。また、カーネルのコードを見た限り iPad 用 2.1A の USBポートに対応しているはずだ。多分大丈夫だろう。

3) IPS 液晶であること (+ 輝度の自動調整をサポートしていること)
IPS 液晶でないと日中は良く見えないだろう。それが原因で注意が散漫になったりしては危険だ。ここは譲れないのだが、 輝度の自動調整が必要なのかは実際のところよく分からない。

4) GPSの感度が良好なこと (+ できれば電子コンパス)
これも実機でないと良くわからない。機種によってばらつきがありそうで、ここはギャンブル。電子コンパスは走行してしまえば必要ないのだが、走り出しのとき逆を指したりするのを防ぐのにあったほうが嬉しい。ただ、安タブではほぼ絶望的。

5) 専用のハードケースもしくは、TPU ケースがあること。
自分の車は 2DIN のところは、ふたがしてある。ここに TPU ケースなどを張り付けると脱着が可能になる。見栄えも良い。ただ、専用機化するときに、バッテリを例の3セルニッ水に変えて置きっぱなしにしたい。そうであれば、脱着しないから直接貼り付けても良いかという気も。

6) メモリ 1GB
今時のタブレットは、256MB というのは存在しない。普通は 1GB なんだが、専用機なら 512MB でも良いんじゃないかとは思う。

こういうことを考えて探してみると、ベストマッチするのは、『Colorfly E708 3G Pro』あたり。価格も1万円と安いのである。なのだが、実際にぽちったのは、『原道 T3 N70 3G』なのであった。これは 512M だが、もう一段安く 8000円前後。安い方が無茶をする心理的障害が小さい。だが、決め手になったのは、4.4 の ROM をダウンロードできてしまったこと。もうこれでいいや -- いくつもダウンロードするのは嫌なのであった。


Vido T3-A4.4.2-20140929-EZ

ro.product.model=Vido T3_EZ
ro.product.brand=Vido
ro.product.name=Vido T3_EZ
ro.product.device=Vido T3_EZ
ro.product.board=m706_yd_n70_wsvga_dsi
ro.build.id=KOT49H
ro.build.display.id=ALPS.KK1.MP1.V2.11
ro.custom.build.version=M706-V30YDM4GN4GCN-WG03.WSVGA.MIPI.YLD.2M.N703G_EZ

多分間違いないだろう。mtkbt もチェック済みで、多分 BT子機にできる。

ここで ... 本当のことを言うとカーナビ用タブレットは、既に持っている。Nexus7 (Wifi 2013) で、だいたい条件を満たす。TPU ケースも貼り付けてあって、まぁちゃんと使えているのだ。BT 接続も pigu を親機にできている。ただ、面倒なのだ。脱着も root 化も。これを専用機化するのは気が引けるので、新しく買おうというのが主旨なのであった。だから、たぶん常設化するために色々やってみるつもり。ただし、慌てない。弄り回すのに飽きてから。

ところで、弄り回す件だが、こいつは大胆なことをやってみたい。framework 入れ替えたりなんでも出来るのに、polasma や pigu は抵抗があった。SIM を入れて運用してるし、せっかくの技適が台無しになるのが嫌なのである。これは技適は取ってない。3G どころか Wifi も憚られる。bluetooth なら ( 特に屋内ならば ) まぁ良いんじゃないかという気がしている。(そして車中は勿論屋内)

現物入手



現物は、まさに写真の通りのものだった。ホワイトのフロントパネルに黄色のバックパネル。フロントはビニールという質感で実に安っぽい、その上このシートが下に少しずれていて、下辺回りが少し浮いている。でもそんなに悪くない。わざと、おもちゃっぽく作ったという印象もある。
まずは、立ち上げていろいろ確認。

バッテリーは、30% であった。どれぐらいで充電できるのだろうか? INPUT 5V 1.5A とは書いてあるが...
それはともかく端末情報

モデル番号: N70 3G_EZ
Android バージョン:4.4.2
ベースバンドバージョン:(略) 2014/06/12

ROM はビンゴのようだ。商品ページは 4.2.2 とあったが、2014/11/18 版の 4.4.2 が入っていた。次に、BT機能を確認してみる。

BTティザリング -- OK
BT子機 -- OK

とりあえず安心した。あと気が付いたこと:

App Permissions が入っている -- Pigu と同じ
バイブレータは付いているが、すごく弱い
たしかに IPS 液晶ではあるが、フロントの(保護?)シートのせいで、横からの視認性は悪い。
バックライトのオプションには、Economical backlight があった。

Automatic brightness (明るさを自動調整) または Economical backlight (経済的なバックライト) をチェックすると、状況に応じた明るさに自動調整されます。

ということらしいのだが、望む機能なのだろうか?
Antutu

14715 だった。商品ページには 13000 と書いてあったが、それ以上の値なので驚いた。

充電時間
適当なのだが、30% - 75% になるのに 1.5 時間。
リブート時間
リーブートは、36 秒。シャットダウンはそのうち 5秒ぐらい。悪くはないが、今どきの水準だと、遅い方かも。
GPS をちょっと
なんかダメだぁ。androiTS で見ると、Pigu や Polasma は、屋内でも 8/9 とか。こいつは、屋外でも7/7。屋内だと 0/5 とかで一瞬 4/4 。
... と思ったのだが、蓋になにかアンテナらしきものが付いている。そして、このアンテナと接触するような端子が本体側にある。これをごにょごにょするとあるいは ... 。


ただ、何のアンテナなのか? ... どうも違うような。

拾ってきたMediatek系の回路図によると GPS は、50Ωで 2端子でないとならない。

ただ、同じ回路図では、こういう記載もある。いずれにしても 2端子。そして、蓋のアンテナは 2接点あるが、ショートしているように見える。

SPFT と MtkDroidTools


SPFT と MtkDroidTools を使っていつもの。ROM0 のバックアップは OK。次に MtkDroidTools で ROM0 を処理。MtkDroidTools は、MT8312 はフェイクで MT6582 だと言ってくる。何だろう?とは思ったが、ちゃんと処理できて CWM も作成できた。これで作った autoCWM も動作を確認。

これで安心していじることが出来る。

殻割り




アンテナは、内部にあった。これが Wifi/BT/GPS 用なのだろうか?ならば蓋のやつは 3G か。
で、このアンテナが感度悪いのだろう。手持ちのジャンクアンテナをケースの外につけたりすると良くなるかも知れない。それとも、GPS に周波数が合うアンテナを買って付け替えるか。

親機のGPSを使う


... と思ったのだが、Pigu の GPS を bluetooth を通して T3(N70 3G) で使えないものか? ... 探してみるとあったのである。
『Bluetooth接続によるGPS連動』
ここの説明によると、送信側アプリ『GPS 2 Bluetooth』 と受信側アプリ『Bluetooth GPS』があれば良いとのこと。これが可能ならば、スマートに使える。

で、やろうとしたら、T3(N70 3G) では、『Bluetooth GPS』がインストールできない。apk を持ってきてもダメ。pigu は OK なのだ。何が違うのだ? -- pigu ばっかり。いっそのことカーネル以外 pigu のファイルに差し替えてやろうか。

 ・http://sourceforge.net/projects/bluegps4droid/

探していったら、これが見つかった。一応使えるみたいだ。しかし、良く使われている『Bluetooth GPS』を使いたいものだ。pigu との違いも気になるし。

ところで、『Smart Unlock』なんてものも、見つけた。連絡帳に行先登録してあるから、ログインして使うのだが、ロックなしで使うのも怖い - 良いものが見つかった。しかも XDA版は無料である。


GPS増幅器


いままで、いろいろやってみたが、どうも思ったようには行ってない。ソフトでの解決は、試行錯誤が多く時間がかかる。そのうち面倒になってくるのだ。感度が悪いだけなので、、再放射アンテナ(RA-46) とかGPSアンテナ中継器(コリドー)という名称の装置を取り付けるのも良いのではないだろうか?

GPS の室内再放射アンテナがあると便利ですね。普通のアクティブ・アンテナを外に出しておいて(当然、LNA への給電は必要)、出力にパッシブ・アンテナを着ければ出来上がり。これで、私はやっています。

さがしてみると、こんな記述を発見した。なんか簡単そう。アクティブ・アンテナ(とコネクタ)を aitendo で買って、自作してみようかと。再放射側アンテナは、近距離だし適当なやつで済ませる。

とりあえず波長λの計算。L1 は、1575.42 MHz だそうだ。計算すると 19.0 cm 。同じく aitendo で売ってる 銅基板で、1/4 λ のダイポールを作ってみよう。ケーブルは長すぎるから切って直接ハンダづけ、電源も USB ケーブル切ればいいか。

ついでだが、GPS アクティブ・アンテナの底面は磁石になっていて、アースプレートにくっつけるのがダッシュボードなどでの使い方だそうだ。70mm角でも良いが、100mm〜150mm角のほうが良いらしい。

GPS その2


色々調べたところ、GPS にはソフト的な問題もあるらしい。

 ・ How to fix poor GPS on Mediatek phones

こんなページがあって、EngineerMode に入ってごにょごにょするらしい。のだが、いきなりつまずく。"Location Based Service" が有効にならないのだ。さらに Pigu と Polasma では、なにか違う。やはり apk を持ってきてあれこれやらないとダメそうだ。

その前に、apk を移植するには、odex ファイルを apk に戻す deodex というのをやるらしい。

 ・ 
[TOOL] Kamome tool for Windows - deodex tool for 4.4 KitKat


ここにあるツールで、4.4(Kitkat) と 4.2(JB) の deodex が出来るという情報を見つけてやってみた。Pigu , Polasma, T3(N70 3G_EZ) のすべてを deodex してしまう。




さて、Polasma と T3 の GPS チップはおなじようなので、Polasma から関係しそうなものを移植してみる。(system/misc/GPS_CHIP.cfg)
system/xbin/libmnlp_mt6582
system/app/YGPS.apk
system/app/LocationEM.apk

GPS その3



aliexpress.com で、ほとんど基板レイアウトが同じタブレットを見つけた。RAM 2G/ROM 8G で 4 core の MTK8382 と書いてあるが、多分詐称が入ってる。バッテリー 3800mAH ってのも嘘っぽいし、厚さ 6mm ってのもありそうにない。



そんなことより、内部写真。右下のアンテナケーブルのところに GPS アンテナっぽい何かがある。アンテナを置ける場所は限られているし、間違いないような気がする。で、T3(N70_EZ) の場合はどうかというと、液晶コネクタのところに変な基板パターンがある。このパターンがアンテナのつもりなのか、あるべき部品が載ってないのか分からないが、テストパッドが怪しい。ちょっと調べてみたい。



USB顕微鏡で写真を撮った。6 つのパッドの上から 2 つは NC 、一番下は GND 。で 3 つは、テストパッドにつながっている。これらは、コンデンサを通して GND につながる。... コンデンサは交流を通してしまうから 高周波系ではなさそうだ。残念。デバッグ用のシリアルとか?

いや。http://cincomasapp.com/gps-chinese-mobiles-step-by-step/

ここの人の写真は、なにか似ている。コンデンサじゃないかも。3つのうち両端は GND で真ん中とつなぐみたい。

テスターで容量を測定しようとしたら、両脇はエラーになった。真ん中は測定しようとするが 0uF 。両脇はインダクタ? ならば、両脇こそがシグナルで 真ん中が GND 。回路図を見ると 両脇を接続するような気がする。


こんな写真を見つけた。これは、Colorfly G808 の内部で、配置がおなじような感じ。で、コネクタにフレキが載っている。液晶のケーブルにも見えるが、位置的に RF 関係だから GPS アンテナだと確信した。N70 3G_EZ にはあるべきものがない!


「GPS フィルムアンテナ」でググるとこんなのが沢山見つかる。3 端子で TV と GPS に対応するアンテナで、車に張るもの。ただの長い導体で、共通の端子がある。イメージから計算すると、短い方の正方形の 一辺は、31.7mm 、外周 126 mm。ショートカットは 20mm ちょっと短くなる。

とにかく、導線をつなげれば、何かアンテナになるようだ。どんなものでもないよりはマシだろう。いろいろやった人は、λ/2 ≅ 9,5 cm が良かったらしいので、それぐらいの長さで検討。
posted by すz at 23:34| Comment(0) | TrackBack(0) | android

2015年04月12日

bluetooth 子機についての調査

Polasma は、bluetooth の子機になれない。SIM がなければ、消費電力の大きい Wi-Fi で接続するしかない。Pigu をルータにするとしても、両機とも待ち受け時間が短くなってしまう。これを、なんとかしたい。

一般的には、bluetooth の子機になれるのはタブレット。スマホにはあまり例がないようだ。不思議なことに Pigu は bluetooth の子機になれる。テストには使えるのはありがたいのではあるが、ルータとして使う予定なので 子機にしたいのは、Polasma なのだ。

最初のアプローチ


子機に出来るということは、PANU プロファイルをサポートしているということ。で、Pigu は、PANU をサポートしている。同じ MTK65XX でプロトコルスタックはたぶん同じ。これがどうなっているのか調べられると、なんとかなるかも知れない。ただ、Pigu は 4.4.2 で色々変わっているかも知れない。もう少し近いものはないのかと考えたのだが、Yoga タブレットがあった。SoC は、MTK6589 で、同じ MediaTek だから、プロトコルスタックは同じだろう。これも 子機になれるらしい。幸いなことに、needrom.com に 4.2.2 の ROM があった。 ちなみに、他社の BlueTooth は、bluez を使っている場合が多いのだが、MediaTek は独自の、プロトコルスタック を使っている。で、情報が少なくどういう構造かも調べられていない。

 ・ http://www.needrom.com/download/yoga-8-b6000/

それはともかく、これである。で、ダウンロードしてみることに。

中身は、SP Flash Tool でインストールするイメージであった。system.img も含まれている。喜び勇んで Linux で mount しようとしたが出来ない。調べてみたら、ファクトリーイメージは簡単な圧縮をしている場合があるとのこと。

 ・ https://code.google.com/p/usefulshellscript/source/browse/trunk/simg2img.py

これを使ったところ、通常の ext4 のイメージに変換できた。ここまで来るのに随分と苦労したが、全部略。とにもかくにも、スタート地点に立てた。

これをどうやって調べるのであろうか? とりあえず、Polasma とファイルを比較してみよう。

diff -ru で全部を比較し、目にとまったところをピックアップ。(+ が Yoga)

/factory_init.rc:
+ # BT
chmod 0660 /dev/stpbt
chown bluetooth radio /dev/stpbt

init.charging.rc:
+ mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack
+#need to check
+# mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system

# for ppp options file
- mkdir /data/misc/ppp
- chmod 0777 /data/misc/ppp
+ mkdir /data/misc/ppp 0770 bluetooth net_bt

- # BT relayer mode used VCOM
- chown bluetooth radio /dev/ttyGS2
- chmod 0660 /dev/ttyGS2
-
# bluetooth
mkdir /data/@btmtk 0770 bluetooth net_bt
chown bluetooth bluetooth /dev/hid-keyboard

@@ -1183,13 +1155,13 @@
socket bt.int.adp dgram 660 bluetooth net_bt
socket bt.a2dp.stream dgram 660 bluetooth net_bt
user bluetooth
- group system net_bt bluetooth net_bt_admin sdcard_rw inet net_admin nvram net_raw
+ group net_bt bluetooth net_bt_admin sdcard_rw inet net_admin nvram net_raw

/system/build.prop:
ro.build.characteristics=default
+ro.build.characteristics=tablet

# begin mediatek build properties
-ro.mediatek.version.release=ALPS.JB5.MP.V1.5
-ro.mediatek.platform=MT6582
+ro.mediatek.version.release=ALPS.JB2.MP.V1.17
+ro.mediatek.platform=MT6589

/ueventd.rc:
#MTK BTIF driver
-/dev/btif 0660 shell system

すべてを比較してこれぐらいなのであった。
Yoga は、MT6589 で同じシリーズであった。net_bt_stack というグループがあるし、BT子機は、サポートしてそうな印象。

# bluetooth power up/down interface
chown bluetooth net_bt_stack /dev/ttyHS0
chown bluetooth net_bt_stack /proc/bluetooth/sleep/proto
chmod 0600 /dev/ttyHS0
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt_stack /proc/bluetooth/sleep/proto

これは、多分 bluz の bluetooth だが、コメントから見るに、やっぱり子機用の group っぽい。


yoga/init.charging.rc: mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stac
yoga/init.rc: mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack
yoga/ueventd.rc:/dev/uhid 0660 system net_bt_stack
yoga/ueventd.rc:/dev/uinput 0660 system net_bt_stack

pigu/init.rc: mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack
pigu/init.rc: group system net_bt bluetooth net_bt_admin sdcard_rw inet net_admin nvram net_raw vpn net_bt_stack media_rw sdcard_r
pigu/ueventd.rc:/dev/uhid 0660 system net_bt_stack
pigu/ueventd.rc:/dev/uinput 0660 system net_bt_stack

polasma/ueventd.rc:/dev/uhid 0660 system net_bt_stack
polasma/ueventd.rc:/dev/uinput 0660 system net_bt_stack

pigu と yoga には、/data/misc/bluedroid がある。


どうやら bluedroid というのがキーワードらしい。ググると、以下の url が。

 ・ https://wiki.mozilla.org/B2G/Bluetooth-bluedroid

非常に重要なことが書いてある予感。なんでも、bluz と切り替えることも可能らしい。
Switch Bluetooth stack bewteen bluez/bluedroid
For version JB 4.2, if you want to use bluez on JB, you need to modify some files. See [Bug 911038][1]


で、bluedroid を動かすには以下のファイルが重要なようだ。

Gecko bluetotoh will run bluedroid now.

### replace_bluedroid_reply.sh
adb push audio.a2dp.default.so /system/lib/hw
adb push bt_stack.conf /system/etc/bluetooth
adb push bt_did.conf /system/etc/bluetooth
adb push stack.conf /system/etc/bluetooth
adb push auto_pair_devlist.conf /system/etc/bluetooth
adb push libbt-utils.so /system/lib
adb push libbt-hci.so /system/lib
adb push bluetooth.default.so /system/lib/hw
adb push bdt /system/bin
######## vendor #########
adb push libbt-vendor.so /system/vendor/lib


こういったファイルがあるのは、どうやら pigu のみ。ただし、全く同じというわけではない。

pigu/system/vendor/lib/hw/audio.a2dp.blueangel.so
pigu/system/vendor/lib/hw/bluetooth.blueangel.so
pigu/system/etc/bluetooth/bt_stack.conf
pigu/system/etc/bluetooth/bt_did.conf
pigu/system/etc/bluetooth/auto_pair_devlist.conf
pigu/system/lib/libbt-hci.so
pigu/system/lib/libbt-utils.so
pigu/system/lib/hw/bluetooth.default.so

bdt ってのは全くない。何かわからないが mtkbt だろうか?

strings pigu/system/bin/mtkbt |grep /dev
/data/@btmtk/devdb
/dev/uinput
/dev/uhid
/dev/socket/bt.int.adp
/dev/tun
/dev/ampc0
/dev/socket/bt.int.adp
/dev/socket/palhal
/dev/socket/paltimersock
/dev/socket/palinjectsock
/dev/socket/halpal

なにかそれっぽい。では、polasma や yoga にないかというとあるのである。

strings polasma/system/bin/mtkbt |grep /dev
/data/@btmtk/devdb
/dev/uinput
/dev/hid-keyboard
/dev/socket/bt.int.adp
/dev/btn
/dev/ampc0
/dev/socket/bt.int.adp
/dev/socket/palhal
/dev/socket/paltimersock
/dev/socket/palinjectsock
/dev/socket/halpal

strings yoga/system/bin/mtkbt |grep /dev
/data/@btmtk/devdb
/dev/uinput
/dev/hid-keyboard
/dev/socket/bt.int.adp
/dev/btn
/dev/ampc0
/dev/socket/bt.int.adp
/dev/socket/palhal
/dev/socket/paltimersock
/dev/socket/palinjectsock
/dev/socket/halpal

ただ、/dev/tun がない。/dev/uhid も。代わりに /dev/hid-keyboard , /dev/btn がある。入れ替えて動くかどうかは、非常に怪しい。また、yoga には、/dev/tun がない。やはりこれなのか?

ちなみに、ソースコードは、
 ・ mediatek/protect/external/bluetooth/blueangel/btcore/
こういうパスになっている。もし手に入るのであれば、ビルドするというのも手かも知れない。

だんだん分かってきた。blueangel とは、MediaTek 独自のプロトコルスタックでクローズソース。ファイル構造の類似性から bluedroid をベースにしているのだろう。

 ・ https://github.com/mozilla-b2g/platform_external_bluetooth_bluedroid

さて、Yoga の 4.2.2 は多分 BT子機にはなれないのではないか?
で、なんでも良いから 4.2.2 の MediaTek タブレットと思って探してみたら、Ainol があった。
ちょっと新しそうな Novo7 AX3 のファームウェアをダウンロードしてみることに。

... ダメだった。全部同じで /dev/tun を使っていない。おそらく 4.2.2 は全部ダメなのかも。 Yoga は、4.4.2 の update が出ているし、4.4.2 なら BT子機 になれるのだろう。

こうなると、Pigu の mtkbt を動かせないか? 先の B2G/Bluetooth-bluedroid ではいくつかのファイルをインストールするだけで使えるようだし、意外と依存性はないかも知れない。今のところ uhid がないだけみたいだし。uhid のカーネルモジュールを作れれば終わる話かも。

で、uhid を見てみたが、HID さえ Config されていれば良いらしい。カーネルビルド環境ないのだが、どうしよう。

gcc があるんだから、セルフで build すれば良いじゃないか ... なんてのは相当に甘かった。
いきなり grep -P なんてのでエラーになって、念のために いろいろ grep したら perl5 や python を使っている。これは無理。
posted by すz at 04:34| Comment(0) | TrackBack(0) | android