Help with SDRplay RSP1B to upload adsb data

I got a new SDRplay RSP1B and its performance is significantly better than my rtl-sdr v4 and would like to use it for adsb data. I cant find any way to configure it to upload to flightaware or fr24 or any other sites. I saw an older post How to feed FA using Windows computer that showed before you could upload to the ip but it doesn’t seem to work now. I’m wondering if anyone has any experience uploading from virtual radar to flightaware, fr24, adsb exchange?

The SDRplay uses its own API to work so it doesn’t function like the usb dvbt but I can use their software and a plugin to send all the data to virtual radar, is there anyway to send this to other services?

This does not directly answer your question, but dump1090-fa now supports SoapySDR (see this pull request). Ignore the bit about dev branch, it is now incorporated into master. So, you could connect the SDRPlay device to dump1090-fa via Soapy and then add feed clients as you desire. Just throwing that out as a suggestion as it gets around the VRS issue, but it may not be the solution you are looking for. Good luck.

pi@piaware:~ $ dump1090-fa --help

SoapySDR-specific options (use with --device-type soapy)

--device <string>          select/configure device
--channel <num>            select channel if device supports multiple channels (default: 0)
--antenna <string>         select antenna (default depends on device)
--bandwidth <hz>           set the baseband filter width (default: 3MHz, SDRPlay: 5MHz)
--enable-agc               enable Automatic Gain Control if supported by device
--gain-element <name>:<db> set gain in dB for a named gain element

I’ve been having issues with using dump1090-fa’s SoapySDR with a RSP1A on raspberry pi. I know on a hardware and sdrplay API level, its all good because SDRplay’s implementation of a rather old dump1090 works OK. FA’s newer implementation though is preferable because of extra things it stuffs into .json files.

./dump1090 --device-type soapy --device 2235071D99

Thu Dec 19 19:10:46 2024 EST dump1090-fa unknown starting up.
soapy: selected device: driver=sdrplay, label=SDRplay Dev0 RSP1A 2103020B98, serial=2103020B98
[INFO] devIdx: 0
[INFO] SerNo: 2103020B98
[INFO] hwVer: 255
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000
soapy: hardware info: sdrplay_api_api_version=3.150000, sdrplay_api_hw_version=255
soapy: driver key: SDRplay
soapy: hardware key: RSP1A
soapy: total gain: 48.0dB; IFGR=59.0dB; RFGR=9.0dB
soapy: frequency: 1090.0 MHz
soapy: sample rate: 2.4 MHz
soapy: bandwidth: 0.2 MHz
soapy: AGC mode: manual
soapy: antenna: RX
soapy: freq correction: 0.0 ppm
[INFO] Using format CS16.
[ERROR] error in activateStream() - Init() failed: sdrplay_api_Fail
soapy: activateStream failed:
Thu Dec 19 19:10:46 2024 EST Waiting for receive thread termination
Thu Dec 19 19:10:47 2024 EST Abnormal exit.

(1) Which version of dump1090-fa you are using? The log says unknown

(2) How did you install this unknown version of dump1099-fa?

1 Like

Just run the specialized dump1090 and transfer the data to dump1090-fa via socat.

Or cut out socat and use readsb which will produce json files very similar to dump1090-fa. You can specify --net-connector 127.0.0.1,20005,beast_in to ingest data from the sdrplay dump1090 listening for beast output on 20005.
Make sure you don’t use overlapping ports.
https://github.com/wiedehopf/adsb-scripts/wiki/Automatic-installation-for-readsb
Guess i should note that install script will remove dump1090 variants installed as packages as they usually conflict with readsb. You can always modify the install script or build your own readsb debian package https://github.com/wiedehopf/readsb which won’t do that.

I guess a quick rundown from the beginning. Raspberry Pi 5. Pi OS 64-bit (latest version).

Then:
apt upgrade
apt install soapysdr-tools soapysdr0.8-module-rtlsdr uhd-soapysdr libsoapysdr0.8 install cmake make gcc g++ libsoapysdr-dev libncurses-dev librtlsdr-dev libbladerf-dev libhackrf-dev liblimesuite-dev libusb-1.0-0-dev debhelper

Installed SoapySDR3 (git clone GitHub - pothosware/SoapySDRPlay3: Soapy SDR plugin for SDRPlay APIv3; mkdir build; cd build, cmake …; make install).
Ensure SoapySDRUtil --find can find the RSP1A device.
Installed SDRPlay_RSP_API-Linux-3.15.2 (API - SDRplay - (ensure the sdrplay daemon is running/enabled))
Install dump1090 (git clone GitHub - flightaware/dump1090: Dump1090 is a simple Mode S decoder for RTLSDR devices)

When I compile dump1090, make will compile with these flags:

root@skytrax:/usr/local/src/dump1090# make -j4
Building with:
cc -I. -D_POSIX_C_SOURCE=200112L -DMODES_DUMP1090_VERSION="unknown" -DMODES_DUMP1090_VARIANT="dump1090-fa" -D_DEFAULT_SOURCE -DENABLE_CPUFEATURES -Icpu_features/include -DENABLE_SOAPYSDR -DSTARCH_MIX_AARCH64 -O3 -g -std=c11 -fno-common -Wall -Wmissing-declarations -Werror -Wformat-signedness -W -c dump1090.c -o dump1090.o

  • Version string: unknown*
    cc -I. -D_POSIX_C_SOURCE=200112L -DMODES_DUMP1090_VERSION="unknown" -DMODES_DUMP1090_VARIANT="dump1090-fa" -D_DEFAULT_SOURCE -DENABLE_CPUFEATURES -Icpu_features/include -DENABLE_SOAPYSDR -DSTARCH_MIX_AARCH64 -O3 -g -std=c11 -fno-common -Wall -Wmissing-declarations -Werror -Wformat-signedness -W -c anet.c -o anet.o

Of course, if I build like I’m supposed to (prepare-build.sh bookworm; cd package-bookworm; dpkg-buildpackage -b --no-sign); then it builds with version 9.0.

root@skytrax:/usr/local/src/dump1090/package-bookworm# ./dump1090 --device-type soapy
Fri Dec 20 20:59:50 2024 EST dump1090-fa 9.0 starting up.
soapy: selected device: driver=sdrplay, label=SDRplay Dev0 RSP1A 2103020B98, serial=2103020B98
[INFO] devIdx: 0
[INFO] SerNo: 2103020B98
[INFO] hwVer: 255
[INFO] rspDuoMode: 0
[INFO] tuner: 1
[INFO] rspDuoSampleFreq: 0.000000
soapy: hardware info: sdrplay_api_api_version=3.150000, sdrplay_api_hw_version=255
soapy: driver key: SDRplay
soapy: hardware key: RSP1A
soapy: total gain: 48.0dB; IFGR=59.0dB; RFGR=9.0dB
soapy: frequency: 1090.0 MHz
soapy: sample rate: 2.4 MHz
soapy: bandwidth: 5.0 MHz
soapy: AGC mode: manual
soapy: antenna: RX
soapy: freq correction: 0.0 ppm
[INFO] Using format CS16.
[ERROR] error in activateStream() - Init() failed: sdrplay_api_Fail
soapy: activateStream failed:
Fri Dec 20 20:59:50 2024 EST Waiting for receive thread termination
Fri Dec 20 20:59:52 2024 EST Abnormal exit.

I understand what you’re saying here… I’m pretty sure that would work out for me even as a long-term solution… Bugs me that the dump1090-fa supports soapy but breaks with one of the more popular sdrs, (RSP1A and RSP1B) out there and I haven’t been able to debug the api calls successfully yet.

Please brows this post, it may help

This Reddit thread has instructions it says work for a 1B and dump1090-fa. Maybe you are missing the bit about editing /etc/default/dump1090-fa?

I was able to get my RSP1B + Raspberry Pi working with fr24 with these steps:

  1. Flash an SD card with Pi24 image and boot your RPI with it

Pi24 image can be downloaded from https://www.flightradar24.com/build-your-own

  1. Download the SDRplay API Linux package from https://www.sdrplay.com/api/

  2. Copy the downloaded API package to your RPI

scp SDRplay_RSP_API-Linux-3.15.2.run pi@<rpi-ip-address>:.
  1. Login to your RPI console as user pi

User pi’s default password is raspberry

ssh pi@<rpi-ip-address> 
  1. Install SDRplay API
chmod u+x SDRplay_RSP_API-Linux-3.15.2.run
./SDRplay_RSP_API-Linux-3.15.2.run

Reboot after the API has been successfully installed.

sudo reboot
  1. Login back in and verify the SDRplay API is running
sudo systemctl status sdrplay

The output should look something like this:

● sdrplay.service - SDRplay API Service
     Loaded: loaded (/etc/systemd/system/sdrplay.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-01-26 21:10:30 UTC; 10h ago
   Main PID: 620 (sdrplay_apiServ)
      Tasks: 5 (limit: 765)
        CPU: 9h 8min 14.059s
     CGroup: /system.slice/sdrplay.service
             └─620 /opt/sdrplay_api/sdrplay_apiService
  1. Install SDRplay dump1090

https://github.com/SDRplay/dump1090

cd
git clone https://github.com/SDRplay/dump1090
cd dump1090
SDRPLAY=1 make dump1090

Copy your newly built dump1090 binary to /usr/bin and verify that it works

sudo cp dump1090 /usr/bin/dump1090
dump1090 --dev-sdrplay

The output should look something like this. While writing these instructions I’m using a generic wlan antenna connected directly to the RSP1B inside a building.

Mon Jan 27 08:13:55 2025 UTC  dump1090-mutability dump1090_mutability_sdrplay starting up.
Using sample converter: SC16, integer path
*5d46081d4dd64d;
CRC: 000000
RSSI: -33.0 dBFS
Time: 52157.00us (phase: 0)
DF 11: All Call Reply.
  Capability  : 5 (Level 2+, airborne)
  ICAO Address: 46081d
  IID         : II-00

*8d461f6c998cb9943848901d5729;
CRC: 000000
RSSI: -35.0 dBFS
Time: 177032.00us (phase: 0)
DF 17: ADS-B message.
  Capability     : 5 (Level 2+, airborne)
  ICAO Address   : 461f6c
  Extended Squitter  Type: 19
  Extended Squitter  Sub : 1
  Extended Squitter  Name: Airborne Velocity
    EW status         : Valid
    EW velocity       : -184
    NS status         : Valid
    NS velocity       : -160
    Vertical status   : Valid
    Vertical rate src : 1
    Vertical rate     : -1088
    HAE/Baro offset   : -375 ft
  1. Activate your receiver on fr24

On your desktop/laptop open the activation url and finish the activation.

https://www.flightradar24.com/activate-raspberry-pi

  1. Open FR24 Feeder settings with a browser
http://<rpi-ip-address>:8754/settings.html

Fill in the settings below and click Save and Restart.

The mandatory configurations here are the location of your new dump1090 binary /usr/bin/dump1090 and its arguments –dev-sdrplay

Note: Some SDRplay forums mention extra arguments --normal and --oversample for 2 MHz and 8 MHz demodulation speeds, but in my experience giving either one of these will result in a SIGTERM.

Sharing key: <your fr24 sharing key generated in the previous step>
Receiver: DVBT Stick (default)
Host/IP:	
COM/DEV/PATH: /usr/bin/dump1090
Process arguments: --dev-sdrplay
Baudrate: default
RAW data (30002/30334): NO
SBS Feed (10001): NO
Decoded data (30003): NO
MLAT: NO
Extra settings:
  1. If everything went fine you should now be sending data to fr24.

Logs and some other useful tools can be accessed at http://<rpi-ip-address>:8754

Pls someone help me to install SDRplay in flightaware SD card and use SDRplayDuo and PI 3+B for ADS-B receiver