ADS-Bアンテナをベランダに設置してRaspberry Piからflightradar24/FlightAwareへfeedしよう

新年度です。


さて、MH370ですがインマルサットの解析インド洋に向かったという情報が出てきました。ハイジャックからコックピットで火災説まで様々な予測が出ていますが、FDR/CVRを見つけるまでは断言が出来ません。AF447はフランスがメンツを賭けて根性で探して2年後にブラックボックスを発見しましたが、MH370はどうなることやら。英語版Wikipediaブラックボックスが見つかっていない航空事故の一覧がありますね。

それはそれとして、アンテナを作ったりUSBケーブルを外まで引っ張るのに苦労したり、flightradar24にfeedしたりしたので、それをまとめます。

アンテナを作る

aitendoで売ってるTV28Tv2DVB-T(R820T)にはエレメント長118mm(実測)のモノポールアンテナがついてます。1/4波長モノポールと考えたら600MHz帯用ですか。ADS-Bの電波は1090MHz固定なので、折角なら専用のアンテナを作りたいところ。

ADS-B アンテナ 自作 [検索]

探すと、同軸ケーブル使ったコリニアアンテナを作るのが一般的な様子。しかし同軸ケーブル手元にないので買うと高いので却下。更に探すと、チューナ附属のモノポールアンテナ台座を流用した針金でコリニアアンテナを作った記事を発見。

RTLチューナ付属アンテナをADS-B(1090MHz)用コリニアアンテナに改造してみました: K's Memo-Random

これで行きましょう。データはSBS-1 & SBS-3 Mode-S / ADSB Virtual Radar : User Forum xx • View topic - How tu build antenna for sbs-1?にあるとおり。川端のデイツー行って2mmの針金を買ってきました。

上から193mm→直径20mmループ→206mm→直径20mmループ→187mm。針金をこんな感じにペンチ使ってエイヤと曲げてやります。
f:id:W53SA:20140406005650j:plain
縦長写真になっちゃうので横に倒しました。ちなみに隣は附属のアンテナ。

針金を適当にジグザグにして1mmぶんの太さを稼いだ後に高ナットへ叩き込み、元あったアンテナ台座にネジ止め。

これだけアンテナ長くなれば見えるエリア広くなるかなーと思うわけですよ。同じ場所のアンテナで附属のモノポールと自作のコリニアで24時間ほど観測してadsbScopeのMaxRangeを重ねてみました。
f:id:W53SA:20140406010219p:plain
若干広くなったけど、劇的な変化はなし。まぁ数百円の出費ですから、こんなもんでしょう。そもそもベランダに置いてる時点で見えるエリアが偏るのはしゃーないし。

ちなみに、飛行機は様々な高さをもって飛んでるので二次元マップにプロットしたエリアでも見えない飛行機はありますわね。

ベランダに設置

窓際のRaspberry Piとアンテナ(及びチューナ)を1mぐらいのUSB延長ケーブルで繋いでたんですが、これだと窓が閉まらなくて寒い。窓を閉めるためにはエアコンの配管穴を経由して繋がないとだめ。

そこで、寺町マルツまで行って5mのツイストペア4芯ケーブルを買ってきてUSBコネクタ付けてチューナを差してみたわけだ。USBの規格上5mまで行けるんだからこれでよかろう。

しかし

デバイスは見えるけど受信できない。

どうやらケーブル品質にシビアらしい。これEthernetよりめんどいぞ。というか伝送路は単なる2芯ツイストペアで残り2本は単なる送電線なんだから四芯ツイストペア買う必要なかったやんけ…。

仕方ないので、また寺町マルツまで行って5mのUSBリピータケーブル買ってきました。

サンワサプライ USB2.0リピーターケーブル  5m  KB-USB-R205

サンワサプライ USB2.0リピーターケーブル 5m KB-USB-R205

使ってみると、当然ながら(?)一発で受信成功。なんでや、ということでバラしてみた。
f:id:W53SA:20140406011516j:plain
中心に位置するチップは4ポートUSBハブLSIμPD720114

ケーブルが残念だったのもあるかもしれないけど、デバイスから5mも引っ張ったのが敗因な雰囲気。これはUSBハブを5mケーブル先に繋ぎチューナをハブに突き刺せば良かったんちゃうのということですが、これだけのためにUSBハブ買うのもバカっぽいのでこれ以上深入りはせず。

なんで最初からリピーターケーブル買わんかったんや、って話ですけどエアコンの配管穴をUSBコネクタが通るか怪しかったんですね。ですが、結局USBコネクタ付きケーブルを通す羽目に。針金で試行錯誤したら通ってしまい実験してから買えばよかった、という結論に。切ない。

Flightradar24へfeedする

ここまで出来たら自分で近所の飛行機の状況を見れるわけですが、せっかくなのでfr24へfeedしてみましょう。

feedするソフトウェアはLinux版(Raspberry Pi用のARM LE向けbinary blobもある)があるんですが、feedするために必要な共有キーはWindows版クライアントでしか取得できません。

Software - Flightradar24.com - Live flight tracker!

Windows版クライアントを起動して、連絡用メールアドレスと、受信地の緯度経度を入力し、dump1090が走ってるRaspberry Piのhost:portを入れてSign up。上手くdump1090の吐く情報がfr24の情報と一致すれば認証が成功して自動的に共有キーが取得されます。なお、この共有キーはメールアドレスに送信されます。

認証キーを取れればWindows版クライアントを閉じてしまっていいんですが、その前に「flightradar24 PREMIUM」とか書かれたバナーをクリックしてfr24のアカウントを作ることが出来ます*1。データをfeedする限り*2、プレミアムを無料で使わせてくれるって。

ちなみに、このアカウント情報でfeedしている概要が表示できます。
f:id:W53SA:20140406013522j:plain
レーダーは受信地座標の最寄り空港名がつきます。

あとはさっき取得した共有キーを引数につけてLinux版のクライアント*3をRaspberry Piで起動すれば、適当にADS-B受信情報がfr24へfeedされます。

FlightAwareへfeedする

[この項4 Sep 2014追記。また、タイトルを変更しました。]


fr24以外にもADS-Bを記録しているWebサイトはいくつかあって、その一つにFlightAwareがあります。ここが8/14にRaspberry Pi用のFeeder(PiAware)をリリースしたのでこちにもfeedしてみました*4

dump1090が走っていれば、やり方は単純で配布ページからdeb拾ってきて入れるだけ*5。PiAwareはdaemonとして裏で動き、マシンで既に動いてるdump1090のbeast modeから情報を取ってきてfeedします。

で、なんかEnterpriseアカウント(89.95USD/月)に無償でしてくれるって書いてあるんだけど今ひとつ何が嬉しいアカウントなのかわからん。

f:id:W53SA:20140904131905p:plain

Nearest Airportが徳島空港になってる。おそらく、南側しか開けてなくて見えてるエリアの中心に一番近いのが徳島って判断をしたのでしょう。

*1:アカウントは共有キー取る際に使ったメールアドレスで作ってね、という注意事項がアカウント作成時に出るので、その点注意。

*2:データの最終feedから7日、なので適当に再起動したりしてfeedが一時的に止まっても即座にアカウント停止はなさげ。

*3:ちなみに、static linkとdynamic linkがあります。容量ケチる理由がないんでstatic linkedをわたしは使いました。

*4:forum見ると最初はあんまり安定してなくて試行錯誤してたようですが、今のPiAware 1.9は特段何も苦労せずに動きました。

*5:もちろんFlightAwareのアカウント情報がないとfeedできないんでアカウント作っておく必要はありますが