FlightAware Discussions

Exploring Radarbox24's RPi Feeder

This is Only An Exploration & Experiment.

Wrote Raspbian Stretch Lite to microSD card
Installed RadarBox24 feeder by bash Script.
I did NOT install dump1090-fa or dump1090-mutability.

After installing Radarbox24 feeder, edited its config file /etc/rbfeeder.ini and changed:

network_mode=true
to
network_mode=false

Then restarted rbfeeder.

With above setting, rbfeeder started its integral dump1090. However when I tried to read output of ports 30005 and 30003, there was no output.

pi@raspberrypi:~ $ netcat 127.0.0.1 30005
pi@raspberrypi:~ $ netcat 127.0.0.1 30003

.
I then issued following command to check the listening ports:

pi@raspberrypi:~ $ sudo netstat -anp | grep -w LISTEN

tcp    0    0 0.0.0.0:22         0.0.0.0:*    LISTEN    530/sshd
tcp    0    0 0.0.0.0:32088      0.0.0.0:*    LISTEN    296/rbfeeder
tcp    0    0 127.0.0.1:32004    0.0.0.0:*    LISTEN    296/rbfeeder
tcp    0    0 127.0.0.1:32457    0.0.0.0:*    LISTEN    296/rbfeeder
tcp    0    0 127.0.0.1:32458    0.0.0.0:*    LISTEN    296/rbfeeder
tcp    0    0 127.0.0.1:32459    0.0.0.0:*    LISTEN    296/rbfeeder
tcp6   0    0 :::22              :::*         LISTEN    530/sshd

.

Explored these ports one-by-one

1 - Port 32088
pi@raspberrypi:~ $ netcat 127.0.0.1 32088

FmJyZxQFBgkPAw==~*FmRjdBR0Bg1zcnEYBQUJDgYNBAMDBAQNDAUaFAcFAAEbGRQbGhQaHx4YBhkU~*FmRjdBR0Bgh0dQMYBQUJDgYNBAMDBAQNDAUaFBofHhgbGRQbGhQaHw==~*FmRjdBR0BgxyAgEYBQUJDgYNBAMDBAQNDAUaFAEHAgQbBAEHGgoHAx4ZAQEIGxoMBR0LAA8EDQUHAAAGAgIOGRUADxYFAgAEBwcBDg8MAgECGBsFDgQHFBoCHhg=~*FmRjdBR2AA0GCgAYBQUJDgYNBAMDBAQNDAUaFAUFBQEHGQwEBhQEAQIYGgwOBxoUAgAcAAACDQcPCAABAwIOBRQaDggYAwYEBgUADwcODwUGBxsZFBsHFBo=~*FmRjdBR0Bg8PBXEYBQUJDgYNBAMDBAQNDAUae3FnaHoXFRgbBwAEBh4CBxkJDgYUAAMeGAMGFgYEAQIHAgcHAg4GAQoaHgUNGQUPBwEPAwEBBQEBAQAaFAYCBQIbGQkbGg==~*FmRjdBR0Bg4FBXMYBQUJDgYNBAMDBAQNDAUaFBofHhgbGRQbGhQaHw==~*FmRjdBR0Bg4GcQAYBQUJDgYNBAMDBAQNDAUaFAQAAgQHGQsBBhQAAx4CBxkUAwIWBQEBAQEHDgUECAEDARgaAg8ZBA4OBQMFBAMLBwYKBR8eBAICCBsaCRof~*FmRjdBR0BgsFAQcYBQUJDgYNBAMDBAQNDAUaFAUCAgYCGRQbGhQaHx4YGwQUGw==~*FmRjdBR0Bgh0CncYBQUJDgYNBAMDBAQNDAUaa31lBQEHBhgbBQgDAx4FAwUUBQQIGh4 ^C

.

2 - Port 32004

pi@raspberrypi:~ $ netcat 127.0.0.1 32004
^C

.

1 - Port 32457

pi@raspberrypi:~ $ netcat 127.0.0.1 32457
2

4▒n \▒2

4▒; ▒▒▒▒2

4ѣ) ▒▒▒y2

5▒
▒▒▒▒2

5▒U1▒▒J▒z2

6C▒3▒▒J▒zPuTTY2

7JL▒▒▒m,3

▒3▒4    ▒▒▒ ^C

.

3 - Port 32458

pi@raspberrypi:~ $ netcat 127.0.0.1 32458 

@000C723631915DC0636C56CBF5;
@000C723800145DC0636C56CBF5;
@000C7238D07C8DC063589908D98B70A08D1E5EE0;
@000C723B51085DC0636C56CBF5;
@000C723C178DA00005B0F6D9B9187FFFFE85B965;
@000C723C5D5B5D71C041021C67;
@000C723DAF435DC0636C56CBF5;
@000C72405A7D02A186131700E1;
@000C724193D98DC0404F58218120E707F64DDCAF;
@000C7243D92F8DC0636C990CBB13386085DD3B36;
^C

.

3 - Port 32459

pi@raspberrypi:~ $ netcat 127.0.0.1 32459

MSG,7,1,1,C06E87,1,2019/05/20,10:48:46.135,2019/05/20,10:48:46.210,,27225,,,,,,,,,,
MSG,7,1,1,C06E87,1,2019/05/20,10:48:46.143,2019/05/20,10:48:46.212,,27225,,,,,,,,,,
MSG,8,1,1,C01AAE,1,2019/05/20,10:48:46.145,2019/05/20,10:48:46.213,,,,,,,,,,,,0
MSG,8,1,1,C01AAE,1,2019/05/20,10:48:46.159,2019/05/20,10:48:46.216,,,,,,,,,,,,0
MSG,5,1,1,C06358,1,2019/05/20,10:48:46.160,2019/05/20,10:48:46.216,,10125,,,,,,,0,,0,
MSG,4,1,1,C06358,1,2019/05/20,10:48:46.171,2019/05/20,10:48:46.218,,,283,24,,,1920,,,,,0
MSG,5,1,1,C0404F,1,2019/05/20,10:48:46.172,2019/05/20,10:48:46.219,,3400,,,,,,,0,,0,
MSG,8,1,1,C060B5,1,2019/05/20,10:48:46.190,2019/05/20,10:48:46.265,,,,,,,,,,,,0
MSG,8,1,1,C06A8B,1,2019/05/20,10:48:46.192,2019/05/20,10:48:46.266,,,,,,,,,,,,0
^C

.

The output of above commands show that:

  • Beast format data is available at port 32457
  • Basestation formate data is available at port 32459

.

NEXT, did the package install of piaware data feeder, and configured it as follows:

sudo piaware-config receiver-type other 
sudo piaware-config receiver-host 127.0.0.1 
sudo piaware-config receiver-port 32457 
sudo systemctl restart piaware 

.
CHECKED

pi@raspberrypi:~ $ sudo systemctl status piaware
● piaware.service - FlightAware ADS-B uploader
   Loaded: loaded (/lib/systemd/system/piaware.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-05-20 11:00:24 EDT; 1min 47s ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 7675 (piaware)
   CGroup: /system.slice/piaware.service
           ├─7675 /usr/bin/piaware -p /run/piaware/piaware.pid -plainlog -statusfile /run/piaware/status.json
           ├─7702 /usr/lib/piaware/helpers/fa-mlat-client --input-connect 127.0.0.1:32457 --input-type auto --results beast,connect,localh
           └─7711 /usr/lib/piaware/helpers/faup1090 --net-bo-ipaddr 127.0.0.1 --net-bo-port 32457 --stdout --lat 43.xxx --lon -79.xxx

May 20 11:00:28 raspberrypi piaware[7675]: piaware received a message from rbfeeder!
May 20 11:00:28 raspberrypi piaware[7675]: mlat-client(7702): Input connected to 127.0.0.1:32457
May 20 11:00:28 raspberrypi piaware[7675]: mlat-client(7702): Detected BEAST format input
May 20 11:00:28 raspberrypi piaware[7675]: mlat-client(7702): Input format changed to BEAST, 12MHz clock
May 20 11:00:28 raspberrypi piaware[7675]: mlat-client(7702): Beast-format results connection with ::1:30104: [Errno 111] Connection refus
May 20 11:00:29 raspberrypi piaware[7675]: piaware has successfully sent several msgs to FlightAware!
May 20 11:00:59 raspberrypi piaware[7675]: mlat-client(7702): Beast-format results connection with 127.0.0.1:30104: [Errno 111] Connection
May 20 11:00:59 raspberrypi piaware[7675]: 85 msgs recv'd from rbfeeder; 85 msgs sent to FlightAware
May 20 11:01:29 raspberrypi piaware[7675]: mlat-client(7702): Beast-format results connection with ::1:30104: [Errno 111] Connection refus

.

THE MAP
As the integral dump1090 of rbfeeder does NOT serve a map, I decided to feed VRS from rbfeeder. I tried both port 32457 (beast) and 32459 (basestation), but VRS gave error message “No connection could be made as the target machine actively refused it”.

I then configured VRS as “Push receiver”, and gave following commands, and VRS started showing planes on its map :smile: :

  • With VRS set to “AVR or Beast Raw Feed” format:
    pi@raspberrypi:~ $ /bin/nc 127.0.0.1 32457 | /bin/nc 192.168.0.10 30005 
    

.

  • With VRS set to BaseStation format
    pi@raspberrypi:~ $ /bin/nc 127.0.0.1 32459 | /bin/nc 192.168.0.10 30003 
    
2 Likes

Thank you for the information.
I wonder if there is a way for direct comparison between the rb24 feeder and the dump1090-fa in terms of positions and planes?

It’s using the same code, dump1090.
Probably a current version, if you are unlucky an old version.
Maybe it doesn’t use --fix (forward error correction for CRC) reducing results a bit.

Overall not much to wonder about, just use dump1090-fa :slight_smile:

2 Likes

The Radarbox24 feeder is a “black box”. The feeder and dump1090 are encapsuled inside one binary. You cant find seperate dump1090 and asses its version, config, and capabilities. While repacking, they have removed the map part also (html folder + web server).

Comparing with the fr24feed, the fr24feed has separate binaries for feeder and for dump1090. Upto version 18.xx, it was /usr/lib/fr24/mr-dump1090, and now /usr/bin/dump1090-mutability.

1 Like

They’re required to provide the source code if they’re using librtlsdr (older dump1090 is BSD-licensed, so that’s not where the requirement comes from, but librtlsdr itself is GPL-licensed), so maybe you could send them an email and ask for it?

Their support staff wont even understand this query, and most likely it will go unanswered. Only their software developers can answer this, but they are not accessible to public.

It is my assumption that they are using dump1090 as decoder. It is quiet likely that they are using some other software to decode. Their decoder uses completely different ports, and there is no web server and map.

I am not sure if they are using librtlsdr. I will write Raspbian image, then run command dpkg -l | grep librtlsdr , then install rbfeeder by bash script, and again run the command dpkg -l | grep librtlsdr.
.

Downloaded their install script. Installation of dependencies (except dirmngr) is NOT included

pi@piaware:~ $ wget -O inst_rbfeeder.sh  http://apt.rb24.com/inst_rbfeeder.sh

pi@piaware:~ $ cat inst_rbfeeder.sh
#!/bin/sh
#

RED='\033[0;31m'
NC='\033[0m' # No Color
YELLOW='\033[1;33m'
WHITE='\033[1;37m'
LGREEN='\033[1;32m'
BOLD='\033[1m'
RESET_BOLD='\033[2m'


if [ "$(id -u)" != "0" ]; then
        echo -e "You must run this script with root privileges" 1>&2
        exit 1
fi

# Install packages needed by script
apt-get update -y
apt-get install dirmngr -y

# Import our key to apt-key
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 1D043681


# Move old source
/bin/rm -f /etc/apt/sources.list.d/rb24.list

# Create a new debian repository source file
echo 'deb https://apt.rb24.com/ rpi-stable main' > /etc/apt/sources.list.d/rb24.list

# Update apt and install software
apt-get update -y
apt-get install rbfeeder -y

echo -e "\033c"

echo -e ""
echo -e "${RED}!!!! ${BOLD}IMPORTANT${RESET_BOLD} !!!!${NC}"
echo -e ""
echo -e "${WHITE}By default, RBFeeder is configured to connect to your local dump1090 instance (localhost,"
echo -e "port 30005). If you want to use a USB RTL-SDR dongle instead, please run this command:"
echo -e ""
echo -e "${LGREEN}sudo rbfeeder --set-network-mode off --no-start${WHITE}"
echo -e ""
echo -e "Then, restart the daemon:"
echo -e ""
echo -e "${LGREEN}sudo systemctl restart rbfeeder${WHITE}"
echo -e ""
echo -e "After a few seconds, RBFeeder will connect to the AirNav servers and you can view your"
echo -e "sharing-key with this command:"
echo -e ""
echo -e "${LGREEN}sudo rbfeeder --showkey${WHITE}"
echo -e ""
echo -e "If you already have a sharing-key from preivous a installation, you can set the same"
echo -e "key using this command:"
echo -e ""
echo -e "${LGREEN}sudo rbfeeder --setkey ‹your sharing key›${WHITE}"
echo -e ""
echo -e ""
echo -e "Installation finished."
echo -e ""
echo -e "${NC}"

(1) Made a fresh install of Raspbian Stretch, then ran these commands. No output

pi@raspberrypi:~ $ dpkg -l | grep librtlsdr
pi@raspberrypi:~ $
pi@raspberrypi:~ $ grep " install " /var/log/dpkg.log
pi@raspberrypi:~ $

.

(2) Installed Radarbox24’s feeder by bash script, and again ran the above commands. confirmed that the librtlsdr0 gets installed during installation of package rbfeeder

pi@raspberrypi:~ $ grep " install " /var/log/dpkg.log
2019-05-20 22:30:42 install dirmngr:armhf <none> 2.1.18-8~deb9u4
2019-05-20 22:34:02 install librtlsdr0:armhf <none> 0.5.3-11+rpt1
2019-05-20 22:34:02 install rbfeeder:armhf <none> 0.2.19-20190226175114
pi@raspberrypi:~ $ dpkg -l | grep librtlsdr
ii  librtlsdr0:armhf   0.5.3-11+rpt1   armhf   Software defined radio receiver for Realtek RTL2832U (library)
1 Like

Have you read /usr/share/doc/rbfeeder/copyright ?

License: AIRNAV1.0
 This software includes precompiled version of some libraries in order
 to work. These softwares are released under GPLv2 and BSD licenses and 
 are available in these links:
 .
 librtlsdr - GPLv2 licensed Software Defined Radio library <
 https://github.com/steve-m/librtlsdr>
 dump1090 original - BSD licensed Mode-S Frame Demodulator/Decoder
 <https://github.com/antirez/dump1090>
 dump1090-mutability - GPLv2 <https://github.com/mutability/dump1090>

So it’s clear they have dump1090 built into their binary.

Well they are technically required to provide the sources but i agree that such endeavors might be futile.
Maybe try the email address listed in the file i quoted above?
Didn’t want the mail address in the post here to be polite.

1 Like

No, I did not read it, did not even know it is there. Thanks for the information.

Now there is no need to email them as everything is clear from their copyright document.

If they’re linking their own code together with librtlsdr, or especially with dump1090-mutability, then they need to provide their own code as well. It’s easy to accidentally overlook the GPL-ness of librtlsdr but it’s a lot harder to overlook the GPL-ness of dump1090-mutability. I might have to follow up on that one.

1 Like