AndroidスマートフォンでADS-B受信

管制
©いらすとや.

ADS-B受信機については、「PCにRTL-SDRドングルを接続する」「SBC(シングルボードコンピュータ)にRTL-SDRドングルを接続する」ということは既に行っていますが、「スマートフォンにRTL-SDRドングルを接続する」という方法はまだ試していませんでした。そこで今回は、AndroidスマートフォンにRTL-SDRドングルを接続して、どのようにADS-B信号を受信できるかを実験してみました。iPhoneについては、所有していないことや、USB端子が無いことからRTL-SDRレシーバーを接続できないため、今回はAndroidデバイスに限定して実施しています。

Android用のRTL-SDR関連アプリはいくつか存在するようですが、今回はAndroid用の「dump1090」というアプリを試してみました。dump1090はADS-B信号をデコードする人気のツールで、多くの利用者がいます。ただし、Android版のdump1090は単体では動作しないため、別途「SDR Driver」というアプリもインストールする必要がありました。これはRTL-SDRドングルの制御をスマートフォン上で可能にするためのアプリです。

AndroidスマホでADS-B受信 1
https://play.google.com/store/apps/details?id=marto.rtl_tcp_andro
SDR driver

AndroidスマホでADS-B受信 2
https://play.google.com/store/apps/details?id=eu.ebctech.dump1090
Dump1090

AndroidスマホでADS-B受信 3
スマートフォンのUSB端子にRTL-SDRドングル型レシーバーを接続しました。この時、スマートフォンのUSB-C端子とRTL-SDRドングルのUSB-A端子を変換するために、USB-CとUSB-Aの変換アダプタを使用しています。ドングルには以前購入した「粗悪なRTL-SDRレシーバー」に付属していたロッドアンテナを接続しました。このアンテナは手元にあったので使いましたが、ADS-B信号の受信には専用のアンテナを使用する方がより良い結果が得られるかもしれません。

短いロッドアンテナとはいえ金属製なので重量はあります。ドングル自体もメタルケースに収められていて少々重いので、スマートフォンを持ち上げて動かすとUSB端子部分にかなりの負荷がかかります。長期間の使用や頻繁な接続・取り外しを繰り返す場合は、USBポートが壊れないように注意が必要です。

AndroidスマホでADS-B受信 3a
ロッドアンテナの長さは伸縮可能で、使用する周波数に合わせて調整が可能です。今回は、ADS-B信号の1090MHzに合わせてアンテナを調整しました。具体的には、ロッドアンテナの2段目を最大限に伸ばし、それ以外の部分を完全に縮めることで、ちょうど1090MHzに最適な長さになりました。使うたびに微妙な長さ調整が必要ないため、この点は非常に便利です。このアンテナの長さは、最も短い状態で約110mm、2段目を最大に伸ばした状態で約185mmです。1090MHzの波長(λ)は275mmなので、185mmのアンテナはおよそ2/3λの長さとなります。

AndroidスマホでADS-B受信 3b
しかし、アンテナの長さが1090MHzに合っているとはいえ、SWR(スタンディングウェーブ比)は1.57程度であり、理想的とは言えません。スミスチャートの表示では、中央から大きく外れた場所にプロットされており、50Ωや75Ωといった理想的なインピーダンスには届かず、30〜40Ω程度の値となっています。

AndroidスマホでADS-B受信 4
以前に購入したAliExpressで購入したPCBパイプ入りのアンテナを試してみました。

AndroidスマホでADS-B受信 4
このアンテナはよりコンパクトで、特性としては良好です。ただし、PCBアンテナを手で持つ状態で使用したため、最適な性能を発揮できていません。それでも、SWRの谷の中央は1090MHzに一致しており、SWR値も1.22と、先ほどのロッドアンテナよりも良い結果が得られました。なお、NanoVNA-QTの表示にはバグがあり、左下に「1425MHz」と表示されていますが、実際には1090MHz付近を示しています。

AndroidスマホでADS-B受信 5
RTL-SDRドングルをスマートフォンに接続すると、SDRドライバーが自動的に起動します。この時、アクセス許可が求められるので、「〜を接続したら常にRtl-sdr driverを起動する」にチェックを入れてから、OKを押します。これにより、次回以降の接続時にドライバーが自動で起動し、手動操作の手間が省けます。

AndroidスマホでADS-B受信 6
SDR driveアプリを開き、「ENABLE ADVANCED MODE (FOR DEBUG & STREAM TO PC)」をタップすると、いくつかの詳細設定が表示されます。この画面は主にデバッグやストリーミングに関する設定が含まれていますが、通常の使用では特に気にする必要はありません。

AndroidスマホでADS-B受信 7
Dump1090アプリを起動し、ADS-B信号の受信を開始します。アプリが信号をキャッチすると、航空機の情報がリストに表示されます。リストには、飛行中の航空機の高度や速度、位置などのデータがリアルタイムで表示されます。

AndroidスマホでADS-B受信 8
「がとらぼ」の人の実家は、「風の谷」のような場所にあります。そのため、付属のロッドアンテナを使用すると、航空機からのADS-B信号をある程度受信できるものの、信号が弱く、情報が完全には揃いませんでした。その結果、地図上に航空機の位置が表示されることはありませんでした。手持ちのPCBアンテナを使って10分ほど試してみたところ、最大で2機の航空機が表示されましたが、期待していたよりも結果は芳しくありませんでした。このような谷間や障害物が多い場所では、やはり屋根の上や少しでも高い場所にアンテナを設置する必要があると感じました。
現在FlightAwareのフィーダーで運用しているアンテナを接続すると結果は大きく異なるでしょうが、これはフィード中なので今回は試すことができませんでした。

AndroidスマホでADS-B受信 9
Dump1090にはPC版と同様にネットワークエクスポート機能が搭載されています。これにより、受信したADS-Bデータをネットワーク経由で他のデバイスに送信したり、複数のPCやSBC(シングルボードコンピュータ)からデータを参照することができます。例えば、古いスマートフォンでDump1090を動かし、PCやSBCでフィーダーを構築することも可能です。これにより、手軽にADS-B信号を受信し、データを共有できる環境を作ることができます。

関連記事: