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?

2 Likes

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.

2 Likes

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.

3 Likes

It took a while, but I talked to AirNav about this and they have made the rbfeeder source code available at http://apt.rb24.com/source/rbfeeder.zip

I’ve also mirrored that onto github at GitHub - mutability/rbfeeder: AirNav rbfeeder source code

4 Likes

This is great news.

Since almost one year, they have made available to their feeders, mlat-client package which they have built from source-code at github, and which could be installed by apt-get install mlat-client.

However this package, which could be installed on Stretch, fails to install on Buster due to dependencies issue. When I switched to Buster I built it from source code as I needed it for both the rbfeeder mlat and adsbexchange mlat.

1 Like

Can you provide the instructions?

https://www.airnavsystems.com/forum/index.php?topic=101771.msg407051#msg407051

.

1 Like

RB24 is up and running completely. I wish that we could convince Flightaware to have live audio feeds as RB24 does. I am looking at setting up a ATC feed.

The RadarBox24 feeder’s integral dump1090-rb

Gets activated by rbfeeder’s setting network_mode=false

 

pi@raspberrypi:~ $ /usr/bin/dump1090-rb --help
-----------------------------------------------------------------------------
| dump1090 ModeS Receiver                                dump1090-rb 1.0.10 |
| build options: ENABLE_RTLSDR                                              |
-----------------------------------------------------------------------------
--device-type <type>     Select SDR type (default: rtlsdr)

      rtlsdr-specific options (use with --device-type rtlsdr)

--device <index|serial>  select device by index or serial number
--enable-agc             enable digital AGC (not tuner AGC!)
--ppm <correction>       set oscillator frequency correction in PPM
--direct <0|1|2>         set direct sampling mode

      ifile-specific options (use with --ifile)

--ifile <path>           read samples from given file ('-' for stdin)
--iformat <type>         set sample format (UC8, SC16, SC16Q11)
--throttle               process samples at the original capture speed


      Output modes

--raw                    Show only messages hex values
--modeac                 Enable decoding of SSR Modes 3/A & 3/C
--mlat                   display raw messages in Beast ascii mode
--onlyaddr               Show only ICAO addresses (testing purposes)
--metric                 Use metric units (meters, km/h, ...)
--gnss                   Show altitudes as HAE/GNSS when available
--quiet                  Disable output to stdout. Use for daemon applications
--show-only <addr>       Show only messages from the given ICAO on stdout
--snip <level>           Strip IQ file removing samples < level


      Decoder settings

--gain <db>              Set gain in dB (default: varies by SDR type)
--freq <hz>              Set frequency (default: 1090 Mhz)
--fix                    Enable single-bit error correction using CRC
--fix-2bit               Enable two-bit error correction using CRC
                          (use with caution!)
--no-fix                 Disable error correction using CRC
--no-fix-df              Disable error correction of the DF message field
                          (reduces CPU requirements)
--no-crc-check           Disable messages with broken CRC (discouraged)
--enable-df24            Enable decoding of DF24 Comm-D ELM messages
--lat <latitude>         Reference/receiver latitude for surface positions
--lon <longitude>        Reference/receiver longitude for surface positions
--max-range <distance>   Absolute maximum range for position decoding (in NM)


      Adaptive gain

--adaptive-burst                     Adjust gain for too-loud message bursts
--adaptive-burst-change-delay <s>     Set delay after changing gain before
                                       resuming burst control (seconds)
--adaptive-burst-alpha <a>            Set burst rate smoothing factor
                                       (0..1, smaller=more smoothing)
--adaptive-burst-loud-rate <r>        Set burst rate for gain decrease
--adaptive-burst-loud-runlength <l>   Set burst runlength for gain decrease
--adaptive-burst-quiet-rate <r>       Set burst rate for gain increase
--adaptive-burst-quiet-runlength <l>  Set burst runlength for gain increase
--adaptive-range                     Adjust gain for target dynamic range
--adaptive-range-target <db>          Set target dynamic range in dB
--adaptive-range-alpha <a>            Set dynamic range noise smoothing factor
                                       (0..1, smaller=more smoothing)
--adaptive-range-percentile <p>       Set dynamic range noise percentile
--adaptive-range-change-delay <s>     Set delay after changing gain before
                                       resuming dynamic range control (seconds)
--adaptive-range-scan-delay <s>       Set scan interval for dynamic range
                                       gain scanning following a gain decrease
                                       due to an increase in noise (seconds)
--adaptive-range-rescan-delay <s>     Set periodic rescan interval for dynamic
                                       range gain scanning (seconds)
--adaptive-min-gain <g>              Set gain adjustment range lower limit (dB)
--adaptive-max-gain <g>              Set gain adjustment range upper limit (dB)
--adaptive-duty-cycle <p>            Set adaptive gain duty cycle % (1..100)

      Network connections

--net                    Enable networking with default ports unless overridden
--no-modeac-auto         Don't enable Mode A/C if requested by a net connection
--net-only               Enable just networking, no RTL device or file used
--net-bind-address <ip>  IP address to bind to (use 127.0.0.1 for private)
--net-ri-port <ports>    TCP raw input listen ports  (default: 30001)
--net-ro-port <ports>    TCP raw output listen ports (default: 30002)
--net-sbs-port <ports>   TCP BaseStation output listen ports (default: 30003)
--net-bi-port <ports>    TCP Beast input listen ports  (default: 30004,30104)
--net-bo-port <ports>    TCP Beast output listen ports (default: 30005)
--net-stratux-port <ports>  TCP Stratux output listen ports (default: disabled)
--net-ro-size <size>     TCP output minimum size (default: 0)
--net-ro-interval <rate> TCP output memory flush rate in seconds (default: 0)
--net-heartbeat <rate>   TCP heartbeat rate in seconds
                          (default: 60 sec; 0 to disable)
--net-buffer <n>         TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb)
--net-verbatim           Make output connections default to verbatim mode
                           (forward all messages without correction)
--forward-mlat           Allow forwarding of received mlat results

      Stats and json output

--stats                  Show stats summary at exit.
--stats-every <seconds>  Show and reset stats every <seconds> seconds
--stats-range            Collect/show range histogram
--write-json <dir>       Periodically write json output to <dir>
                          (for serving by a separate webserver)
--write-json-every <t>   Write json aircraft output every t seconds (default 1)
--json-stats-every <t>   Write json stats output every t seconds (default 60)
--json-location-accuracy <n>  Accuracy of receiver location in json metadata
                          (0=no location, 1=approximate, 2=exact)

      Interactive mode

--interactive                       Interactive mode refreshing data on screen.
                                     Implies --throttle
--interactive-ttl <sec>             Remove from list if idle for <sec>
--interactive-show-distance         Show aircraft distance and bearing
                                     (requires --lat and --lon)
--interactive-distance-units <u>    Distance units ('km', 'sm', 'nm')
--interactive-callsign-filter <r>   Filter rows by callsign against regex

      Misc

--wisdom <path>          Read DSP wisdom from given path
--version                Show version, build and DSP options
--help                   Show this help
pi@raspberrypi:~ $

 

 

1 Like

Converting Non-Configurable, Non-Controlable dump1090-rb Into Fully User-Configurable, Systemd-Controlled App

When RadarBox24’s feeder software rbfeeder is installed, it installs a binary /usr/bin/dump1090-rb. This binary is actually clone of binary of dump1090-fa.

However unlike dump1090-fa, the RadarBox24 supplied dump1090-rb is stripped-off of systemd service file, start file, config file and map like skyaware.

All the config parameters are hard-coded in the rbfeeder itself which, on it’s start, issues start command to the dump1090-rb binary, passing to it all the hard-coded parameters.

The only control users have over dump1090-rb is the choice if they want to use external decoder or dump1090-rb. This is done by the user changing setting network_mode= in rbfeeder’s config file. If the choose network_mode=false, rbfeeder starts it’s supplied dump1090-rb. If user chooses network_mode=true, the rbfeeder does NOT start dump1090-rb and waits for data from external decoder on port 30005.

This attitude of keeping dump1090-rb un-configurable by users is very annoying if someone wants to use manual setting of gain, or choose adapative-gain.

In order to make dump1090-rb user-configurable, and start it by systemd service at boot / reboot and manually by user, I have written following bash script

sudo bash -c "$(wget -O - https://github.com/abcd567a/temp/raw/main/make-dump1090-rb-configurable.sh)"   

 

The above bash script does following:

(1) In file /etc/rbfeeder.ini changes setting:
From
network_mode=false
To
network_mode=true

(2) Creates following systemd service file:
/lib/systemd/system/dump1090-rb.service

This systemd service file automatically starts dump1090-rb at boot and reboot. It also provides following commands, enabling user to manually stop, restart, and check status.

sudo systemctl status dump1090-rb   
sudo systemctl restart dump1090-rb
sudo systemctl stop dump1090-rb   

(3) Creates following user-editable cofig file for dump1090-rb config parameters:

/etc/default/dump1090-rb

The default contents of this user-editable file are as follows:

--gain 49.6
--device 0
--net
--net-ri-port 30001
--net-ro-port 30002
--net-sbs-port 30003
--net-bi-port 30004,30104
--net-bo-port 30005
--quiet
--write-json /var/run/dump1090-rb
--mlat
--forward-mlat
--modeac
--fix
--gnss

 

Highlights:

(a) The rbfeeder ran dump1090-rb with --write-json /dev/shm.
The user-editable config file uses --write-json /var/run/dump1090-rb. This helps in installing graphs1090 and tar1090.

(b) User can change default gain valu 49.6 to whatever value he wants (between 0 and 60) .

(c) If using more than one dongle, the user can change device index/serial from default “–device 0” to “–device nnnn” where nnnn is the serial number to which he has serialized his dump1090 dongle.

(d) User can add immediately below last line, following two lines:

--lat xx.xxxx
--lon yy.yyyy

(Replace xx.xxxx and yy.yyyy by your actual latitude and longitude)

(e) User can switch from a fixed value of gain to automatic adaptive gain control by adding following two lines in the file /etc/default/dump1090-rb

--adaptive-range
--adaptive-burst

 

 

graph1090 for Gain.

Before 20.00 hrs, Gain was set at fixed value 60 (not plotted by graphs1090)
At 20.00 hrs added following two lines to file /etc/default/dump1090-rb

--adaptive-range
--adaptive-burst

dump1090-localhost-misc-24h

 

Graph below shows that when gain was changed from fixed 60 to adaptive at about 20 hrs, the messages > -3 dBFS dropped significantly

 

Click on Screenshot to See Larger Size

 

image

 

Click on Screenshot to See Larger Size

 

INSTALLED TAR1090:

As the dump1090-rb lacks map (no html folder, only binay), I decided to install tar1090 to provide the missing map.

Attempt to install tar1090 by running bash script at github/wiedehopf failed. Had to do following work-around:

(1) First installed package lighttpd
(2) AFTER installing package lighttpd, downloaded the installation script from GitHub - wiedehopf/tar1090: Provides an improved webinterface for use with ADS-B decoders readsb / dump1090-fa.
(3) AFTER downloading install script, issued sed command to modify the script and make it suitable for re-configured version of dump1090-rb.
(4) AFTER modifying installation script by sed command, run the modified installation script to install tar1090.

Given below are commands for all above 4 steps. These commands to be issueed in the same order as given below.

sudo apt install lighttpd   

wget -O install-tar1090.sh https://github.com/wiedehopf/tar1090/raw/master/install.sh   

sudo sed -i 's/dump1090-fa/dump1090-rb/g' install-tar1090.sh   

sudo bash install-tar1090.sh   

 

tar1090 with “DARK” mode ON (Default Setting)

 

tar1090 with “DARK” mode OFF

 

INSTALLED GRAPHS1090:

Attempt to install graphs1090 by running bash script at github/wiedehopf failed. Had to do following work-around:

(1) First install package lighttpd

(2) AFTER installing lighttpd, run the bash command at GitHub - wiedehopf/graphs1090: Graphs for readsb / dump1090-fa / dump1090 (based on dump1090-tools by mutability) to install graphs1090

(3) AFTER installing graphs1090, run another command to make graphs1090 use data from dump1090-rb

Below are all the three commands listed above. These commands to be executed in the same order as given below.

sudo apt install lighttpd 

sudo bash -c "$(curl -L -o - https://github.com/wiedehopf/graphs1090/raw/master/install.sh)"   

sudo ln -sf /var/run/dump1090-rb /usr/share/graphs1090/data-symlink/data   

 

 

1 Like

How To Manually Set Gain of dump1090-rb

@obj for information please

By default the dump1090-rb is set to adaptive-gain (i.e. dump1090-rb automatically changes gain value according to current signal strength).

The file /etc/rbfeeder.ini does not have any provision to change gain setting of dump1090-rb from adaptive-gain to gain value desired by the user.

By trial & error, I dig out 3 undocumented parameters, through which users can set a gain value of their choice, and disable adaptive-gain.

Following is the method to do it:

(1) Open file rbfeeder.ini to edit

sudo nano /etc/rbfeeder.ini   

(2) In the file opened, add following 3 lines in [client] section of file /etc/rbfeeder.ini

IMPORTANT NOTE: Replace 28.0 by your desired value of gain (any value between 0 and 60)

dump_gain=28.0
dump_adaptive_range=false
dump_adaptive_burst=false

Please see screenshot attached below

(3) Save and close file

(4) Restart rbfeeder

sudo systemctl restart rbfeeder   

(5) Check status

sudo systemctl status rbfeeder | sed 's/ / /'   

(6) In output of above command, look at this portion of output:

CGroup: /system.slice/rbfeeder.service
├─105976 /usr/bin/rbfeeder
├─105985 /usr/bin/python3 /usr/bin/mlat-client --input-type dump1090 --input-connect 127.0.0.1:32457 --server mlat1.rb24.com:40900 --lat 43.580000 --lon -79.620000 --alt 155 --user EXTRPI000036 --results beast,connect,127.0.0.1:32004
└─105986 /usr/bin/dump1090-rb --write-json /dev/shm/ --net --quiet --mlat --forward-mlat --net-bo-port 30105 --lat 43.580000 --lon -79.620000 –gain 28.00 --modeac --fix --gnss

 

 

LATER ADDITION

Just for comparison purpose, I removed the 3 lines added as above, so now dump1090-rb runs with default settings, which are hard-coded in rbfeeder. The gain value is no more there, and adaptive-range + adaptive-burst are activated. Please see below.

CGroup: /system.slice/rbfeeder.service
├─282999 /usr/bin/rbfeeder
├─283008 /usr/bin/python3 /usr/bin/mlat-client --input-type dump1090 --input-connect 127.0.0.1:32457 --server mlat1.rb24.com:40900 --lat 43.580000 --lon -79.620000 --alt 155 --user EXTRPI000036 --results beast,connect,127.0.0.1:32004
└─283012 /usr/bin/dump1090-rb --write-json /dev/shm/ --net --quiet --mlat --forward-mlat --net-bo-port 30105 --lat 43.580000 --lon -79.620000 --modeac --fix –adaptive-burst --adaptive-range --gnss

 

image

 

1 Like