羽田の新ルートの南風運用進入が自宅上空5000ftだったのを機会にFR24をよく見るようになりました。 Basicアカウントだと広告が邪魔で困っていましたが フィーダーになれば無料でビジネスアカウントを貰えることを知り受信を決意しました。
ラズパイで運用するのが多数派のようですが 余っていたサブノート(E200HA)にLinux mintを入れてNASを運用していたのでそれを活用することにしました。
よくわからないままにdump1090-mutabilityをビルドし、 fr24feedのdebian版を公式からダウンロードしてインストールしたところ チューナーの認識を除けば動作しているようだったので購入手配へ。 なお、もう動いているので触りませんが、より新しいdump1090-faを入れるのが正解だったらしいです。
まずamazonでR820T2と明記されているものを2000円で購入しました。
4/11注文4/14発送5/7到着。
早速装着してdump1090を--interactiveで起動するもいっこうに受信する様子がありません。 /var/log/dump1090.logを確認すると1090MHz受信不可のFC0012。 マレーシア発送でずいぶん待たされた上に非対応品とは。
期待せずに返品交渉したら返金処理されました。
楽天で同等品をまた2000円で購入。国内発送メール便で届いてちゃんとR820T2でした。
5/7注文5/9発送5/12到着。
ちなみに購入店はファンライフさんです。
確実に対応品を手に入れたいならば シャフトコーポレーション さんから購入するのがお勧めです。 水晶とUSBコネクタがいいものに交換されています。 2020年5月現在で3850円はお得だと思います。
対応チューナーを装着して/var/log/dump1090.logを確認するとR820Tと表示。
まず付属のアンテナをノートPCの上に適当に置いてテスト。
壁越しの位置で無理だろうと思ったらあっさり受信してびっくり。
自宅マンションが高台の4Fだからかもしれません。
ただし最大距離50nmくらいでほぼ近所数マイルを通る機体しか見えず淋しいです。
fr24にログインするとちゃんとビジネスアカウントに切り替わっています。 まずは目的達成。
2020年5月12日
付属アンテナを外が見える窓ガラスの上のほうにセロテープで貼り付けてみると
コンタクト数が数倍になり最大距離も150nmくらいに改善しました。
Polar plotを見ると窓が東南東向きなので東だけ受信できています。
まあ方角は改善不能ですが、距離は工夫次第で改善できそうです。
dump1090のモニタリングが他で言われているIPアドレス:8080では出ません。 /run/dump1090-mutabilityにはjsonが出来ているのでデータは取れているはずです。 lighttpdは動いているようなので色々試したらIPアドレス/dump1090/で出ることがわかりました。 航跡を確認すると途切れており今一つ安定していません。 受信距離はともかくコンタクト数を増やしたいところです。
/runにすごい勢いで書き込んでいるはずでeMMCが心配になりました。
ラズパイ運用でも対策している人が多いようです。
が、dfコマンドを実行すると/runはすでにtmpfsになっており問題なし。
/etc/fstabではそうなっていないのでdump1090が起動時に何かやっているんでしょうか?
起動スクリプトを追いかけてみたが発見できず。まあいいことにします。
アンテナケーブルがカーテンに干渉するのでMCXの2m延長ケーブルを追加しました。
ケーブル長が延びたこととコネクタの損失か最大距離が20nm程度下がってしまいました。
なお試しにアンテナをベランダに出してみましたが改善はありませんでした。
設置高さがガラス直貼りより低くなったことが原因と思われます。
あまり考えなしに窓ガラスの高い位置にアンテナを貼り付けていましたが、
高さはけっこう大事だったようです。
なお、感度の確認方法はdump1090で安定し受信できている機体を選択しRSSIを見ながらアンテナを動かしました。
外の高い位置に設置すると改善が期待されますが、 台とエアコンダクトを通す工作が面倒そうなので室内設置の範囲で楽しむことにしました。
2020年5月15日
dump1090でdistanceが表示されていないことに気が付きました。
/usr/share/dump1090-mutability/html/config.js
のSiteLatとSiteLonが初期設定のままだったので自局位置に修正したところ
地図が出なくなり焦りましたが、
設定を見直したら恥ずかしいことに緯度と経度を間違って入力していました。
修正すると正常に出力されて同心円も出てきました。
ただこれ、config.jsのコメントにはdump1090で設定済みの場合には無視されると書いてあるんですが、実際には有効です。よくわかりません。
2020年5月16日
付属アンテナは基台のマグネットを鉄板に付けないと感度が低下するらしいので
お菓子の缶の蓋をくっつけてみました。
効果は正直よくわかりませんでした。
これだとアースが取れていないのでしょうか。
まあ悪くなってはなさそうなので、紅茶缶を窓に貼り付け、上に乗せてみました。
家族には笑われていますが、非難されてはいないのでよしとします。
fr24で見ているとエンブラエルの航跡がいつもガタつくのが気になっていましたが、
ADS-Bの自己申告ではなくMLATによる位置推定だかららしいですね。
と、/run/dump1090-mutabilityを見ると自分のデータにMLATが出ていないことに気が付きました。
fr24feed.logを確認すると
Receiver not compatible with MLAT, timestamps in wrong format!
とあります。調べてみるとなんか時計の精度を上げるとできそうな気もしますが、
面倒そうだし自局単体ではあまり面白くないので保留としました。
付属アンテナにアルミ箔を巻いたストローを被せると感度が上がるという
冗談のような
情報があるので試してみました。
長さは135mmとしました。一応1/2λのつもりです。
本当にRSSIが3dBほど改善しびっくりです。
最大距離はガラス直貼り延長なし並みの163nmとなりました。また航跡の跡切れが少ないです。
fr24のstatisticsコンタクト数も数10%増えました。
また、窓と反対側の群馬北部(北北西)が飛地のように受信できるようになりました。 どうやら窓から見えている建物の壁で正反射している微弱な電波を拾えるようになったらしいです。
2020年5月19日
MCXケーブルで延長すると損失が大きいのでUSB側での延長に変更しました。
ノイズ源であるPC本体からチューナーを離す意味もあるようです。
RSSIがさらに3dBほど改善しました。最大距離はほぼ変わらずです。
成田の離着陸機がかなり空港に近い3000ftくらいの低高度で見えるようになりました。
また完全に建物の死角である南西方向の機体もたまに受信するように。
ついでにケーブルの取り回しを下に凸としてみました。 冬場は結露の激しい窓なんですがこれで水滴がチューナーに流れ込むことはないはずです。
2020年5月20日安物チューナーの水晶発振器の質は悪く、 最初から微妙にずれておりかつ発熱でどんどんずれていくらしいです。 それを補正するためのパラメータがdump1090のPPMです。
補正値を調べるためにWindowsPCにSDR#をインストールしました。
特にわかりづらいこともなく、ネットに出ている手順通りなので詳細は割愛します。
Linuxに付けたままrtl_tcpでポート1234に接続してもよいようですが、
ちょっと反応が良くなかったのでWindowsPCにチューナーを直接装着しました。
ここで困ったのが基準とする「適当な既知の周波数」というやつ。 どうもこの世界では皆さん無線の知識は当然のようにあるようでどこを参照するかの具体例がないです。 一般人でも知っているFM局に合わせてみるも周波数変調なのでピークがはっきりしません。
色々検索して
やっと見つかった
のが地デジのパイロット信号。
ウォーターフォールの筋が一致するように補正値を上下させたのが以下の絵です。
盛大に外れていたようでうちのチューナーの補正値は+32ppm。
その値を/etc/default/dump1090-mutabilityのPPMに書き込みます。
補正の効果はあり。dump1090であまり見ない150nm超えが普通に見え、 成田から北への離陸機がこれまで2800ftくらいから捉えていたのが2200ftで見え始めます。 ちょっと手間だけどやる価値はあります。 問題は発熱によるドリフトで、安定した補正値とするにはなんらかの熱対策が必要です。
あと注意点として補正値を調べるときにはしばらくウォームアップしておくなど できるだけ運用状態に近づけないといけません。 高温時に見かけの周波数が上がる傾向ですが、コールドスタートだとガンガン上がっていくのがわかります。 補正した後しばらく放置して安定を確認するといいと思います。
2020年5月21日理屈はさっぱりわからないんですが、 アンテナ基部のねじに巻き付けるようにエレメントを追加すると 副共振という効果により改善がみられるとの 情報 があったので試してみました。
家にあった0.9mmのピアノ線に3mmねじが入るループを作り片側67.5mmで切断。
ちょっと硬くて曲げるのにえらい苦労しました。もう少し細いほうがいいかも。
作例に倣い斜め上に跳ね上げてみました。
結果は効果あり。
成田周辺で見える機体の数が明らかに増えたのと、dump1090で過去最高の200nm超えを確認しました。 あと、北北西からの反射波はこれまで群馬北部の奥利根あたりでしたが、新潟市付近の機体を捉えました。 ただこれ、指向性があるようです。エレメントを回転させると2dBくらい変わります。 ただ、エレメントの無い方向も悪化はしていないのでデメリットはありません。
2020年5月22日
ピアノ線の先端がちょっと怖かったのでビーズを瞬間接着剤で追加。
特に感度に変化はありませんでした。
受信環境がサブノートPCなのでそのまま外でも運用可能です。やってみましょう。
うちの近所で最も見晴らしがいいのはここ荒川の幸魂大橋です。
欄干にアンテナを立てて受信中の図。
dump1090の表示がこれ。全方位23機捉えています。これだけ見えると面白いですね。
コロナ禍でこれですから通常時はもっとたくさん見えるんでしょうね。
成田の着陸は1500ftまで、羽田の着陸は800ftまで見えてます。
ただ意外と同じ位置ではRSSIは自宅より悪いです。
遠くもせいぜい150nmくらいまで。
チューナーをPCに直差しなのでノイズを拾っているのか、熱環境が違って周波数がずれているのか。
ちょっと気になったのがこれ。ひょっとすると高圧線直下はダメ?
これまで使っていたdump1090-mutabilityはちょっと旧いようです。 動いているのでまあいいんですが、より新しいdump1090-faに入れ替えてみました。
gitで取ってきてbuildすればそれでいいのかと思えば、ちょっと引っかかったのでメモを残しておきます。
git clone https://github.com/flightaware/dump1090.git dump1090-fa cd dump1090-fa dpkg-buildpackage -bと、libbladerfが旧いといってエラーになります。 workaroundで無視するような方法があったのでそれに倣いました。 正しい対処かどうかはよくわかりませんが、動けばそれでいいのです。 debian/controlを編集し、Depends:の,libbladerf1(>=0.2016.06)を削除。 debian/rulesを編集し、BLADERF=yesをnoに変更。 以上でビルドできるようになります。
cd .. sudo apt remove dump1090-mutability sudo apt install ./dump1090-fa_3.8.1_amd64.debあと、dump1090-faの場合は自局の位置とppmは/etc/default/dump1090-faでは変数ではなく RECEIVER_OPTIONSに引数を直接書くようです。
念のためにシステムを再起動し、http://IPアドレス/dump1090-fa/で表示が出ることを確認できました。 ちょっと高機能なようですね。
気になったのがRSSIの値がmutabilityと全然違います。が、見える範囲は変わっていないので 単に表示の問題のようです。どっちが正しいかはよくわからず。
なお、config.jsは書き換えなくてもちゃんと正しい位置が参照されました。
2020年5月26日コロナ禍でテレワーク中にふと息抜きでdump1090を起動したら、 見慣れないシンボルが銚子沖に。 これはひょっとしてと思って詳細を見るとビンゴでした。
世界最大の輸送機、An-225ムリヤですね。一度は実機を見てみたい機体です。
まあFR24ならいつでも表示できるわけなんですが、自分で直接捉えるとまた格別ということで。
アンテナを改良すればもっと捉える信号が増えるはずで、
特に注目していたのが
この作例
です。
コロナ禍でホームセンターが短縮営業になっており、なかなか買いに行くことができませんでしたが、
久しぶりの天気のよい週末になり材料を入手できました。
やっぱり導電性の良い材料がいいのかなと思いましたが銅製の線材は高いです。
ただ、電工2種の実技試験練習で使ったVVFの2mm2芯は安いことを知っていたので被覆を剥いて利用しました。
1m190円で2本取れます。
他に必要なのは付属アンテナの基台にピッタリ合うM3の長さ15mmのナット。
真鍮にニッケルメッキで導電性は問題無いようです。
あとは作例通り
上から193mm - 20mmループ - 206mm - 20mmループ - 187mm
に加工しておしまい。ナットを含めるか迷いましたが、
インピーダンスが変わるはずなので見えている長さとしてみました。
だいぶ派手になってきたので嫁さんの反応が気になりましたが、
幸いまだ許容範囲のようです。
なお、芯線の被覆は剥かなくてもいいように思いますが、両方試してみるとあまり差はないようでした。
肝心の受信感度ですが、残念ながらアルミストロー+追加エレメントと大差ありません。
黙って変更されればわからないレベルだと思いますが、
なんとなくの体感では80nm以内はやや改善、100nm以遠はやや低下している気がします。
せっかく作ったことですし、これでしばらく様子を見てみることとしましょう。
材料に余りが出たので1/2λと5/8λの単純なアンテナを追加して、
受信しながらとっかえひっかえしてみました。
左から、付属アンテナ、アルミストロー+追加エレメント、1/2λ、5/8λです。
長さは 波長275mm×係数×銅線の短縮率0.96 としました。
どうやら作成したコーリニアアンテナはこれまでで最良の性能があるようです。
他から交換すると有意に受信状況が改善しますし、
FR24のStatisticsでも改善傾向が見られます。
他にも初めて新潟沖日本海の機体を捉えたり、成田の北からの着陸も1800ftくらいまで見えたり、
改善は明らかです。150nm以遠も以前とそう変わらないようです。
ここまで試したアンテナを性能順で並べると、
コーリニア > アルミストロー+追加エレメント > アルミストローのみ > 1/2λ > 5/8λ >> 付属アンテナ
となります。アルミストローで改善したのはストローの効果ではなく単に長さが1090MHzにマッチしただけ
ではないかと疑っていたのですが、ストローに何らかのメリットがあるみたいで怪しさ満点です。
コーリニアは長く重くなってしまったので付属アンテナの小さなマグネット基台では固定が十分でなく、 気が付いたら倒れていたりで長期運用には向かない感じです。 そのうちアルミストロー+追加エレメントに戻すことになりそうです。
2020年5月31日
以前SDR#を使ったppmに与える値の調べ方を紹介しましたが、
Linuxだけで調べる方法が分かったのでそちらも紹介します。
わざわざWindowsPCにSDR#をインストールしないで済みますし、
普段と同じ熱環境で調整できるのでより良いと思います。
dump1090を停止してから、以下コマンドを実行します。
rtl_test -pしばらく放置すると行の最後のcomulative PPMの値が落ち着いてくるのでその値を使います。 あとは/etc/default/dump1090-fa の--ppmの値を書き換えたらdump1090を起動します。
絵が出てこないので見た目は面白くないですが、SDR#よりずっと楽なのでお勧めです。
ただ、謎なのはどこにも参照周波数を入力してません。 出てくる値はSDR#と同じ値に落ち着くので正しいようですが、何見てるんだろ。
2020年6月1日
RFゲインとは、内蔵アンプによる信号増幅のパラメータのようです。
dump1090ではデフォルトで--gain -10が入っており、
その場合はチューナーで設定可能な最大値に自動設定されるようです。
なお、dump1090-faには--enable-agcという似たような設定がありますが、
これはソフト内蔵のデジタル処理で、別物です。
設定してみましたが、効果はよくわかりませんでした。
さて、この設定値、必ずしも高ければ良いというものではないようです。
確かに試しにFMを受信したときなどちょっと下げたほうが音質が良かったりしました。
ネットには一定時間おきにゲインの値を変えながら受信し
カウント数を比較するスクリプトなんかも存在します。
私もちょっと試してみましたが、ばらつきが大きくてよくわかりませんでした。
見えてる機体が十分に多くないとそちらの増減の影響のほうが大きいのでしょう。
と思ったら、一日1回ゲインの値を自動調整する
スクリプト
を発見しました。
中を見てみると、/run/dump1090/stats.jsonのtotal行を見て、
strongシグナルがacceptedの最初の値に対して1%~10%になるように自動調整しています。
早速現在の数字を見て電卓を叩いてみると7%。うちの環境では調整不要でした。
当初はいまいちかと思ったコーリニアアンテナですが実力は高く、
徐々にフライト数が回復している今、dump1090でしばしば200nmオーバーの機体を見かけます。
ぜひ使い続けたいところですが、
大きく重くなってしまったので
両面テープで窓ガラスに貼り付けていた紅茶缶が
しばらくすると剥がれて落下してしまいました。
原因はカーテンとのクリアランスを確保しようと、
当初使用していた100g缶から200g缶に変更したことでした。
100g缶に戻した現在安定しています。
本当は塩ビのパイプでレドームを作成するべきなんでしょうが、
あるもので落ち着いたのでこれで良しとします。
なお、たまたまそのへんにあったこの紅茶缶、
マグネット設置には理想的な形状をしています。
普通の缶は蓋のエッジがパイピング加工されていて、そこが両面テープでの固定に邪魔になります。
この缶はフラットなのでぴったり接着が可能です。
また、上面が緩いドーム形状になっており、マグネットアンテナを簡単に垂直に調整することができます。
ちなみに本体も装着してあるのはちゃんと理由があって、
当初画像のように蓋だけだと接着面上縁に力が集中してしまいます。
本体が下で支えることにより、接着面に垂直に力がかかるので剥がれにくくなっています。
それにしてもまさか紅茶メーカーもこんな理由で絶賛されるとは思っていなかったことでしょうね。
2020年6月3日
先日モバイル運用のテストで幸魂大橋で受信した際、
自宅よりも遠距離が芳しくないので不思議に思っていましたが、原因が判明しました。
自宅の方が高度が高かったです。
写真ではそんなに高く見えませんが幸魂大橋はかなり高い橋で、
欄干から下を見るとかなり下に水面が見えて、ちょっと怖いくらいなので
標高も高いと思い込んでいましたが、そうでもなかったみたいです。
私の趣味は自転車で、過去のGPSの走行ログがあるので確認してみました。
すると、当日受信した位置の標高は26mでした。
走行中にはスマホはウエストポーチに入れているのでだいたいアンテナを置いた欄干と同じ高さです。
ちなみに地理院地図で見るとこのあたりの水面の標高は1mくらいです。
同じログの自宅位置の標高を見るとなんと38m。地面の標高は37m。
自宅は4Fなので階高を3mとすると床まで9m。アンテナは床から2m。
37+9+2 = 48mがアンテナ標高です。
地球は丸いので、遠距離受信で邪魔なのは地面です。
遠距離で重要なのはアンテナの高度だった、というオチでした。
なお、
このサイトによると、
海抜50m高のアンテナから見える高度40000ftの機影の限界距離は約220nmだそうです。
dump1090でうちに向かってくる機体のTracksを表示すると
だいたいそのあたりで見え始めるやつがいるので整合します。
と、今朝もdump1090を眺めていたら限界を超えた点が一瞬拾えていたようです。
表示したときの高度は成田に着陸寸前なので2500ftですが、
プロットの始まりの隣の円が200nm、その隣が150nmなのでだいたい230nmくらいです。
なぜそこまで遠くが見えたのか不思議に思ったので/run/dump1090のjsonファイルで
生データを確認してみると、見え始めた時点の高度は42450ftでした。なるほど。
当然ですが機体の高度も大事ですね。
遠距離が見えると面白いので色々工夫してきましたが、どうやらいつの間にか物理的限界に達していたようです。
先日コーリニアアンテナの記事で、被覆の有無は関係ないみたいと書きましたが、
ちょっと気になったのでもう一度検証してみました。
できるだけ多くの機体が見える時間帯を選んで数時間様子を見てみると、
やはりちょっと裸銅線と比較してよろしくないようです。
具体的には200nm以遠をさっぱり受信しないのと、
FR24のStatisticsの1時間コンタクト数が前後の裸銅線の時間帯と比較して有意に少なかったです。
となるとやはりビニル被覆線は短縮率が違うのではないかと思われます。 なんとか検索で見つけ出した例として、 Ham Jounal No.21でIV線の短縮率を実測した数字として0.89が紹介されています。 つまり裸銅線と同じ寸法で作ったのでは長過ぎたようです。
裸銅線の短縮率を0.96とすると、裸銅線のエレメント長に0.89/0.96 = 0.927を掛ければ正解のはず。
上から179mm - 20mmループ - 191mm - 20mmループ - 173mm
ループはよくわからないので同じとします。
というかもともときっかり20mmで作れているとは思えないので。
これで曲げなおすとこんな感じです。
するとどうでしょう、太平洋上の245.9nmがあっさり見えて限界突破、反射波で新潟沖日本海の機影も捉えました。
ちょっと補足しておくと、dump1090で表示される高度は気圧計からの数字みたいで、
GPS高度はjsonファイルのデータを見たところ40625ftでした。
同じ性能でこっちの方が黒くて目立たないし、少しでも短いので取り回しも楽です。
ADS-Bの信号にはCRCが含まれているのでビット誤りがあった場合にある程度訂正できるようです。
dump1090-faの場合はデフォルトで--fixが指定されており、
1ビットのエラーは訂正されるようです。
調べ物をしている際、2ビットの誤りも訂正する指定を発見しました。
--fix --fixと2回繰り返すとそうなるみたいです。
ちなみにLinuxでこういうオプション指定方法は初めて見ました。
一応指定してみましたが、効果はさっぱりわかりませんでした。
うちのサブノートの場合CPU負荷は上がらなかったのでそのままにしてあります。
なお、一部のforkでは--aggressiveという同様の指定があるようですが、
dump1090-faでは無効化されていて、
指定するとかわりに--fix --fixが適用されます。
--aggressive指定は重いわりに意味がなかったようで、
海外フォーラムでは指定したい初心者に対して
「意味ないからやめとけ」みたいな会話がよく見られます。
コーリニアアンテナは受信性能は良好ですが、モバイル運用に難があります。
かといって、アルミストローも脆弱なので向いていません。
というわけで、アルミパイプ(φ7mm t1mm)を加工してみました。
見た目で少し削ればM3ナットが入ると思ったのですが、かなり削る必要があって苦労しました。
長さはストローと同じ135mmの他、1/2λ短縮率0.96として132mm、
短縮率0.93で128mmの3パータン試してみましたが、132mmが最良でした。
なお、追加エレメントはあった方が良いようです。
これで群馬県北部の機影を捉えました。
太平洋上200nmオーバーは無理でした。
困ったことにストロー135mmの方が僅かに性能が良いようですが、
モバイル運用だとそこそこの性能があればいいのでこれでいいことにします。
今週に入ってから気温がぐっと上がり、冷房を入れないと過ごしづらい状況になってきました。
チューナーを設置しているリビングは日中人が居ないのでそこそこ高温になっています。
気になったのでrtl_testコマンドで補正値を再測定してみました。
すると5月は+32ppmだったのが+38ppmとけっこうずれてます。
設定を変更して再起動してみると若干受信状況が改善した気がします。
これはちょっと熱対策を考えた方がいいようです。
<補足> rtl_testの値をちょっと読み違えていたようで、 再計測するとドングル付近の気温29℃で+34ppmでした。 あまり収束アルゴリズムのできが良くないようで、 ppmが落ち着いた時のsample rateがちゃんと2048000Hzであること要確認です。 たぶん5月は25℃くらいだったのではないかと思いますが、 仮に+5℃で2ppmなのであまり気にしなくてもいいのかもしれません。
2020年6月11日
FR24のフィーダーとなって30日が経過しました。
過去30日間の受信状況によってランキングが出てきます。
うちから見える範囲は東側の90度くらいしかないので論外かと思っていましたが、
実はうちにはけっこう有利な条件でスコアが算出されていて、
本日の国内ランキングは285位となかなかのものです。
細かい係数は無視すると、常時フィードしている場合だいたい
最大受信距離×2 + 平均受信距離
これの過去30日間の平均値がスコアになります。
見ての通り、コンタクト数は関係ないのでうちでも勝負になるわけです。
というか、コンタクト数を加味すると空港に近い人の圧勝になってしまいますね。
そこそこ標高の高いうちは最大受信距離が延びるのでかなり有利です。
今のスコアはアンテナを改良する前の日の値が多く含まれているので、これからまだまだ順位は上がりそうです。
ちょっとトップランカーの値を見ましたが、 トップ100に入るには最大200nm平均100nmくらいは必要みたいで、うちではちょっと厳しそうです。 コーリニアアンテナに変えたのが5月末なので、6月末くらいのスコアからが実力になりそうです。 しかしこれでアンテナ改良の検証やモバイル運用が心理的にやりづらくなりましたね。
2020年6月12日
どうも熱環境が安定していない気がするのでヒートシンクを追加してみました。
ヨドバシで15mm角高さ6mmひとつ51円を2個購入。
とりあえず殻割りしてみるとこんな感じ。
受信状態で触ってみると、チップ側も裏側もかなり熱いです。
チップ側からの放熱はヒートシンクとの接触面積が確保できないので、
有利そうな裏側からの放熱としてみました。
受信状況が改善されているかはよくわかりませんが、
ヒートシンクを触るとかなり熱いのでとりあえず放熱はしているようです。
補正値は今までより小さい+30ppmになりました。室温の影響を受けにくくはなっていると思います。
ちなみに両面テープは熱伝導性をうたっていない普通の薄手のものです。
なお、放熱対策をしたら受信感度が上がったという報告がたくさんあるのですが、
たぶんそれは直接の原因ではないと思います。
R820Tの動作上限温度は85℃だそうで、さすがにそこより上にはなっていないような。
正しく補正すれば感度は確保できるはずです。
放熱したことによりもともとずれていたのが許容される範囲に近づいたのではないかなと思います。
私の場合は日によって補正値が変わるのを多少なりとも抑えることが目的です。
他には電解コンデンサの故障対策という点では意味があるかなとは思います。
追加したヒートシンクはそれなりに放熱しているようで、
受信中に指で触ると2秒くらいが限界です。
となると、表側からも放熱してみたくなりました。
ただ、チップのサイズは4~6mm角くらいと小さく、
両面テープを介した伝熱はちょっと無理があるように思います。
なんかいいアイデアはないかと探していたら、
頭のいい方
を発見しました。皿ネジの頭をスプリングでチップにダイレクトに押し付けるというものです。
鉄のネジだとアルミより伝熱性や放熱性に劣りますが、
触れないくらい熱くなるのだから意味はあるはずですし、
調子がいいようならばアルミのねじを調達してもいいでしょう。
FR24のフィードをあまり停止したくなかったので、
まずは返金対応になったチューナーのケースをテストのために加工しました。
チップがR820T2ではなくFC0012ですが、発熱量は似たようなものと考えました。
ボルトにスポーツ自転車用の車軸に使うタケノコばねを通し、チップに押し付けます。
チップの位置を正確に測定し、周りの部品に干渉しない位置に、
ピンバイス→ドリル→シャーシリーマー
と穴を広げました。
と・・・SDR#で地デジを受信しながら触っても全然熱くありません。
鉄だとやっぱり伝熱性が悪いのかなと、直接チップを触ってもなんか暖かい?くらいで
R820T2でのADS-B受信時の爆熱とは違います。
調べてみたらFC0012の方が消費電力が少ないようです。
手順は確立したのでR820T2のチューナーも同様に加工しました。
少しでも表面積を大きくするために、ナットを追加してあります。
裏側とは違い触っていられるくらいの熱さですが、少しでもケース外に放熱しているようなので良しとします。
鉄ボルトを追加して定常運用してみると、触れないくらい熱くなっています。
チューナーの設置場所がガラス窓とカーテンの間の狭い空間で、
空気の動きが全くないので雰囲気との温度差がなくなっているようです。
試しに狭い空間に向けてサーキュレータを弱にして風を入れると、
ボルトもヒートシンクもほんのり暖かい程度に下がります。
重要な事実としては、受信感度はほぼ変わりません。
なのでこれを最終形態として構わないと思われます。
色々調べてみると発熱による熱雑音で感度低下が起きるはずなんですが、
うちではその現象は確認できません。
まあ、せっかくなのでもう一工夫してみることにします。
その昔CPUのオーバークロックが流行したときに色々やりましたが、 大事なのは出た熱をさっさと外に捨てることでした。 今回の場合もファンによる強制空冷が正解ですが、 可動部分を増やすのは好みではないのでパッシブにいきます。
私は外で焼き肉をするのが好きで、特に備長炭が好みです。 ただ、備長炭は起こすのが大変で、うちわでやってたら腕が疲れてしまいます。 そんなとき友人に教わったのが煙突の利用です。 ミルク缶の底を抜いて円筒状に加工し、 下に少量の着火剤を入れて炭を詰めて着火するだけ。 あとは完全放置で真っ赤に起きます。 対流効果で熱くなった空気が上から抜け、下から酸素を含んだ空気が吸気されるというわけです。 製品としてはキャプテンスタッグの「火起こし名人」というものがあります。
今回はトイレットペーパーの芯を利用してみました。
これを縦にして中にチューナーを入れれば、規模は違えど同じことが起きるはずです。
ただ、やってみたものの効果がさっぱりわかりませんね。
とりあえずボルトは相変わらず触れないくらい熱いままです。
いいアイデアだと思ったんですが。
横方向への拡散ができなくなったデメリットが対流のメリットを消してしまったのかもしれませんね。
受信感度は変わらないようなのでこれでいいことにします。
<補足>
室温26℃の日に触ってみたら、ぎりぎり触り続けられるくらいの熱さでした。
ひょっとして煙突長くしたらいけるかな。
本当は非接触の温度計(amazonで1500円程度)が欲しいんですが、コロナ禍で品薄のようです。
以前コーリニアアンテナの被覆付きバージョンでこれまでの最長不倒距離245.9nmを記録しましたが、
これが地球の半径と高度から算出される見通し距離を超えているのが気になっていました。
可能性があるとすると回折だと思っていましたが、1GHzの波だと直進する気がするので???となっていました。
と、他の調べ物をしている際に
回折の影響
を示したブログを発見しました。
フラネルの回折原理とやらで近似値を推定しているようで、
大気の回折を考慮すると期待される最大受信距離は465km(=251nm)となるそうです。
おお、ぴったりではないですか。
鉄ボルトでの放熱は調子がいいようなので、伝熱性や放熱性の良い
アルミボルトならさらにいいだろうと思われます。
ただ、アルミボルトはあまり一般的でなく、通販なら入手できるのですが
送料が高いのでホームセンターに物色に行きました。
発見したのがアルミリベット。在庫で一番大きかった5x12mmを購入しました。
あと、スプリングも安かったので購入。
先日パイプアンテナに使ったアルミパイプがちょうど内径5mmでぴったりはまるので
十字に切り込みを入れて表面積を増やしました。
ケースにセットするとこんな感じです。
するとどうでしょう、明らかに受信感度が良くなっています。
今まで受信することのなかった秩父や大月の機影を捉えるようになりました。
窓とは完全に反対側の離れた位置なので、僅かな反射波を捉えたようです。
うちでは熱雑音の影響はこれまで観察されませんでしたが、
単にまだまだ放熱が追い付いていなかったということのようです。
最大受信距離は伸びていませんが、もともと物理限界に近いのでそんなものでしょう。
リベットの役割はチップの熱を速やかにケース外に伝えることですから、 より伝熱性が高く放熱性はやや低い銅製のリベットだともっと良さそうです。 CPUのヒートシンクもその組み合わせが最良とされていますね。
2020年6月20日
dump1090のTracksを見ていると、たまに長野県の機体を捕捉していることに気が付きました。
窓の完全に裏側になるのですが、30000ftあたりからだと絶妙に目の前の建物で反射するようです。
ちょっとずるいんですが、FR24でそのあたりを通過する便を探しておいて、
dump1090で待ち構えて捉えた記念撮影が以下です。
行政区分では川上村になるようです。実は埼玉と長野はお隣さんなのでした。
距離的には大したことないですがここだけピンポイントで受信可能で、すぐに機影は消えました。
熱対策に関してはあまり受信に効果を感じなかったので単なる工作レポートとなっていましたが、
最後に実施したチップからの放熱で結論がひっくり返りました。
私はケース外へ排熱すればそれでいいと考えていました。
チップへ直接ヒートシンクを接触させても、
迅速に放熱しない限りすぐに飽和してしまってあまり意味がないと考えたからです。
ところが実際にはアルミリベットは受信感度改善に有意な効果を発揮しました。
どこで読み外したのでしょうか。
ヒートシンクやリベットの効果を確認するために指で触ってある傾向が存在することには気が付いていました。
チップ側はR820Tの方が熱く、裏側はRTL23832U側が熱い、と異なる傾向があります。
サーモグラフィーで温度分布を計測された例
でもその傾向が確認できます。
この差がどこで生まれているかなんですが、いくつか理由は考えられます。
ケースの裏側にのみ排熱口があることから、
この製品は裏側から放熱するよう熱設計されていると思われます。
想定される熱伝達経路は、
チップ→腹側放熱パッド→基板スルーホール→基板裏銅箔→ケース内空気
です。
まず消費電力がそもそも違います。
閑人さんによると、
R820T:約0.59W、RTL2832U:約0.24W
だそうです。
あと、チップサイズが違います。
R820T:3.9mm角、RTL2832U:5.6mm角
関連して、裏側への伝達経路のスルーホールの数が違います。
R820T:4つ、RTL2832U:9つ
発熱量は大きく、チップ表面からの放熱面積は小さく、裏側への伝熱経路も貧弱、
というわけで熱的に飽和していたと推測されます。
以上から考えるに、ひょっとするとR820Tへのアルミリベット追加だけでOKかもしれません。 上記閑人さんの実施された対策でも、スルーホールをはんだで埋めるだけで改善が見られます。 作業技術的にハードルが高いのでリベットで別経路を作った方が素人には楽です。 これから始める方はそれだけの対策で十分な可能性があります。
2020年6月26日
先日長野県の機影を捉えましたが、他にも拾える可能性がないかなと地図を見ていたら、
福島県も可能性があることがわかりました。
群馬県北部の奥利根湖のあたりは見かけるんですが、そこから少し北は福島県です。
と、IBEXのCRJがちょうど群馬を北上中だったので待ち構えてみたところ、拾えました。
行政区分では桧枝岐村になるようですね。
長野と福島の機影を捉えたところで、あと残りの県はどこがあるでしょうか。
自宅は埼玉で、窓から東が見えているので東京と千葉、あと茨城南部は問題なし。
横須賀がぎりぎり直視できるので神奈川も問題なし。
群馬は反射波で奥利根あたりや前橋周辺がスポット的にあちこち見えています。
熱対策で大月が見えるようになったので山梨もなんとか。
長野と福島は先日捉えました。
最終的に意外なところで栃木が残りました。
栃木県はうちから全域が100nm圏内にすっぽり入るんですが、
運の悪いことに直視は無理で反射波もほとんど期待できない方角に位置します。
たぶんアンテナをベランダの柵まで出せば直視できるんですが、
あくまで常設状態にこだわってトライしてみようと思います。
dump1090のTracksを見ていると、たまーに航跡が栃木で記録されているようではあります。
群馬の太田や舘林はそこそこに見えているのですが、
すぐ近くの足利や佐野あたりは運が良ければギリギリ拾えているようです。
FR24のプレイバックで確認すると、アンカレッジから香港へ行く便や
茨城空港と西日本を結ぶ便がいい感じに通るようです。
と、たまたま開いた瞬間に運よく佐野市上空の福岡から茨城に向かうスカイマークの機影をゲット。
これで今のアンテナ位置で見える可能性のある全県制覇です。
追記
新潟県忘れてました。なぜか新潟沖だけピンポイントで見えるんですよね。
3段コーリニアアンテナの導入から1ヶ月が経過したので
フィーダーランキングがかなり上がってきました。
今日現在でスコアは10003、日本国内ランキングは195位です。
あとは小改良程度なのでだいたいこのあたりで定着するかと思います。
以前スコアの算出方式について軽く触れましたが、少し誤認があったので訂正します。
常時フィードしている場合、だいたい以下式の30日積算でランキングが決まります。
最大受信距離×2 + 平均受信距離
で、「平均受信距離」の意味を取り違えていました。
私はこれを受信できた信号の平均距離だと解釈していたのですが、
どうやら8方位の最大受信距離の平均値が正解のようです。
例えば以下は昨日のStatisticsのPolar Plotなんですが、
北から時計回りに数値を書くと
(75+192+202+127+82+7+7+50)/8 = 93
これが平均受信距離の正しい算出式らしいです。
南西と西が7nmというのはずいぶんと低いですが、
ある程度安定的にフィード出来ていないとカウントされないようです。
世界ランキングのトップを見ると最大と平均の差がほとんどありません。
つまり全方位遠距離受信できているというわけですね。
ただ、日本ランキングのトップランカーは必ずしもそうではありません。
山が多い地勢なのと、航路の偏りでそもそも全方位の遠距離に機影が無いということなのでしょう。
それにしても東しか見えなくても勝負になると思っていたのですが、思い切り不利だったようです。
いつものようにdump1090を起動して眺めていたら、250nm近い位置がTracksで出てきました。
遠ざかる方向の場合、機影が動かなくなった位置の距離を読めばいいのですが、
近づいてくる場合はdump1090のログに距離は残らないので
ログに最初に出てきた緯度経度から自分で算出する必要があります。
あたりまえですが、信号に受信位置からの距離情報は含まれませんので。
カシオの計算サイトで求めてみると、なんか見た目と微妙に違う気がしたので
dump1090の距離計算式を確認しました。
dump1090-faの場合、距離はtrack.cで計算されています。
てっきり地球を回転楕円体として計算しているのではないかと思ったのですが、
実際には真球として計算されていました。
コメントによると「そんな誤差が問題になる状況で使ってない」とのことです。なるほど。
まあ誤差は高々0.5%程度ということで少しでも計算量が少ないほうがいいという判断なのでしょう。
残念ながら違っているというのは気のせいで、最長受信距離更新とはなりませんでした。
緯度経度から計算サイトで距離を算出するのが手間だなと思ったので、
便名を指定すると自局から最初に機影が見えた位置までの距離を
dump1090-faの計算式で表示するスクリプトを作っていました。
その動作確認中に、明らかに250nmを超えていそうなTrackを発見しました。
作成したスクリプトで確認すると、251.5nm。新記録達成です。
ちなみにGPS高度は38075ftで、やや低いです。梅雨前線の影響で回折が起きやすい条件なのでしょうか。
せっかく作ったので一応公開することにします。 というか、忘れそうなのでメモ代わりです。
自宅の緯度経度はハードコードしてあって、dump1090のjsonファイルから抜き出した
緯度経度と、球面三角法というもので距離を算出しています。
地球の半径には6371kmという数字が使われていますが、
これは表面積が本物のと等しくなる値だそうです。
jsonファイルをタイムスタンプ順に並べて、grepコマンドで便名を含むものを抽出します。
このときJAL11を見ようとしてJAL118がヒットしたので除外する処理を追加。
後は緯度経度が含まれないレコードもあるのでlonを含む行のみを抽出したら先頭行が最初に見えた位置ということになります。
必要な行が抜き出せたのでtrコマンドで各レコードを行に分解し、latを含む行が経度です。
ただ、mlatがマッチしてしまうので先に除外してます。
lonはそのまま緯度でOKです。
後はdegreeをradianに変換。
球面三角法には緯度の差の絶対値が必要になるんですが、bcコマンドにはabs関数がありません。
ちょっと考えましたが、二乗してルートを取りました。
同様に、acosが無いのでatanで出せるように三角関数の公式で変換。
出てきた中心角に地球の半径をかければ距離が出ます。
最初はFortranでプログラム書いたんですが、あまりにシンプルなので
計算もbashのシェルスクリプトでやるように書き換えました。
いまどきの人はpythonとかで書くんでしょうが、
定年間近の古参プログラマはそういう感じでやりますね。
#!/bin/sh # my site LAT0=35.8 LON0=139.6 PI=`echo '4.0*a(1.0)' | bc -l` R=`echo '6371.0/1.852' | bc -l` FLN=$1 JSON=`ls -rt /run/dump1090-fa/history*.json | xargs grep -h $FLN 2>/dev/null | grep -v "$FLN[0-9]" | grep '\"lon\"' | head -1` echo $JSON LAT1=`echo $JSON | sed 's/^\[{\(.*\)}]$/\1/' | tr ',' '\n' | grep -v mlat | grep lat | sed 's/^.*://' | tr -d '"'` LON1=`echo $JSON | sed 's/^\[{\(.*\)}]$/\1/' | tr ',' '\n' | grep lon | sed 's/^.*://' | tr -d '"'` LAT0=`echo $LAT0/180.0*$PI | bc -l` LON0=`echo $LON0/180.0*$PI | bc -l` LAT1=`echo $LAT1/180.0*$PI | bc -l` LON1=`echo $LON1/180.0*$PI | bc -l` DLON=`echo "sqrt(($LON1-$LON0)^2)" | bc -l` T=`echo "s($LAT0)*s($LAT1)+c($LAT0)*c($LAT1)*c($DLON)" | bc -l` T=`echo "sqrt(1-$T^2)/$T" | bc -l` DIST=`echo "$R*a($T)" | bc -l` printf "%.1f\n" $DIST2020年7月13日
以前国内ランキング200位を達成したのですが、
その後じわじわと上昇していてここのところ170位台をキープしています。
似たような順位の受信局と比べると、
最大受信距離は長いですが平均受信距離で負けてます。
今日のうちの平均受信距離は94nm。まわりはだいたい130nmくらいです。
やっぱり見える範囲が狭いのを最大距離で逆転している感じですね。
熱対策を完了したのが6月の末頃でしたから、距離はもう上がらないと思います。
あと可能性があるとすれば、受信時間でしょうか。 完全に常時起動にすると、Uptimeは24×30=720になります。 うちの場合はテストでたまに止めるので、今日の時点で714です。 スコアの計算式を見ればわかりますが、1時間止めるとスコアは12下がります。720-714=6時間だと72。 仮に常時起動だった場合は今日のデータだと148位に相当します。 ただ、いっぺん止めるとその影響が30日間出続けるのでなかなか難しいですね。
2020年7月20日
先達の皆さんの記録を拝見すると、ある程度落ち着いたところで
フィードを中止されている例が多いようです。
気持ちはよくわかります。
私もそうなんですが、つまらないです、これ。
導入して最初のうちは色々と改善点が見えるし、
対策した効果もすぐにわかるので励みになります。
が、落ち着いてしまえばやることがほとんどありません。
最大の欠点は、フィーダーの多い都市部の場合とにかく全然自分のデータが採用されません。
FR24では選択した機体が今どのフィーダーのデータを参照しているかわかるのですが、
私は今まで自分のデータが使われたのを見たことが一度もありません。
まあ、フィーダーとなっている最大のモチベーションは
邪魔なバナー広告を消したいからなので問題はないんですが、
もうちょっとなんとかならんかなあと正直思います。
ずいぶんと更新してませんでしたが、完全に定常運用に入ったので書くことがありませんでした。
さて、受信状況を確認するためにFlightAwareにアクセスすると、 PiAwareの新しいバージョンが出ている旨のメッセージが出続けていました。 ずーっと導入当初の3.8を使い続けていたのですが たまにはアップデートしてみるかとやってみたらどえらい苦労をしました。 結局Linux Mintを19から20に上げて、 あとtcl-tlsをgitからビルドすることでなんとかなりました。 確実に忘れるのでここにメモしておきます。 詳しくは「がとらぼ」さん参照のこと。 自分でビルドする際にはここを見ておけば間違いないです。 PiAware7の場合ここが参考になります。
今日の本題はそれではなくて、そのとき関連情報を調べていたら 数年前からずっと不思議に思っていたことがやっとわかったことです。
2020/5/14の記事で書いたように、ラズパイやサブノートPCの場合 ストレージがmicroSDやeMMCなので、頻繁な更新は避けるべきとされていて、 dump1090は/runに凄い勢いで書き込むので 出力場所を変更しておくとよい、という記事をよく見かけます。
ところがうちのLinux Mintのシステムでは dfで確認すると最初から/runはtmpfsになっていて、変更の必要がありませんでした。 /etc/fstabにはそんな記述はないので どこかで動的に変更されているのかと思っていたのですが なんと/lib/init/fstabで他にも色々設定されていることがわかりました。 なんで分かれているのか不思議に思ったのですが、 どうやら仮想環境などでは不要なものがこっちに分離されているようです。 数年越しの疑問が解消したのでかなりすっきりした気分です。
2022年5月30日2020/7/13に公開した距離計算スクリプトですが、 当時はjsonをさっぱり理解していなかったので暗号みたいになってます。 スマートリモコンのAPIで遊んでいるうちにjqの使い方がだいぶわかったので 今ならもっとすっきり書けるはず。
lsの-tでタイムスタンプ順にソートしてgrepやheadで 該当する便名を抜き出すというのは確実でいい方法なんですが、 行末に","が残るのでsedで削除。 すると緯度経度はjqで一撃です。なんと楽な。
JSON=$(ls -rt /run/dump1090-fa/history*.json | \ xargs grep -wh $FLN 2>/dev/null | grep -v "$FLN[0-9]" | \ grep -w lon | head -1 | sed -e "s/,\$//") LAT1=$(echo $JSON | jq .lat) LON1=$(echo $JSON | jq .lon)抜き出しの処理もjqでやってみましょうか。 前準備としてflightは8文字固定なので見たい便名の末尾をスペースで埋めておきます。
FLN=$(printf "%-8s" $FLN)それからdump1090のjsonを全部変数に入れて、 そこからjqで便名がマッチしてlonが取れているものだけ抜き出します。 細かいことですが、history*.jsonだけだと最新のレコードが抜けてました。 このときecho $JSONALLとするとflightの末尾の空白がbashによって縮約されるので注意。 これ、かなり悩みました。
JSONALL=$(cat /run/dump1090-fa/{aircraft,history*}.json) JSON=$(echo "$JSONALL" | jq ".aircraft[] | select(.flight == \"$FLN\") | select(.lon != null)")これを取得順にソートして一番最初のレコードを抜き出します。 ソートにはmessagesをkeyとします。これはその機体が見え始めてから何番目の受信かというカウンタです。
JSON=$(echo "$JSON" | jq -s 'sort_by(.messages) | .[0]')ちなみに最新のレコードが欲しい場合は逆順にソートすればいいです。
JSON=$(echo "$JSON" | jq -s 'sort_by(.messages) | reverse | .[0]')あるいは[-1]で最後のレコードを抜き出してもいいです。
JSON=$(echo "$JSON" | jq -s 'sort_by(.messages) | .[-1]')実はソートしなくてもmin_byでも一撃で抜き出せます。maxだと最新。
JSON=$(echo "$JSON" | jq -s 'min_by(.messages)')2022年6月3日