jketterl / openwebrx

Open source, multi-user SDR receiver software with a web interface
https://www.openwebrx.de
GNU Affero General Public License v3.0
1.03k stars 147 forks source link

connection to plutosdr / soapy remote #59

Closed tmlll closed 4 years ago

tmlll commented 4 years ago

Is it possible to connect openwebrx to plutosdr with SoapyRemote?

I have installed openwebrx on raspberry pi and I would like to connect it with plutosdr in SoapyRemote mode via tcp.

What do you need to enter in /etc/openwebrx/config_webrx.py in the sdrs = {} section?

jketterl commented 4 years ago

It should be possible, even though that specific scenario hasn't been used yet, at least to my knowledge.

The soapy_remote sdr type follows pretty much the same config scheme as the other drivers apart from a few special keys: remote and remote_driver. So a very basic config example woud look like this:

sdrs = {
    "pluto": {
        "name": "Adalm Pluto",
        "type": "soapy_remote",
        "ppm": 0,
        "remote": "192.168.123.456",
        "remote_driver": "plutosdr",
        "profiles": {
            "20m": {
                "name": "20m",
                "center_freq": 14150000,
                "rf_gain": 20,
                "samp_rate": 500000,
                "start_freq": 14070000,
                "start_mod": "usb",
                "antenna": "Tuner 2 50 ohm",
            },
        },
    },
}

I'm not sure if the profile is even useful with a Pluto, I have only quickly adopted another config I had at hand.

As you can see, remote is the target IP or hostname, whereas remote_driver is the soapy driver identifier on the destination machine. remote_driver is optional, if omitted, the destination will choose the first available soapy device.

tmlll commented 4 years ago

Thanks for your reply.

The example configuration has worked with PLUTOSDR since the first start. OPENWEBRX worked correctly, I mainly tested how APRS decoding works.

The problem is that when after a while I turned ON the computer again and I opened the OPENWEBRX website, I could not connect to PLUTOSDR again. I spent a long time trying to solve the problem but couldn't connect. Raspberry and PLUTOSDR restarts did not help. Finally I gave up.

The next day I came back to this. After long tests I came to the conclusion that in order to run OPENWEBRX and PLUTOSDR I need to change the IP address with which SoapySDRServer starts.

For example, if it was before:

# SoapySDRServer --bind
######################################################
## Soapy Server -- Use any Soapy SDR remotely
######################################################

Server version: 0.5.2-g03b483ad
Server UUID: bb724abf-0169-1000-8567-13e3007f0101
Launching the server... tcp://0.0.0.0:55132
Server bound to 0.0.0.0:55132
Launching discovery server...
Connecting to DNS-SD daemon...
[INFO] Avahi version:  avahi 0.7
[INFO] Avahi hostname: pluto
[INFO] Avahi domain:   local
[INFO] Avahi FQDN:     pluto.local
[INFO] avahi_entry_group_add_service(pluto._soapy._tcp)
Press Ctrl+C to stop the server

next time I launched:

# SoapySDRServer --bind="192.168.20.1:55132"
######################################################
## Soapy Server -- Use any Soapy SDR remotely
######################################################

Server version: 0.5.2-g03b483ad
Server UUID: d6ac5e4e-0015-1000-8567-0512007f0101
Launching the server... tcp://192.168.20.1:55132
Server bound to 192.168.20.1:55132
Launching discovery server...
Connecting to DNS-SD daemon...
[INFO] Avahi version:  avahi 0.7
[INFO] Avahi hostname: pluto
[INFO] Avahi domain:   local
[INFO] Avahi FQDN:     pluto.local
[INFO] avahi_entry_group_add_service(pluto._soapy._tcp)
Press Ctrl+C to stop the server

When OPENWEBRX is working properly, SoapySDRServer only establishes the following connections:

SoapyServerListener::accept(192.168.9.7:44746)
SoapyServerListener::accept(192.168.9.7:44764)
SoapyServerListener::accept(192.168.9.7:44768)
SoapyServerListener::close()
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:44770)

During normal operation, the OPENWEBRX log looks like this:

-- Logs begin at Thu 2020-02-27 16:29:24 UTC, end at Thu 2020-02-27 16:32:47 UTC. --
Feb 27 16:31:59 openwebrx systemd[1]: Started OpenWebRX WebSDR receiver.
Feb 27 16:32:01 openwebrx openwebrx[736]: 2020-02-27 16:32:01,552 - owrx.sdr - INFO - SDR sources loaded. Available SDRs: Adalm Pluto
Feb 27 16:32:42 openwebrx openwebrx[736]: 2020-02-27 16:32:42,886 - owrx.connection - DEBUG - client connection intitialized
Feb 27 16:32:42 openwebrx openwebrx[736]: 2020-02-27 16:32:42,914 - owrx.source - DEBUG - activating profile 70cm
Feb 27 16:32:42 openwebrx openwebrx[736]: 2020-02-27 16:32:42,931 - owrx.source - INFO - Started sdr source: soapy_connector -s 2400000 -P 0 -g 30 -d driver=remote,remote=192.168.20.1,remote:driver=plutosdr -f 438800000 -p 38181 -c 37237
Feb 27 16:32:45 openwebrx openwebrx[736]: Tuner gain set to 30.00 dB.
Feb 27 16:32:45 openwebrx openwebrx[736]: IQ worker thread started
Feb 27 16:32:45 openwebrx openwebrx[736]: setting up control socket...
Feb 27 16:32:45 openwebrx openwebrx[736]: socket setup complete, waiting for connections
Feb 27 16:32:45 openwebrx openwebrx[736]: control socket started on 37237
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] SoapyRemote::setupRxStream(remoteFormat=CS16, localFormat=CS16, scaleFactor=2048, mtu=1500, window=44040192)
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Client side stream bound to 192.168.9.7:33236
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Client side status bound to 192.168.9.7:54827
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Using format CS16.
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Auto setting Buffer Size: 65536
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Set MTU Size: 65536
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Server side stream bound to 192.168.20.1:34976
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Client side stream connected to 192.168.20.1:34976
Feb 27 16:32:45 openwebrx openwebrx[736]: [WARNING] StreamEndpoint resize socket buffer: set 43008 KiB, got 160 KiB
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Configured receiver endpoint: dgram=1452 bytes, 357 elements @ 4 bytes, window=160 KiB
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Server side stream connected to 192.168.9.7:33236
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Server side status connected to 192.168.9.7:54827
Feb 27 16:32:45 openwebrx openwebrx[736]: [WARNING] StreamEndpoint resize socket buffer: set 43008 KiB, got 160 KiB
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Configured sender endpoint: dgram=1452 bytes, 357 elements @ 4 bytes, window=160 KiB
Feb 27 16:32:45 openwebrx openwebrx[736]: [INFO] Has direct RX copy: 1
Feb 27 16:32:45 openwebrx openwebrx[736]: client connection establised
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,253 - owrx.source.connector - DEBUG - opening control socket...
Feb 27 16:32:45 openwebrx openwebrx[736]: control connection established
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,256 - owrx.dsp - DEBUG - received STATE_RUNNING, attempting DspSource restart
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,260 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 38181 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_1967432144_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_1967432144_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_1967432144_squelch_pipe --outfifo /tmp/openwebrx_pipe_1967432144_smeter_pipe 5 1 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr fractional_decimator_ff 1.0031662434559077 | csdr deemphasis_nfm_ff 11025 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8
Feb 27 16:32:45 openwebrx openwebrx[736]: Sclosing client socket
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,273 - owrx.dsp - DEBUG - adding new output of type audio
Feb 27 16:32:45 openwebrx openwebrx[736]: fir_decimate_cc: taps_length = 5787
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fir_decimate_cc: taps_length = 5787
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fir_decimate_cc: padded_taps_length = 5792
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fir_decimate_cc: taps = 8b7168
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fir_decimate_cc: NEON aligned taps = 8b7180
Feb 27 16:32:45 openwebrx openwebrx[736]: client connection establised
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr shift_addition_cc: fifo control mode on
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr bandpass_fir_fft_cc: fifo control mode on
Feb 27 16:32:45 openwebrx openwebrx[736]: Connection to 127.0.0.1 38181 port [tcp/*] succeeded!
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr squelch_and_smeter_cc: fifo control mode on
Feb 27 16:32:45 openwebrx openwebrx[736]: Scsdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1
Feb 27 16:32:45 openwebrx openwebrx[736]: (overlap_length = 138) = taps_length - 1
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr shift_addition_cc: reinitialized to -0
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr fractional_decimator_ff: not using taps
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr squelch_and_smeter_cc: initial squelch level is 1e-15
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,321 - owrx.dsp - DEBUG - adding new output of type smeter
Feb 27 16:32:45 openwebrx openwebrx[736]: S2020-02-27 16:32:45,337 - owrx.bands - WARNING - Frequency for wspr on 4m is not within band limits: 70091000
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,353 - owrx.fft - DEBUG - Spectrum thread initialized successfully.
Feb 27 16:32:45 openwebrx openwebrx[736]: 2020-02-27 16:32:45,354 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 38181 | csdr fft_cc 4096 2867.383512544803 | csdr logaveragepower_cf -70 4096 93 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
Feb 27 16:32:45 openwebrx openwebrx[736]: csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.361667, high_cut = 0.361667
Feb 27 16:32:45 openwebrx openwebrx[736]: client connection establised
Feb 27 16:32:45 openwebrx openwebrx[736]: Connection to 127.0.0.1 38181 port [tcp/*] succeeded!
Feb 27 16:32:47 openwebrx openwebrx[736]: SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSclosing client socket
Feb 27 16:32:47 openwebrx openwebrx[736]: 2020-02-27 16:32:47,524 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 38181 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_1967432144_shift_pipe | csdr fir_decimate_cc 200 0.00075 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_1967432144_bpf_pipe 0.02666666666666667 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_1967432144_squelch_pipe --outfifo /tmp/openwebrx_pipe_1967432144_smeter_pipe 5 2 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr deemphasis_nfm_ff 12000 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8
Feb 27 16:32:47 openwebrx openwebrx[736]: SS2020-02-27 16:32:47,527 - csdr.csdr - DEBUG - dsp thread ended with rc=-15
Feb 27 16:32:47 openwebrx openwebrx[736]: 2020-02-27 16:32:47,537 - owrx.dsp - DEBUG - adding new output of type audio
Feb 27 16:32:47 openwebrx openwebrx[736]: fir_decimate_cc: taps_length = 5333
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr fir_decimate_cc: taps_length = 5333
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr fir_decimate_cc: padded_taps_length = 5336
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr fir_decimate_cc: taps = 1720168
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr fir_decimate_cc: NEON aligned taps = 1720180
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr bandpass_fir_fft_cc: fifo control mode on
Feb 27 16:32:47 openwebrx openwebrx[736]: client connection establised
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr squelch_and_smeter_cc: fifo control mode on
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr shift_addition_cc: fifo control mode on
Feb 27 16:32:47 openwebrx openwebrx[736]: Connection to 127.0.0.1 38181 port [tcp/*] succeeded!
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 149) + (input_size = 364) - 1
Feb 27 16:32:47 openwebrx openwebrx[736]: (overlap_length = 148) = taps_length - 1
Feb 27 16:32:47 openwebrx openwebrx[736]: SScsdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.333333, high_cut = 0.333333
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr shift_addition_cc: reinitialized to -0
Feb 27 16:32:47 openwebrx openwebrx[736]: Scsdr squelch_and_smeter_cc: initial squelch level is 1e-15
Feb 27 16:32:47 openwebrx openwebrx[736]: 2020-02-27 16:32:47,563 - owrx.dsp - DEBUG - adding new output of type smeter
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr shift_addition_cc: reinitialized to -0.197917
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.333333, high_cut = 0.333333
Feb 27 16:32:47 openwebrx openwebrx[736]: csdr squelch_and_smeter_cc: new squelch level is 1e-15

When OPENWEBRX cannot connect to PLUTOSDR:

SoapySDRServer:

SoapyServerListener::accept(192.168.9.7:39996)
SoapyServerListener::accept(192.168.9.7:40014)
SoapyServerListener::accept(192.168.9.7:40018)
SoapyServerListener::close()
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40020)
SoapyServerListener::accept(192.168.9.7:40050)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40052)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40054)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40056)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40058)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40060)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40062)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40064)
SoapyServerListener::close()
SoapyServerListener::accept(192.168.9.7:40066)
SoapyServerListener::close()
SoapyServerListener::close()

... and more and more connections until PLUTOSDR is clogged or until close browser

During a connection problem, the OPENWEBRX log looks like this (until close browser):

-- Logs begin at Thu 2020-02-27 16:40:44 UTC, end at Thu 2020-02-27 16:44:13 UTC. --
Feb 27 16:42:49 openwebrx systemd[1]: Started OpenWebRX WebSDR receiver.
Feb 27 16:42:52 openwebrx openwebrx[733]: 2020-02-27 16:42:52,004 - owrx.sdr - INFO - SDR sources loaded. Available SDRs: Adalm Pluto
Feb 27 16:43:43 openwebrx openwebrx[733]: 2020-02-27 16:43:43,155 - owrx.connection - DEBUG - client connection intitialized
Feb 27 16:43:43 openwebrx openwebrx[733]: 2020-02-27 16:43:43,185 - owrx.source - DEBUG - activating profile 70cm
Feb 27 16:43:43 openwebrx openwebrx[733]: 2020-02-27 16:43:43,202 - owrx.source - INFO - Started sdr source: soapy_connector -s 2400000 -P 0 -g 30 -d driver=remote,remote=192.168.20.1,remote:driver=plutosdr -f 438800000 -p 49259 -c 49177
Feb 27 16:43:45 openwebrx openwebrx[733]: Tuner gain set to 30.00 dB.
Feb 27 16:43:45 openwebrx openwebrx[733]: IQ worker thread started
Feb 27 16:43:45 openwebrx openwebrx[733]: setting up control socket...
Feb 27 16:43:45 openwebrx openwebrx[733]: socket setup complete, waiting for connections
Feb 27 16:43:45 openwebrx openwebrx[733]: control socket started on 49177
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] SoapyRemote::setupRxStream(remoteFormat=CS16, localFormat=CS16, scaleFactor=2048, mtu=1500, window=44040192)
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Client side stream bound to 192.168.9.7:50118
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Client side status bound to 192.168.9.7:56685
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Using format CS16.
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Auto setting Buffer Size: 65536
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Set MTU Size: 65536
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Server side stream bound to 192.168.20.1:53085
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Server side stream connected to 192.168.9.7:50118
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Server side status connected to 192.168.9.7:56685
Feb 27 16:43:45 openwebrx openwebrx[733]: [WARNING] StreamEndpoint resize socket buffer: set 43008 KiB, got 160 KiB
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Configured sender endpoint: dgram=1452 bytes, 357 elements @ 4 bytes, window=160 KiB
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Client side stream connected to 192.168.20.1:53085
Feb 27 16:43:45 openwebrx openwebrx[733]: [WARNING] StreamEndpoint resize socket buffer: set 43008 KiB, got 160 KiB
Feb 27 16:43:45 openwebrx openwebrx[733]: [INFO] Configured receiver endpoint: dgram=1452 bytes, 357 elements @ 4 bytes, window=160 KiB
Feb 27 16:43:45 openwebrx openwebrx[733]: client connection establised
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,220 - owrx.source.connector - DEBUG - opening control socket...
Feb 27 16:43:45 openwebrx openwebrx[733]: control connection established
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,222 - owrx.dsp - DEBUG - received STATE_RUNNING, attempting DspSource restart
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,225 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 49259 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_1957605680_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_1957605680_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_1957605680_squelch_pipe --outfifo /tmp/openwebrx_pipe_1957605680_smeter_pipe 5 1 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr fractional_decimator_ff 1.0031662434559077 | csdr deemphasis_nfm_ff 11025 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,237 - owrx.dsp - DEBUG - adding new output of type audio
Feb 27 16:43:45 openwebrx openwebrx[733]: fir_decimate_cc: taps_length = 5787
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fir_decimate_cc: taps_length = 5787
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fir_decimate_cc: padded_taps_length = 5792
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fir_decimate_cc: csdr shift_addition_cc: taps = 1e01168
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fir_decimate_cc: NEON aligned taps = 1e01180
Feb 27 16:43:45 openwebrx openwebrx[733]: fifo control mode on
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr fractional_decimator_ff: not using taps
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr squelch_and_smeter_cc: fifo control mode on
Feb 27 16:43:45 openwebrx openwebrx[733]: client connection establised
Feb 27 16:43:45 openwebrx openwebrx[733]: Connection to 127.0.0.1 49259 port [tcp/*] succeeded!
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: fifo control mode on
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1
Feb 27 16:43:45 openwebrx openwebrx[733]: (overlap_length = 138) = taps_length - 1
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr squelch_and_smeter_cc: csdr shift_addition_cc: reinitialized to -0
Feb 27 16:43:45 openwebrx openwebrx[733]: initial squelch level is 1e-15
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,280 - owrx.dsp - DEBUG - adding new output of type smeter
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,655 - owrx.bands - WARNING - Frequency for wspr on 4m is not within band limits: 70091000
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,667 - owrx.fft - DEBUG - Spectrum thread initialized successfully.
Feb 27 16:43:45 openwebrx openwebrx[733]: 2020-02-27 16:43:45,668 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 49259 | csdr fft_cc 4096 2867.383512544803 | csdr logaveragepower_cf -70 4096 93 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
Feb 27 16:43:45 openwebrx openwebrx[733]: client connection establised
Feb 27 16:43:45 openwebrx openwebrx[733]: Connection to 127.0.0.1 49259 port [tcp/*] succeeded!
Feb 27 16:43:45 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.361667, high_cut = 0.361667
Feb 27 16:43:47 openwebrx openwebrx[733]: 2020-02-27 16:43:47,473 - csdr.csdr - DEBUG - dsp thread ended with rc=-15
Feb 27 16:43:47 openwebrx openwebrx[733]: 2020-02-27 16:43:47,475 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 49259 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_1957605680_shift_pipe | csdr fir_decimate_cc 200 0.00075 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_1957605680_bpf_pipe 0.02666666666666667 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_1957605680_squelch_pipe --outfifo /tmp/openwebrx_pipe_1957605680_smeter_pipe 5 2 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr deemphasis_nfm_ff 12000 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8
Feb 27 16:43:47 openwebrx openwebrx[733]: 2020-02-27 16:43:47,482 - owrx.dsp - DEBUG - adding new output of type audio
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr shift_addition_cc: fifo control mode on
Feb 27 16:43:47 openwebrx openwebrx[733]: fir_decimate_cc: taps_length = 5333
Feb 27 16:43:47 openwebrx openwebrx[733]: client connection establised
Feb 27 16:43:47 openwebrx openwebrx[733]: Connection to 127.0.0.1 49259 port [tcp/*] succeeded!
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: fifo control mode on
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr fir_decimate_cc: taps_length = 5333
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr fir_decimate_cc: padded_taps_length = 5336
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr squelch_and_smeter_cc: fifo control mode on
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr fir_decimate_cc: taps = ab6168
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr fir_decimate_cc: NEON aligned taps = ab6180
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 149) + (input_size = 364) - 1
Feb 27 16:43:47 openwebrx openwebrx[733]: (overlap_length = 148) = taps_length - 1
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr shift_addition_cc: reinitialized to -0
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.333333, high_cut = 0.333333
Feb 27 16:43:47 openwebrx openwebrx[733]: csdr squelch_and_smeter_cc: initial squelch level is 1e-15
Feb 27 16:43:47 openwebrx openwebrx[733]: 2020-02-27 16:43:47,504 - owrx.dsp - DEBUG - adding new output of type smeter
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,400 - owrx.websocket - DEBUG - websocket close frame received; closing connection
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,401 - owrx.websocket - DEBUG - websocket loop ended; shutting down
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,403 - csdr.csdr - DEBUG - dsp thread ended with rc=-15
Feb 27 16:44:13 openwebrx openwebrx[733]: signal 15 caught
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,411 - csdr.csdr - DEBUG - dsp thread ended with rc=-15
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,425 - owrx.source - DEBUG - shut down with RC=0
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,428 - owrx.cpu - DEBUG - cpu usage thread shut down
Feb 27 16:44:13 openwebrx openwebrx[733]: 2020-02-27 16:44:13,429 - owrx.websocket - DEBUG - websocket loop ended; sending close frame

The above logs show the connection of only one OPENWEBRX client. I tried different connections PLUTOSDR, LAN, WLAN, different IP. All on the local network. The connection can only be established after reboot raspberry and pluto and when the SoapySDRServer address changes.

I use in openwebrx config:

"remote": "192.168.20.1"

I also use this PLUTOSDR with Soapy Remote and SDR Console and I have no problems with it. I have no more ideas. I use experimental repo for raspberry now, but the problem is the same.

I think this is a soapy_connector problem, but maybe I'm wrong.

After issuing the following command, SoapySDRServer behaves similarly, closes the connection repeatedly, and reconnects:

soapy_connector -s 2400000 -P 0 -g 30 -d driver=remote,remote=192.168.20.1,remote:driver=plutosdr -f 438800000 -p 38181 -c 37237

I also did short tests on another machine, running OPENWEBRX in a container but without success.

If you had a problem with it or maybe you had an idea, please help.

jketterl commented 4 years ago

well, i don't have any immediate conclusions. the soapy_connector doesn't do much with the information you give it, it mostly just passes them to the soapy libraries. I don't see any errors either, which makes debugging harder.

I see you are running the latest SoapySDRServer version, but I don't see which client library version you have installed. If you did install from the package repository, you're probably running version 0.4.3, which is a bit dated. It might be worth trying the current version (https://github.com/pothosware/SoapyRemote) on the client, but you'll need to install it from source.

Another thing that might help (at least as a work-around) is the "always-on": True option, which will keep the connection open and running. Of course that will cause network traffic at all time in your case, but it should prevent this issue.

Heppie commented 4 years ago

Sorry to Hijack this issue but I dont think it is worth its own issue.

I am trying to use soapyremote to connect to an RTLSDR but I get:

owrx.sdr - ERROR - The RTL source type "soapy_remote" is not available. please check requirements.

Have I missed something in the SDR config?

`sdrs = { "rtlsdr": { "name": "RTL-SDR", "type": "soapy_remote", "ppm": 0, "remote": "192.168.0.56",

you can change this if you use an upconverter. formula is:

    # center_freq + lfo_offset = actual frequency on the sdr
    # "lfo_offset": 0,
    "profiles": {
        "70cm": {
            "name": "70cm Relais",
            "center_freq": 438800000,
            "rf_gain": 30,
            "samp_rate": 2400000,
            "start_freq": 439275000,
            "start_mod": "nfm",
        },
        "2m": {
            "name": "2m komplett",
            "center_freq": 145000000,
            "rf_gain": 30,
            "samp_rate": 2400000,
            "start_freq": 145725000,
            "start_mod": "nfm",
        },
    },
},

}`

jketterl commented 4 years ago

@Heppie you're probably missing a piece of software. Please check the feature report by appending "/features" to your receiver URL (e.g. http://localhost:8073/features) and make sure that all dependencies listed under "soapy_remote" are available. Depending on what installation method you went with, you'll need some extra packages or need to compile from source.