978Mhz帯でもFlightradar24用のデータを受信する

今まで1090MHzで航空機から発せられるASD-B信号を受信しFlightradar24とFlightawareにデータを送信してきた。この周波数では大型の旅客機から位置情報が送信されている。

一方で北米では小型機は978MHzで位置情報を送信する仕組みがあるようで、日本でも使用される例があるとの情報もある。そこで、小松市内にて978MHzで航空機からの信号が受信できるかを試してみたい。

そこで、RTL-SDRを1つ追加して1090MHzに加えて978MHzの信号受信もできるようにLinuxをセットアップしていく。

2つのRTL-SDRドングルに別のシリアル番号を割り当てる

2つのRTL-SDRドングルをLinuxに接続するが、どちらのドングルにどちらの周波数のアンテナが接続されているか特定する必要がある。そこで、2つのドングルに別のシリアル番号を書き込む。

RTL-SDR Blog V4 のドライバがインストールされている前提で、下記コマンドで現在のシリアル番号を確認します。どのドングルかが分かりやすいように1本だけ接続した状態で行います。

~ $ rtl_eeprom -d 0
Found 1 device(s):
  0:  Generic RTL2832U OEM

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R828D tuner
RTL-SDR Blog V4 Detected

Current configuration:
__________________________________________
Vendor ID:		0x0bda
Product ID:		0x2838
Manufacturer:		RTLSDRBlog
Product:		Blog V4
Serial number:		00000001
Serial number enabled:	yes
Bias Tee always on:	no
Remote wakeup enabled:	no
__________________________________________
Reattached kernel driver

現在のシリアル番号 “00000001" のようです。手持ちのドングルはすべて同じです。

次に下記コマンドで書き換えます。

~ $ rtl_eeprom -d 0 -s 00001090
Found 1 device(s):
  0:  Generic RTL2832U OEM

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R828D tuner
RTL-SDR Blog V4 Detected

Current configuration:
__________________________________________
Vendor ID:		0x0bda
Product ID:		0x2838
Manufacturer:		RTLSDRBlog
Product:		Blog V4
Serial number:		00000001
Serial number enabled:	yes
Bias Tee always on:	no
Remote wakeup enabled:	no
__________________________________________

New configuration:
__________________________________________
Vendor ID:		0x0bda
Product ID:		0x2838
Manufacturer:		RTLSDRBlog
Product:		Blog V4
Serial number:		00001090
Serial number enabled:	yes
Bias Tee always on:	no
Remote wakeup enabled:	no
__________________________________________
Write new configuration to device [y/n]? y

Configuration successfully written.
Please replug the device for changes to take effect.
Reattached kernel driver

シリアル番号は8桁の数値です。100以下の数値は他のデバイスと被る危険性があるので、使わない方がいいようです。今回は受信周波数を示す、1090と978にしました。

rtl_test -t で確認しました。無事に個別のシリアル番号が設定できたようです。

dump978-fa のインストール

dump978-faのリポジトリは下記。

https://github.com/flightaware/dump978

下記の通りビルド&インストールします。

git clone https://github.com/flightaware/dump978
cd dump978/
dpkg-buildpackage -b
cd ..
sudo dpkg -i dump978-fa_*.deb skyaware978_*.deb

これで978Mhzの信号を受信してデコードしてくれるソフトの準備ができました。

dump1090-faとdump978-faへのUSBドングルの割り当て

下記のようにdump1090-faとdump978-faのそれぞれが使用するUSBドングルのシリアル番号を割り当てます。

RaspberryPiを使用している場合は下記コマンドで設定できるようです。

piaware-config uat-receiver-type sdr
piaware-config rtlsdr-device-index 00001090
piaware-config uat-sdr-device driver=rtlsdr,serial=00000978

VMware等を使用していたり、RaspberryPi 64bitを使用している場合は、上記方法だとエラーが出るので、下記の方法が必要です。

sudo nano /etc/default/dump1090-fa で設定ファイルを編集し、RECEIVER_SERIAL の値を追記します。

RECEIVER_SERIAL=
 ↓下記ように変更
RECEIVER_SERIAL=00001090

sudo nano /etc/default/dump978-fa で設定ファイルを編集し、下記のようにシリアル番号を指定します。

RECEIVER_OPTIONS="--sdr driver=rtlsdr --format CS8"
↓
RECEIVER_OPTIONS="--sdr driver=rtlsdr,serial=00000978 --format CS8"

piawareの再起動

下記のコマンドでpiawareを再起動する。

sudo systemctl restart piaware

無線

Posted by Takuma