Airspy R2 miniを使ってADS-Bをフィードする方法(fr24feedのMLAT自動起動化)

現在Raspberry Piを使って
Airspy R2で各ADS-Bサイトにフィードしてます。

その際自分が行った設定をメモ代わりに書いておきます。

基本的には
https://github.com/wiedehopf/airspy-conf/wiki/Manual-airspy-configuration-to-work-with-dump1090-fa-and-piaware
を参考に設定しました。

21/07/17追記
PiAwareのバージョンが新しくなっていますので、
最新のラズパイOSを使っている方は
https://github.com/wiedehopf/airspy-conf/wiki/Manual-airspy-configuration-to-work-with-dump1090-fa-and-piaware
上記記載の
wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.6.3_all.deb
sudo dpkg -i piaware-repository_3.6.3_all.deb
の部分を
wget https://ja.flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_5.0_all.deb
sudo dpkg -i piaware-repository_5.0_all.deb
にした方が良いかもしれません。
参考:https://ja.flightaware.com/adsb/piaware/install



sudo piaware-config receiver-type rtlsdr
sudo piaware-config receiver-host localhost
sudo piaware-config receiver-port 30005
sudo systemctl restart piaware

次に設定ファイルを編集します

sudo nano /etc/default/dump1090-fa

以下のように設定します。

RECEIVER_OPTIONS="--net-only"
DECODER_OPTIONS="--max-range 360"
NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1000 --net-ro-interval 1 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005"
JSON_OPTIONS="--json-location-accuracy 1"
ENABLED="yes"

ここで設定値をヘルプを参考に見てみると
アウトプットが
–net-ro-port 30002
TCP raw output listen portsが30002

–net-sbs-port 30003
TCP BaseStation output listen portsが30003

–net-bo-port 30005
TCP Beast output listen portsが30005

インプットが
–net-bi-port 30004,30104
TCP Beast input listen(接続待ち)portsが30004
と30104

となっています。



airspy_adsbのダウンロード

cd
mkdir -p airspy
cd airspy
wget -O airspy.tgz https://airspy.com/downloads/airspy_adsb-linux-arm.tgz
tar xzf airspy.tgz
sudo cp airspy_adsb /usr/local/bin/

airspy_adsbを自動的に起動する

sudo nano /etc/systemd/system/airspy_adsb.service

で新規作成して

[Unit]
Description=Airspy ADS-B receiver
Documentation=https://discussions.flightaware.com/t/howto-airspy-mini-piaware-dump1090-fa-configuration/44343/2

[Service]
EnvironmentFile=/etc/default/airspy_adsb
ExecStart=/usr/local/bin/airspy_adsb $OPTIONS $NET $G $GAIN $M $SAMPLE_RATE
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=airspy_adsb
User=root
Group=root
Environment=NODE_ENV=production
Nice=-19

[Install]
WantedBy=multi-user.target

を貼り付け、保存。

続いて

sudo nano /etc/default/airspy_adsb

を開いて

#gain is 0 to 21, each step of gain is equivalent to about 3dB, so reduce in increments of 1 if 21 is too high
GAIN=21

#other options
#-f: error correction, only use 0 or 1, using a value larger than 1 produces bad data, feed services will block you
#-v: leave it on, will provide messages to system log, read with sudo journalctl -u airspy_adsb
#-x: dx mode, improves reception of weak messages, introduces bogus messages (opinion: not worth it)
#-p: bit packing, reduces USB bandwidth but slightly increases CPU load. Not recommended in most cases.
#-e: preamble filter sensitivity, values: 0.1 to 10.0 (higher values increase CPU load and can improve detection)                      
#-w <whitelist_threshold>   Whitelist threshold: 1..10 (recommended: 3, default: 2)
#-b: enable bias-t
OPTIONS= -v -f 1

#sample rate can be 12 or 20, 20 may not work depending on the system
SAMPLE_RATE=12

#don't change:
G=-g
M=-m

#network settings
NET= -l 29999:beast -l 47806:asavr  -c localhost:30004:beast

と編集、保存

最後の設定をヘルプで見てみると

-l 29999:beast
Beastはポート29999でリッスン(接続待ち)

-l 47806:asavr
Raw Airspy AVR formatで47806でリッスン

-c localhost:30004:beast
Beastをポート30004にプッシュ(こちらから接続)

となっています。

つまりairspy_adsbで受信したADS-Bデータ(Beast)を
airspy_adsbがdump1090-faに接続に行く形で渡し
dump1090-faが各Feederにデータを供給するので、
既存のdump1090-faを利用した各サイトの設定は
変更しなくていいわけです。

逆に言えば
dump1090-faの設定を変更せずに
/etc/default/airspy_adsbに
-c localhost:30004:beast
を書かなければ
RTL-SDRなどの別の受信機環境を残しつつ
Airspyと同時運用、比較が出来ます。
(VRSでReceiver設定で別ポートに接続してみるなど)


Flightradar24(fr24feed)のMLAT自動起動化

おまけですが、
この環境に移行すると前後して
Raspberry Piの再起動時に
fr24feedのMLATが自動で有効にならなくなってました。

systemd-analyze plot > ~/systemd-analyze.svg


で調べると、起動順的には
airspy_adsb.service

dump1090-fa.service

piaware.service

fr24feed.service
で問題無さそう。

ということで調べてみると、

https://forum.flightradar24.com/forum/radar-forums/flightradar24-feeding-data-to-flightradar24/187881-fr24-mlat-software-not-running-after-pi-restart

https://forum.flightradar24.com/forum/radar-forums/flightradar24-feeding-data-to-flightradar24/185320-feeding-data-to-flight-radar24-and-flightaware-at-the-same-time-2020#post185384

なんやらよく分からないけど
beastでフィードしてあげれば良いみたい。

というわけで設定

sudo nano /etc/fr24feed.ini
receiver="beast-tcp"
fr24key="xxxxxxxxxxxxxxxx"
host="127.0.0.1:30005"
bs="no"
raw="no"
logmode="1"
logpath="/var/log/fr24feed"
mlat="yes"
mlat-without-gps="yes"

と修正して保存。

Raspberry Piを再起動してみると
自動でMLATが有効になるのを確認できました。

Airspy R2 miniを使ってADS-Bをフィードする方法(fr24feedのMLAT自動起動化)」への6件のフィードバック

  1. こんにちは。私は石巻在住です。
    最近,フィード用のデバイスをairspyに変えたのですが、なかなか有効にならなくて、しばらく悩んだ後で、/etc/default/dump1090-fa に
    ENABLED=”yes”
    が抜けていることに気づきました(^^;;;。
    それでは今後ともよろしくお願いします。

    1. 佐藤さん、こんにちは。
      石巻ですか、私は仙台なのでお近くですね!

      https://github.com/wiedehopf/airspy-conf/wiki/Manual-airspy-configuration-to-work-with-dump1090-fa-and-piaware
      1b)を見ると
      ENABLED=”yes”
      の記載が漏れておりました。

      自分のラズパイの設定を見てみると
      ——-
      # dump1090-fa won’t automatically start unless ENABLED=yes
      ENABLED=yes
      ——-
      となっていたので
      airspyに変更前に
      もしかするとRTL-SDRの設定で
      上記の設定済だったのかもしれません。

      記載ミスでお手数おかけしてもうしわけないです。
      追記、修正させて頂きました。

      1. 佐藤です。おはようございます。
        霞目飛行場の話が出ていたので、仙台なのだなとは思っていました。
        マルツにはときどき行きます。

        前回書きませんでしたが、

        https://github.com/wiedehopf/airspy-conf/wiki/Manual-airspy-configuration-to-work-with-dump1090-fa-and-piaware

        の記述、

        wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.6.3_all.deb
        sudo dpkg -i piaware-repository_3.6.3_all.deb

        の”3.6.3″は、”5.0″にするのがいいかもしれません。
        確か、3.6.3はDebian Strechで、5.0はBuster対応ということだったような……。

        ただ、5.0にしてみたところ、Raspberry Piのローカルアドレス(192.168.0.xとか)を入力したときに、

        403 Forbidden

        が出るようになりました。192.168.0.x:8080の方は大丈夫です。
        いくらか調べてみたのですが、よくわかりませんでした(生成されるべきindex.htmlとかができていないときのエラーということです)。

        フライトシミュレータもやってみたくなりました。

        1. 佐藤さん、こんにちは。

          ご指摘のPiAwareの導入ページを見てきました。
          https://ja.flightaware.com/adsb/piaware/install

          自分が導入した時から
          ラズパイのOSバージョンも、PiAwareバージョンも上がっているみたいですね。

          https://github.com/wiedehopf/airspy-conf/wiki/Manual-airspy-configuration-to-work-with-dump1090-fa-and-piaware
          の記述が古くなってしまっているようですので
          その旨追記しておきました。

          ポート80番の件ですが、
          こちらではgraphs1090
          https://github.com/wiedehopf/graphs1090
          というソフトが80番を使っているので
          http://192.168.1.100/graphs1090/ は表示されますが
          http://192.168.1.100/ は403になりますね。

          情報ありがとうございます!

          1. こんにちは。

            その後もいろいろいじっていました。気になっていたのは、新しい Pi OS (Buster) と PiAware の5の組み合わせでは、fr24feedのLMATがどうしても有効にならないという問題でした。原因が究明できたわけではないのですが (Python のバージョンの問題?)、RadarBoxをインストールしたら、なぜか解消してしまったので、そのまま運用しています。それから、SDカードイメージ版のPiAwareなのですが、dump1090-faの中に

            # If you are using a PiAware sdcard image, this config file is regenerated
            # on boot based on the contents of piaware-config.txt; any changes made to this
            # file will be lost.

            なんてことがしれっと書いてあるので(このせいでずいぶん悩みました)、SDカードイメージ版でfr24feedと共存させるのはかなり難しそうです。

            それから、
            sudo systemctl restart airspy_adsb
            はどこに書いておくのがいいのでしょう。

            graphs1090も入れました。面白いですね。

          2. 佐藤さん、こんにちは。
            コメントありがとうございます。

            こちらは普通のラズパイOSに色々インストールして行ったので
            SDカードイメージ版のPiAwareはよく分からないのですが
            この英文からすると再起動の度に設定が戻っちゃうみたいですね。
            そうだとすると、工夫しないと
            他のサービスと同居させるのが難しくなっちゃうかもしれないです。

            ちょっとややこしいのですが、
            実際に受信したairspy_adsbから
            まずdump1090-faへデータが受け渡されて
            その他のdump1090の存在が前提である様々なFeederには
            dump1090-faからデータを送る形になります。

            その辺の送受信ポートなどの設定が
            /etc/default/dump1090-fa
            になるので、ここが変更不可になると
            airspy_adsbから受取ったデータを
            色々な所にfeedするのが難しくなるのかな、と思います。

            fr24feedのMLATの件ですが、
            こちらでは/etc/fr24feed.iniを編集して
            beastで送信するとうまく行きました。

            こちらの環境での流れとしては

            airspy_adsb.service
            /etc/default/airspy_adsb の中の設定で
            -c localhost:30004:beast として
            Beast形式でポート30004に接続しに行く

            dump1090-fa.service
            /etc/default/dump1090-fa の中の設定で
            -net-bi-port 30004,30104 として
            TCP Beast input listen(接続待ち)portsが30004と30104

            上記でairspy_adsbから30004でBeast形式で受けたデータを
            -net-bo-port 30005 で
            TCP Beast output listen(接続待ち) portsが30005
            dump1090-faでポート30005番にてBeast形式で再送信する(接続待ち)

            fr24feed.serviceでは
            /etc/fr24feed.ini の設定で
            receiver=”beast-tcp”
            fr24key=”xxxxxxxxxxxxxxxx”
            host=”127.0.0.1:30005″
            として
            上記のdump1090-faからBeast形式を30005番で受信(接続しに行く)して
            Flightradar24に実際にfeed(さらに再送信)するという感じです。

            sudo systemctl restart airspy_adsb
            はairspy_adsbをリスタートさせるコマンドですので
            airspy_adsbの設定を変更したときなどに
            設定の再読込時に使う物なのかなと思います。

            /etc/systemd/system/airspy_adsb.service
            を作成していて
            airspy_adsb.serviceが自動起動になっていれば
            特に追記する必要はないかと思います。

            graphs1090インストールされましたか!
            受信範囲などグラフで確認できるので面白いですよね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です