The community websdr-plus-github can be found here: https://github.com/ny4qphil/PhantomSDR-Plus ..it is compatible with the normal version, but enhanced.

Running multiple receivers on 1 machine....

Started by Bas ON5HB, Apr 17, 2025, 04:35 PM

Previous topic - Next topic

Bas ON5HB

Hi all,

I have been playing with the RSP1A and RSP2 running both at 2MHz on the same machine....and it's not a problem to do so.

I'm using Soapy with the SDRplay 2.13 API and SDRplay 2.xx Soapy connector...you can use the 3.xx, but I don't like it as I found it too unstable.

Anyway.....to run more then 1 websdr/bands, beware, you need more then 1 port, in my sample port 81 and port 82.
They will be listed as seperate websdr's, but in fact they both run on the same machine, Intel 6600 with OpenCL enabled.

First we create the seperate TOML's....

For the RSP1A:

[server]
port=81 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=1

[websdr]
register_online=true # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="Heppen Test 2 band" # Name that is shown on https://sdr-list.xyz
antenna="G5RV Diamond" # Antenna that is shown on https://sdr-list.xyz
grid_locator="JO21oc" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="http://websdr.heppen.be" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz

[input]
sps=2000000 # Input Sample Rate
fft_size=1048576 # FFT bins
fft_threads=2
brightness_offset=-14 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
frequency=3500000 # Baseband frequency
signal="iq" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl
audio_sps=12000 # Audio Sample Rate
smeter_offset=-30
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1

[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64

[input.defaults]
frequency=3630000 # Default frequency to show user
modulation="LSB" # Default modulation

For the RSP2:

[server]
port=82 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=1

[websdr]
register_online=true # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="Heppen Test 2 band" # Name that is shown on https://sdr-list.xyz
antenna="G5RV Diamond" # Antenna that is shown on https://sdr-list.xyz
grid_locator="JO21oc" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="http://websdr.heppen.be" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz

[input]
sps=2000000 # Input Sample Rate
fft_size=1048576 # FFT bins
fft_threads=2
brightness_offset=-10 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
frequency=7000000 # Baseband frequency
signal="iq" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl
audio_sps=12000 # Audio Sample Rate
smeter_offset=-20
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1

[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64

[input.defaults]
frequency=7073000 # Default frequency to show user
modulation="LSB" # Default modulation

And we make a start-script to start them both:

#!/bin/bash
cd /opt/PhantomSDR-Plus/

## Files to load
FIFO1=rsp1a.fifo
FIFO2=rsp2.fifo
TOML1=config-rsp1a.toml
TOML2=config-rsp2.toml

[ ! -e "$FIFO1" ] && mkfifo $FIFO1
[ ! -e "$FIFO2" ] && mkfifo $FIFO2

#RSP1A
rx_sdr -f 3500000 -s 2000000 -d serial=1605003200 -g AGC=-20,IFGR=34,RFGR=3 -t rfnotch_ctrl=true,dabnotch_ctrlb=true -F CS16 - > $FIFO1 &

sleep 2 &

#RSP2
rx_sdr -f 7000000 -s 2000000 -d serial=1807098293 -g AGC=-20,IFGR=34,RFGR=2 -t rfnotch_ctrl=true -F CS16 - > $FIFO2 &

sleep 2 &

build/spectrumserver --config $TOML1 < $FIFO1 &

sleep 2 &

build/spectrumserver --config $TOML2 < $FIFO2 &


exit

And to stop them:

#!/bin/bash
cd /opt/PhantomSDR-Plus/

killall -s 9 spectrumserver
killall -s 9 rx_sdr

sleep 2

exit

That is it!!!! You can run many more if you like, even combine receivers, as long as you give them their own FIFO, TOML and Soapy-driver....or even with the RX888....

The only thing to hold you back is your CPU+GPU power ;)

Best regards,

Bas ON5HB

Ps. the Community Edition can be found here: https://github.com/ny4qphil/PhantomSDR-Plus

Powered by EzPortal