Git Product home page Git Product logo

jketterl / openwebrx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ha7ilm/openwebrx

981.0 73.0 144.0 10.33 MB

Open source, multi-user SDR receiver software with a web interface

Home Page: https://www.openwebrx.de

License: GNU Affero General Public License v3.0

Python 64.26% HTML 3.16% CSS 3.89% JavaScript 25.91% Shell 2.77%
sdr rtl-sdr waterfall html5 html5-canvas software-defined-radio ham-radio dmr dstar ysf ft8 ft4 wspr wspr-beacon jt65 jt9 pocsag aprs js8call

openwebrx's Introduction

OpenWebRX

OpenWebRX is a multi-user SDR receiver software with a web interface.

OpenWebRX

It has the following features:

  • csdr based demodulators (AM/FM/SSB/CW/BPSK31/BPSK63)
  • filter passband can be set from GUI
  • it extensively uses HTML5 features like WebSocket, Web Audio API, and Canvas
  • it works in Google Chrome, Chromium and Mozilla Firefox
  • supports a wide range of SDR hardware
  • Multiple SDR devices can be used simultaneously
  • digiham based demodularors (DMR, YSF, Pocsag, D-Star, NXDN)
  • wsjt-x based demodulators (FT8, FT4, WSPR, JT65, JT9, FST4, FST4W)
  • direwolf based demodulation of APRS packets
  • JS8Call support
  • DRM support
  • FreeDV support
  • M17 support based on m17-cxx-demod

Setup

The following methods of setting up a receiver are currently available:

  • Raspberry Pi SD card images
  • Debian repository
  • Docker images
  • Manual installation

Please checkout the setup guide on the wiki for more details on the respective methods.

Community

If you have trouble setting up or configuring your receiver, you have some great idea you want to see implemented, or you just generally want to have some OpenWebRX-related chat, come visit us over on our groups.io group.

If you want to hang out, chat, or get in touch directly with the developers, receiver operators or users, feel free to drop by in our Discord server.

Usage tips

You can zoom the waterfall display by the mouse wheel. You can also drag the waterfall to pan across it.

The filter envelope can be dragged at its ends and moved around to set the passband.

However, if you hold down the shift key, you can drag the center line (BFO) or the whole passband (PBS).

Licensing

OpenWebRX is available under Affero GPL v3 license (summary).

OpenWebRX is also available under a commercial license on request. Please contact me at the address <[email protected]> for licensing options.

openwebrx's People

Contributors

acfnews avatar alexander-sholohov avatar amontefusco avatar bd5rv avatar chrismrutledge avatar d0han avatar d9394 avatar dh5ym avatar dl9rdz avatar doccodyblue avatar ewsandor avatar gnoxter avatar ha7ilm avatar jancona avatar jasongaunt avatar jketterl avatar jquagga avatar jwt27 avatar legacycode avatar luarvique avatar moepman avatar ofadam avatar pa3gsb avatar tejeez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openwebrx's Issues

ARM64 docker image: no sound

I'm using a Khadas vim2 SBC with amlogic S912 processor with docker.

Contrary to tests made with my main computer ubuntu 19.10 x86_64 docker, on the SBC I got no sound whatever modulation I chose, whereas everything seems to be ok (no errors).

The only thing strange is in status, CPU usage stays at 0%.

Both PC and SBC are on the same local lan.

Here is my logs from openwebrx docker container:

root@Khadas:~/docker/images/openwebrx# docker-compose up
Starting openwebrx ...
Starting openwebrx ... done
Attaching to openwebrx
openwebrx | 2019-12-30 14:35:44,181 - owrx.sdr - INFO - SDR sources loaded. Availables SDRs: Airspy
openwebrx | 2019-12-30 14:35:56,568 - owrx.connection - DEBUG - client connection intitialized
openwebrx | 2019-12-30 14:35:56,594 - owrx.source - DEBUG - activating profile VHF
openwebrx | 2019-12-30 14:35:56,623 - owrx.source - INFO - Started sdr source: soapy_connector -s 2500000 -P 0 -g 10 -d driver=airspy -f 150000000 -p 4950 -c 42825
openwebrx | [ERROR] SoapySDR::loadModule(/usr/local/lib64/SoapySDR/modules0.8/libsdrPlaySupport.so)
openwebrx | dlopen() failed: Error loading shared library ld-linux-aarch64.so.1: No such file or directory (needed by /usr/local/lib/libmirsdrapi-rsp.so.2.13)
openwebrx | Tuner gain set to 10.00 dB.
openwebrx | IQ worker thread started
openwebrx | setting up control socket...
openwebrx | socket setup complete, waiting for connections
openwebrx | control socket started on 42825
openwebrx | [INFO] Using format CS16.
openwebrx | 2019-12-30 14:35:56,728 - owrx.source.connector - DEBUG - opening control socket...
openwebrx | client connection establised
openwebrx | 2019-12-30 14:35:56,730 - owrx.dsp - DEBUG - received STATE_RUNNING, attempting DspSource restart
openwebrx | 2019-12-30 14:35:56,732 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx/openwebrx_pipe_548307058384_shift_pipe | csdr fir_decimate_cc 226 0.000663716814159292 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx/openwebrx_pipe_548307058384_bpf_pipe 0.028928000000000002 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx/openwebrx_pipe_548307058384_squelch_pipe --outfifo /tmp/openwebrx/openwebrx_pipe_548307058384_smeter_pipe 5 1 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr fractional_decimator_ff 1.0033511929845684 | csdr deemphasis_nfm_ff 11025 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8
openwebrx | control connection established
openwebrx | 2019-12-30 14:35:56,757 - owrx.dsp - DEBUG - adding new output of type audio
openwebrx | Connection to 127.0.0.1 4950 port [tcp/] succeeded!
openwebrx | client connection establised
openwebrx | csdr bandpass_fir_fft_cc: fifo control mode on
openwebrx | fir_decimate_cc: taps_length = 6027
openwebrx | csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING
openwebrx | csdr fractional_decimator_ff: not using taps
openwebrx | closing client socket
openwebrx | csdr shift_addition_cc: fifo control mode on
openwebrx | csdr squelch_and_smeter_cc: fifo control mode on
openwebrx | csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1
openwebrx | (overlap_length = 138) = taps_length - 1
openwebrx | csdr shift_addition_cc: reinitialized to -0
openwebrx | csdr squelch_and_smeter_cc: initial squelch level is 1e-15
openwebrx | 2019-12-30 14:35:56,781 - owrx.dsp - DEBUG - adding new output of type smeter
openwebrx | 2019-12-30 14:35:56,792 - owrx.bands - WARNING - Frequency for wspr on 4m is not within band limits: 70091000
openwebrx | 2019-12-30 14:35:56,805 - owrx.fft - DEBUG - Spectrum thread initialized successfully.
openwebrx | 2019-12-30 14:35:56,806 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2863.68843069874 | csdr logaveragepower_cf -70 4096 97 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
openwebrx | csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.3616, high_cut = 0.3616
openwebrx | Connection to 127.0.0.1 4950 port [tcp/
] succeeded!
openwebrx | client connection establised

service resampling fails on single service

when there is only one service on an sdr, the resampling correctly determines that the correct approach would be to not resample. it still sets up a resampler (because the code does not take that edge case into account) and then fails to set up the service for unknown reason.

High pitch noise

I just noticed, there is pretty irritating high pitch noise (exactly 12000Hz according to app on phone). Changing volume using OpenWebRX volume slider makes it quieter and louder, so it makes it clear culprit.

Checked on 2cfeb6b, Win 10, Firefox 70.0.1, more than stereo speaker system (Audio output is around 192ksps).

Changing source work until freq change

Steps to reproduce:

  • load page with default source
  • change freq by clicking on waterfall
  • change source
  • change freq again

At this point traceback is seen in console, and source can no longer be changed.
Reloading page brings some broken state, cannot be used anymore.

csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.333333, high_cut = 0.333333
2019-09-01 01:21:45,637 - owrx.config - ERROR - [Errno 32] Broken pipe
Traceback (most recent call last):
File "/home/openwebrx/openwebrx-jketterl/owrx/config.py", line 32, in setValue
c.call(self.value)
File "/home/openwebrx/openwebrx-jketterl/owrx/config.py", line 12, in call
self.subscriber(*args, **kwargs)
File "/home/openwebrx/openwebrx-jketterl/csdr.py", line 458, in set_offset_freq
self.shift_pipe_file.flush()
BrokenPipeError: [Errno 32] Broken pipe

This was done on branch develop, 9bdeda78143ec75533e4af233766ad9402f56cf1

Docker arm64 image ?

I'm using a khadas vim2 SBC with aarch64 processor.

Do you plan to make a suitable docker image for it ?

Feature Request - gain control on GUI

I would like to see a gain control in the Web GUI so I can adjust the gain of the SDRPlay on the fly.

I know I should open another issue, but this is somewhat related. I would also like to see the max/min waterfall controls automatically adjusted to provide a reasonable display. When I switch bands, I have to change the waterfall sliders. The sliders are very touchy, too.

Thanks for keeping the project alive.

another bug?

after I change band from browser some times( maybe so frequently or so fast ), the system crash:
QQ截图20191006211725

Changelog for new features

I noticed that the readme contains a changelog that was last updated in November – have all updates since then been bug fixes, or have there been new features rolled out? Any plans for creating a separate changelog?

RPi Image: configure wlan0 as fallback if eth0 goes down

Hello

I am using your newest RPi image from 20.02.2020 on a RPi 4, and I am very happy with it.
It would be useful, if the stock network configs could be set up in a way, that if there is no connection over eth0, raspbian would automatically connect via wlan0 with the credentials located in a wpa_supplicants.conf file in the boot folder.
When I try to boot first with a wpa_supplicants.conf file already in place, the RPi does connect to the Wifi, but openwebrx can't be accessed in the web browser and ssh does not work too.

Wifi connectivity can be very useful on field days, where you could create a small wifi network on a battery powered travel router or to increase flexibility in shacks without ethernet.

Crash with Sdrplay

I tried using the image (2020-01-04) with an sdrplay rsp1 , but is keeps crashing/locking up. sometimes it runs a few minutes, but when changing anything it locks up totally.
Maybe a driver problem ?

Attached an Airspy HF + Discovery, and it runs fine for days now
(except the gain setting, but that already is a known issue afiak)

Feature request: possibility to connect to CW Skimmer

Using an openwebrx as sample source for a CW Skimmer would be a nice to have.
CW Skimmer gets its samples via audio interface (max. 192kSpl/s IQ) or via network interface (i never used it). A background IQ service on the openwebrx server could deliver samples via loopback audio (possibly network is easier?). Furthermore the center frequency of the skimmer needs to be set via a telnet connection (or somehow read by skimmer via a CAT control).
BTW: there is also an open source bayesian statistics CW decoder by AG1LE but unfortunately it it has no CW signal detection that could start the decoder on each signal it finds in a given spectrum. Make a cwskimmer like application would certainly be a separate project.

Crash if there are multiple clients using Packet decoder

On an Odroid XU4 with just a simple output device, starting direwolf twice for two openwebrx clients will result in a failure as the default audio output device cannot be opened twice. There is a simple fix to this: Just tell direwolf to use the "null" output device.

(Sorry that this is not a nice pull request, but its just one line to change anyway...)

diff --git a/owrx/kiss.py b/owrx/kiss.py
index 1ea9408..d47fa4d 100644
--- a/owrx/kiss.py
+++ b/owrx/kiss.py
@@ -18,6 +18,7 @@ class DirewolfConfig(object):

     config = """

ACHANNELS 1
+ADEVICE stdin null

CHANNEL 0
MYCALL {callsign}

client reconnect loop when max number of connections reached

When the connection limit is reached, openwebrx disconnects the client without any special message. The client responds to this with an automatic reconnect after a 1s delay. This is an endless loop until something else breaks.

The server should send an appropriate error to the client, which should then stop the reconnections, or at least enter the exponential back-off until a connection is available.

I've only seen this in conjunction with #19 so it needs to be tested if this is an actual issue.

Slew of errors upon running

Sadly, I had everything working yesterday and now am stuck with these errors when accessing via browser. I appreciate any help you may be able to give.


2019-12-30 09:24:44,909 - owrx.source - INFO - Started sdr source: rtl_connector -s 2400000 -P 0 -g 30 -f 438800000 -p 4950 -c 53451
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
IQ worker thread started
socket setup complete, waiting for connections
setting up control socket...
control socket started on 53451
2019-12-30 09:24:45,732 - owrx.source.connector - DEBUG - opening control socket...
client connection establised
control connection established
2019-12-30 09:24:45,734 - owrx.dsp - DEBUG - received STATE_RUNNING, attempting DspSource restart
2019-12-30 09:24:45,735 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_3059244108_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_3059244108_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_3059244108_squelch_pipe --outfifo /tmp/openwebrx_pipe_3059244108_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
csdr squelch_and_smeter_cc: fifo control mode on
csdr shift_addition_cc: fifo control mode on
Connection to 127.0.0.1 4950 port [tcp/] succeeded!
2019-12-30 09:24:45,786 - owrx.dsp - DEBUG - adding new output of type audio
csdr bandpass_fir_fft_cc: fifo control mode on
csdr fractional_decimator_ff: fir_decimate_cc: taps_length = 5787
client connection establised
use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING
csdr fractional_decimator_ff: not using taps
csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1
(overlap_length = 138) = taps_length - 1
csdr shift_addition_cc: csdr squelch_and_smeter_cc: initial squelch level is 1e-15
reinitialized to -0
2019-12-30 09:24:45,815 - owrx.dsp - DEBUG - adding new output of type smeter
2019-12-30 09:24:45,826 - owrx.bands - WARNING - Frequency for wspr on 4m is not within band limits: 70091000
2019-12-30 09:24:45,858 - owrx.fft - DEBUG - Spectrum thread initialized successfully.
2019-12-30 09:24:45,862 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | 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
closing client socket
Connection to 127.0.0.1 4950 port [tcp/
] succeeded!
client connection establised
2019-12-30 09:24:46,163 - owrx.websocket - ERROR - OSError while reading data; closing connection
Traceback (most recent call last):
File "/home/agerik/openwebrx/owrx/websocket.py", line 202, in read_loop
self.messageHandler.handleTextMessage(self, message)
File "/home/agerik/openwebrx/owrx/connection.py", line 357, in handleTextMessage
client = OpenWebRxReceiverClient(conn)
File "/home/agerik/openwebrx/owrx/connection.py", line 113, in init
features = FeatureDetector().feature_availability()
File "/home/agerik/openwebrx/owrx/feature.py", line 38, in feature_availability
return {name: self.is_available(name) for name in FeatureDetector.features}
File "/home/agerik/openwebrx/owrx/feature.py", line 38, in
return {name: self.is_available(name) for name in FeatureDetector.features}
File "/home/agerik/openwebrx/owrx/feature.py", line 60, in is_available
return self.has_requirements(self.get_requirements(feature))
File "/home/agerik/openwebrx/owrx/feature.py", line 71, in has_requirements
passed = passed and self.has_requirement(requirement)
File "/home/agerik/openwebrx/owrx/feature.py", line 83, in has_requirement
return method()
File "/home/agerik/openwebrx/owrx/feature.py", line 240, in has_soapy_sdrplay
return self._has_soapy_driver("sdrPlay")
File "/home/agerik/openwebrx/owrx/feature.py", line 224, in _has_soapy_driver
process = subprocess.Popen(["SoapySDRUtil", "--info"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
File "/usr/lib/python3.6/subprocess.py", line 729, in init
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'SoapySDRUtil': 'SoapySDRUtil'
2019-12-30 09:24:46,181 - owrx.websocket - DEBUG - websocket loop ended; shutting down
2019-12-30 09:24:46,183 - owrx.websocket - DEBUG - websocket loop ended; sending close frame
Exception in thread Thread-68:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/owrx/connection.py", line 33, in mp_passthru
self.send(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.361667, high_cut = 0.361667
Exception in thread Thread-71:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/csdr/csdr.py", line 59, in copy
write(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 265, in write_dsp_data
self.send(bytes([0x02]) + data)
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

Exception in thread Thread-72:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/csdr/csdr.py", line 59, in copy
write(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 268, in write_s_meter_level
self.send({"type": "smeter", "value": level})
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

2019-12-30 09:24:47,264 - owrx.connection - DEBUG - client connection intitialized
2019-12-30 09:24:47,291 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_3058869676_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_3058869676_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_3058869676_squelch_pipe --outfifo /tmp/openwebrx_pipe_3058869676_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
2019-12-30 09:24:47,355 - owrx.dsp - DEBUG - adding new output of type audio
csdr shift_addition_cc: fir_decimate_cc: taps_length = 5787
fifo control mode on
csdr bandpass_fir_fft_cc: fifo control mode on
csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING
csdr fractional_decimator_ff: not using taps
csdr squelch_and_smeter_cc: fifo control mode on
csdr squelch_and_smeter_cc: initial squelch level is 1e-15
2019-12-30 09:24:47,414 - owrx.dsp - DEBUG - adding new output of type smeter
csdr shift_addition_cc: reinitialized to -0
csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1
(overlap_length = 138) = taps_length - 1
client connection establised
Connection to 127.0.0.1 4950 port [tcp/*] succeeded!
2019-12-30 09:24:47,654 - owrx.websocket - ERROR - OSError while reading data; closing connection
Traceback (most recent call last):
File "/home/agerik/openwebrx/owrx/websocket.py", line 202, in read_loop
self.messageHandler.handleTextMessage(self, message)
File "/home/agerik/openwebrx/owrx/connection.py", line 357, in handleTextMessage
client = OpenWebRxReceiverClient(conn)
File "/home/agerik/openwebrx/owrx/connection.py", line 113, in init
features = FeatureDetector().feature_availability()
File "/home/agerik/openwebrx/owrx/feature.py", line 38, in feature_availability
return {name: self.is_available(name) for name in FeatureDetector.features}
File "/home/agerik/openwebrx/owrx/feature.py", line 38, in
return {name: self.is_available(name) for name in FeatureDetector.features}
File "/home/agerik/openwebrx/owrx/feature.py", line 60, in is_available
return self.has_requirements(self.get_requirements(feature))
File "/home/agerik/openwebrx/owrx/feature.py", line 71, in has_requirements
passed = passed and self.has_requirement(requirement)
File "/home/agerik/openwebrx/owrx/feature.py", line 83, in has_requirement
return method()
File "/home/agerik/openwebrx/owrx/feature.py", line 240, in has_soapy_sdrplay
return self._has_soapy_driver("sdrPlay")
File "/home/agerik/openwebrx/owrx/feature.py", line 224, in _has_soapy_driver
process = subprocess.Popen(["SoapySDRUtil", "--info"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
File "/usr/lib/python3.6/subprocess.py", line 729, in init
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'SoapySDRUtil': 'SoapySDRUtil'
2019-12-30 09:24:47,659 - owrx.websocket - DEBUG - websocket loop ended; shutting down
2019-12-30 09:24:47,659 - owrx.websocket - DEBUG - websocket loop ended; sending close frame
Exception in thread Thread-80:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/owrx/connection.py", line 33, in mp_passthru
self.send(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.361667, high_cut = 0.361667
Exception in thread Thread-82:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/csdr/csdr.py", line 59, in copy
write(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 265, in write_dsp_data
self.send(bytes([0x02]) + data)
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

Exception in thread Thread-83:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/agerik/openwebrx/csdr/csdr.py", line 59, in copy
write(data)
File "/home/agerik/openwebrx/owrx/connection.py", line 268, in write_s_meter_level
self.send({"type": "smeter", "value": level})
File "/home/agerik/openwebrx/owrx/connection.py", line 40, in send
self.conn.send(data)
File "/home/agerik/openwebrx/owrx/websocket.py", line 105, in send
raise WebSocketClosed()
owrx.websocket.WebSocketClosed

^C^CException ignored in: <module 'threading' from '/usr/lib/python3.6/threading.py'>
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 1294, in _shutdown
t.join()
File "/usr/lib/python3.6/threading.py", line 1056, in join
self._wait_for_tstate_lock()
File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
KeyboardInterrupt

a features request

The system create a new thread in the background, that will be an automatic decoder with WSPR/FT8/APRS(select by the configure file) and upload decode result to the wsprnet/spot/aprs.fi.

APRS startup fails if direwolf takes longer to load

Reported via groups.io. On certain system, the delay that is granted to direwolf to start up is insufficient, and OpenWebRX will attempt connecting before the socket is open. This of course breaks APRS decoding completely.

FM Demod not working properly

Hi, got an issue with FM Demodulation, all other Modes work fine:

2019-11-01 10:41:42,247 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /dev/shm/openwebrx_pipe_140155962312632_shift_pipe | csdr fir_decimate_cc 170 0.0008823529411764706 HAMMING | csdr bandpass_fir_fft_cc --fifo /dev/shm/openwebrx_pipe_140155962312632_bpf_pipe 0.0265625 HAMMING | csdr squelch_and_smeter_cc --fifo /dev/shm/openwebrx_pipe_140155962312632_squelch_pipe --outfifo /dev/shm/openwebrx_pipe_140155962312632_smeter_pipe 5 2 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr fractional_decimator_ff 1.003921568627451 | csdr deemphasis_nfm_ff 12000 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8

2019-11-01 10:41:42,249 - owrx.source - DEBUG - adding new output of type audio csdr shift_addition_cc: fifo control mode on csdr deemphasis_nfm_ff: deemphasis_nfm_ff: invalid sample rate (this function works only with specific sample rates). fir_decimate_cc: taps_length = 4533 csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING csdr fractional_decimator_ff: not using taps

csdr deemphasis_nfm_ff: deemphasis_nfm_ff: invalid sample rate (this function works only with specific sample rates).
seems to be the problem.

I am using newest csdr from git.

73 de DJ1AN

connection to plutosdr / soapy remote

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?

Direct Sampling on RTL_SDR

Hello!

Love your work!

Is there any way of using direct sampling on the RTL_SDR V3 ?
I tried searching the wiki and docs but could not find this.
In ha7ilm version you could use the rtl_sdr -D option for this.

73 de SM4XAS

Second client spawns new sdr process

I've installed your fork of openwebrx to an Ubuntu server with a PlutoSDR. Everything works fine when a single client is connected, but when a second client enters via the web interface, a new sdr source process is spawned, requesting the same resource being used by the first client.
Instead I think just the nc command should be spawned, listening to the existing stream of iq data. At least this is what happens in the original openwebrx and works with multiple clients.

Please find below the log when the second client is being connected:

2019-10-22 08:24:53,227 - owrx.connection - DEBUG - client connection intitialized 2019-10-22 08:24:53,292 - owrx.source - DEBUG - nmux_bufsize = 1003520, nmux_bufcnt = 50 2019-10-22 08:24:53,295 - owrx.source - INFO - Started rtl source: rx_sdr -N 1 -B 4000000 -F CF32 -d driver=plutosdr -s 4000000 -f 432000000 -p 0 -g RFGR=55 - | nmux --bufsize 1003520 --bufcnt 50 --port 4950 --address 127.0.0.1 nmux: pthread_create() done, clients now: 3 2019-10-22 08:24:53,296 - owrx.source - DEBUG - received onSdrAvailable, attempting DspSource restart 2019-10-22 08:24:53,296 - owrx.source - DEBUG - received onSdrAvailable, attempting DspSource restart 2019-10-22 08:24:53,297 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx_pipe_140624277498512_shift_pipe | csdr fir_decimate_cc 362 0.00041436464088397796 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx_pipe_140624277498512_bpf_pipe 0.02896 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx_pipe_140624277498512_squelch_pipe --outfifo /tmp/openwebrx_pipe_140624277498512_smeter_pipe 5 1 | csdr fmdemod_quadri_cf | csdr limit_ff | csdr fractional_decimator_ff 1.0022425176332044 | csdr deemphasis_nfm_ff 11025 | csdr convert_f_s16 | csdr encode_ima_adpcm_i16_u8 client 0x55eae66a8d90: started! nmux: cannot bind() address to the socket: Address already in use csdr squelch_and_smeter_cc: fifo control mode on csdr bandpass_fir_fft_cc: fifo control mode on 2019-10-22 08:24:53,306 - owrx.source - DEBUG - adding new output of type audio fir_decimate_cc: taps_length = 9653 csdr fractional_decimator_ff: use_prefilter = 0, num_poly_points = 12, transition_bw = 0.03, window = HAMMING csdr fractional_decimator_ff: not using taps csdr shift_addition_cc: fifo control mode on csdr squelch_and_smeter_cc: initial squelch level is 0 2019-10-22 08:24:53,313 - owrx.source - DEBUG - adding new output of type smeter csdr shift_addition_cc: reinitialized to -0 nmux: pthread_create() done, clients now: 4 client 0x55eae66a8de0: started! Connection to 127.0.0.1 4950 port [tcp/*] succeeded! client 0x55eae66a8d90: CS_THREAD_FINISHED, client_goto_source = 2, errno = 32csdr bandpass_fir_fft_cc: (fft_size = 512) = (taps_length = 139) + (input_size = 374) - 1 (overlap_length = 138) = taps_length - 1 csdr bandpass_fir_fft_cc: filter initialized, low_cut = -0.362, high_cut = 0.362 ERROR: Unable to claim interface 5: -16 [ERROR] not device found.

RasPi - No module named 'pkg_resources' -- solved

Just in case someone else stumbles in the issue, as I did

sudo apt-get install python3-pkg-resources

Raspbian uses Python2 as a default, so Python3 and the abpve package must be installed.

Thanks for the good work.

docker running error

I put the docker file running on a synology nas machine ( cpu is intel atom c2538), so startup the contianer, after a few seconds , it's log get a error: Segmentation fault (core dumped)

here is the logs :
`542 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2923.9766081871344 | csdr logaveragepower_cf -70 4096 19 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
541 - csdr - DEBUG - restarting since rc = 0, self.running = true, and no modification
541 - csdr - DEBUG - dsp thread ended with rc=0
nc: connect to 127.0.0.1 port 4950 (tcp) failed: Connection refused
525 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2923.9766081871344 | csdr logaveragepower_cf -70 4096 19 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
524 - csdr - DEBUG - restarting since rc = 0, self.running = true, and no modification
524 - csdr - DEBUG - dsp thread ended with rc=0
nc: connect to 127.0.0.1 port 4950 (tcp) failed: Connection refused
511 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2923.9766081871344 | csdr logaveragepower_cf -70 4096 19 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
510 - csdr - DEBUG - restarting since rc = 0, self.running = true, and no modification
509 - csdr - DEBUG - dsp thread ended with rc=0
nc: connect to 127.0.0.1 port 4950 (tcp) failed: Connection refused
496 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2923.9766081871344 | csdr logaveragepower_cf -70 4096 19 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
495 - csdr - DEBUG - restarting since rc = 0, self.running = true, and no modification
494 - csdr - DEBUG - dsp thread ended with rc=0
491 - owrx.source - DEBUG - shut down with RC=1
Segmentation fault (core dumped)
nmux: (main thread/for) end input stream, exiting.
Connection to 127.0.0.1 4950 port [tcp/*] succeeded!
client 0x7f93920b6b60: started!
nmux: pthread_create() done, clients now: 2
173 - csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr fft_cc 4096 2923.9766081871344 | csdr logaveragepower_cf -70 4096 19 | csdr fft_exchange_sides_ff 4096 | csdr compress_fft_adpcm_f_u8 4096
client 0x7f93920b6ac0: started!
nmux: pthread_create() done, clients now: 1
nmux: listening on 127.0.0.1:4950
071 - owrx.source - INFO - Started rtl source: rx_sdr -F CF32 -s 500000 -f 14150000 -p 0 -g RFGR=4 -a \Antenna A\ - | nmux --bufsize 126976 --bufcnt 394 --port 4950 --address 127.0.0.1
064 - owrx.source - DEBUG - nmux_bufsize = 126976, nmux_bufcnt = 394
062 - owrx.source - DEBUG - Spectrum thread initialized successfully.
060 - owrx.bands - WARNING - Frequency for wspr on 4m is not within band limits: 70091000
055 - owrx.source - DEBUG - activating profile 20m
018 - owrx.connection - DEBUG - client connection intitialized
190 - owrx.source - INFO - SDR sources loaded. Availables SDRs: SDRPlay RSP2
189 - owrx.source - ERROR - The RTL source type \test\ is invalid. Please check your configuration
118 - owrx.source - ERROR - The RTL source type \rtl_sdr\ is not available. please check requirements.
Author contact info: Andras Retzler, HA7ILM [email protected]


OpenWebRX - Open Source SDR Web App for Everyone! | for license see LICENSE file in the package
`

Services are started regardless of Feature support

Currently running on a Laptop without wsjt-x installed. Activation of services with default list of decoders leads to error message "FileNotFoundError: [Errno 2] No such file or directory: 'jt9': 'jt9'", even though the feature detector correctly detected that wsjt-x is not installed.

Handle failed sdr devices better

when an sdr device fails, connected users potentially enter a reconnect loop; the user interface is pretty much unusable, and other sdr devices that may still be functioning are inaccessible.

ideally, openwebrx would remove failed devices from the profiles dialog. if no devices are left, a message should appear that no sdr devices are availalbe.

also, users that are using an sdr at the moment it fails should receive a message about what happened, informing them to switch to another profile.

airspy with bias-tee ?

Is there a config file option that enable bias-tee on airspy ?

I need this to power the spyverter upconverter.

No Digital Decode

Hello my Name is Andy,

I don´t have the Digimods on the Website, can you help me what is wrong?
The add-ons are installed.
Bildschirmfoto zu 2019-12-10 22-24-32

Andy

Labels?

Any chance you could come up with a way of attaching permanent labels to specific freqs similar to how kiwi does it. Or differently. Just something to identify known signals? Since you seem to be the only person actively still developing this software?

Expose settings in URL

This is a not an issue, its a feature request.

I think it would be really neat to expose current user settings in URL.
This way, it would be super easy to share link with someone to specific transmission, or even make some bookmarks.

Fragment identifier is a great candidate for such data, as it is not sent to server. Client code can freely read or change it without any interruption.

Error during start

Just cloned the rep, as I did a few days ago on a Pi.
git clone https://github.com/jketterl/openwebrx/

Got this error:

OpenWebRX - Open Source SDR Web App for Everyone! | for license see LICENSE file in the package


Author contact info: Jakob Ketterl, DD5JFK [email protected]

Traceback (most recent call last):
File "./openwebrx.py", line 6, in
main()
File "/home/pi/openwebrx/owrx/main.py", line 33, in main
pm = PropertyManager.getSharedInstance().loadConfig()
File "/home/pi/openwebrx/owrx/config.py", line 140, in loadConfig
cfg = importlib.util.module_from_spec(spec)
AttributeError: 'module' object has no attribute 'module_from_spec'

Any ideas?
Docker version works however I cannot get the rtl_sdr_soapy to work so I would like to be able to run /features to see if it detecs it. SoapyRTLSDR installed and working.

No audio, no waterfall, no error messages

I'm having some difficulty getting it to run under Ubuntu 18 - I installed all dependencies and configured openwebrx correctly for an RSP2Pro... but when I launch the browser interface, it seems like there's no signal information actually being capture (no audio, no waterfall.) I even checked the /features page and everything looks good.

Any advice on how to troubleshoot? I don't see anything in the console log that looks amiss, either.

owrx.wsjt - ERROR - failed to decode job

I decided to take this for a spin with services and ft8.
RPI 3B seems to be underpowered for even one service (ft8, one worker) and client at the same time, as i am getting choppy sound.

Anyway, im seeing this in logs:

2019-10-26 18:35:00,008 - owrx.wsjt - WARNING - wsjt decoding queue overflow; dropping one file
2019-10-26 18:35:15,008 - owrx.wsjt - WARNING - wsjt decoding queue overflow; dropping one file
2019-10-26 18:35:22,870 - owrx.wsjt - ERROR - failed to decode job
Traceback (most recent call last):
File "/home/openwebrx/openwebrx-jketterl/owrx/wsjt.py", line 34, in run
processor.decode(file)
File "/home/openwebrx/openwebrx-jketterl/owrx/wsjt.py", line 164, in decode
self.outputWriter.send(line)
File "/usr/lib/python3.5/multiprocessing/connection.py", line 204, in send
self._check_closed()
File "/usr/lib/python3.5/multiprocessing/connection.py", line 136, in _check_closed
raise OSError("handle is closed")
OSError: handle is closed

Second channel muted, but still sounding

Hi Jakob.

If I use DMR and I muted one channel while two stations are talking same time, the muted station is still hearable.

I know you fixed it. But it still happens.

73 and thx!

Cannot run on CPUs without SSE4 / AVX

Hello
Just installed your openwebrx fork on a brand new Linux Mint 19,
trying to run docker and get this errors. The web server runs but no audio/RX data

docker run --device /dev/bus/usb -p 8073:8073 -v openwebrx-config:/etc/openwebrx jketterl/openwebrx
2019-12-26 20:12:38,810 - owrx.sdr - INFO - SDR sources loaded. Availables SDRs: RTL-SDR USB Stick, Airspy HF+, SDRPlay RSP2
2019-12-26 20:12:51,596 - owrx.connection - DEBUG - client connection intitialized
2019-12-26 20:12:51,606 - owrx.source - DEBUG - activating profile 70cm
2019-12-26 20:12:51,609 - owrx.source - DEBUG - activating profile 20m
2019-12-26 20:12:51,610 - owrx.source - DEBUG - activating profile 20m
2019-12-26 20:12:51,624 - owrx.source - INFO - Started rtl source: rtl_connector -p 4950 -c 34763 -s 2400000 -f 438800000 -g 30 -P 0
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
IQ worker thread started
socket setup complete, waiting for connections
setting up control socket...
control socket started on 34763
2019-12-26 20:12:52,329 - owrx.source.connector - DEBUG - opening control socket...
control connection established
2019-12-26 20:12:52,329 - owrx.dsp - DEBUG - received STATE_RUNNING, attempting DspSource restart
client connection establised
2019-12-26 20:12:52,330 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_squelch_pipe --outfifo /tmp/openwebrx/openwebrx_pipe_140442144764304_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
2019-12-26 20:12:52,341 - owrx.dsp - DEBUG - adding new output of type audio
Connection to 127.0.0.1 4950 port [tcp/] succeeded!
client connection establised
csdr squelch_and_smeter_cc: csdr bandpass_fir_fft_cc: csdr shift_addition_cc: fifo control mode on
fifo control mode on
fifo control mode on
csdr fractional_decimator_ff: csdr squelch_and_smeter_cc: closing client socket
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
closing client socket
Illegal instruction (core dumped)
Illegal instruction (core dumped)
2019-12-26 20:12:52,850 - csdr.csdr - DEBUG - dsp thread ended with rc=0
2019-12-26 20:12:52,850 - csdr.csdr - DEBUG - restarting since rc = 0, self.running = true, and no modification
2019-12-26 20:12:52,851 - csdr.csdr - DEBUG - Command = nc -v 127.0.0.1 4950 | csdr shift_addition_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_shift_pipe | csdr fir_decimate_cc 217 0.0006912442396313364 HAMMING | csdr bandpass_fir_fft_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_bpf_pipe 0.028933333333333332 HAMMING | csdr squelch_and_smeter_cc --fifo /tmp/openwebrx/openwebrx_pipe_140442144764304_squelch_pipe --outfifo /tmp/openwebrx/openwebrx_pipe_140442144764304_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
2019-12-26 20:12:52,859 - owrx.dsp - DEBUG - adding new output of type audio
Connection to 127.0.0.1 4950 port [tcp/
] succeeded!
csdr shift_addition_cc: client connection establised
fifo control mode on
csdr squelch_and_smeter_cc: fifo control mode on
csdr bandpass_fir_fft_cc: fifo control mode on
csdr fractional_decimator_ff: csdr squelch_and_smeter_cc: Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
closing client socket
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)
Illegal instruction (core dumped)

Allow for freq outside of defined band ranges

Sampling at 2400000 S/s.
Tuned to 148500000 Hz.
Tuner gain set to 7.10 dB.
Tuner error set to 43 ppm.
Reading samples in async mode...
client 0x1ace0f8: CS_THREAD_FINISHED, client_goto_source = 2, errno = 322019-07-22 02:54:10,413 - owrx.config - ERROR -
Traceback (most recent call last):
File "/home/openwebrx/openwebrx-jketterl/owrx/config.py", line 80, in fireCallbacks
c.call(name, value)
File "/home/openwebrx/openwebrx-jketterl/owrx/config.py", line 12, in call
self.subscriber(*args, **kwargs)
File "/home/openwebrx/openwebrx-jketterl/owrx/source.py", line 453, in set_dial_freq
self.wsjtParser.setDialFrequency(self.localProps["center_freq"] + self.localProps["offset_freq"])
File "/home/openwebrx/openwebrx-jketterl/owrx/wsjt.py", line 276, in setDialFrequency
self.band = Bandplan.getSharedInstance().findBand(freq)
File "/home/openwebrx/openwebrx-jketterl/owrx/bands.py", line 55, in findBand
return next(band for band in self.bands if band.inBand(freq))
StopIteration
csdr shift_addition_cc: reinitialized to -0

Also maybe widen predefined ranges

add support for PlutoSDR

#21 already has some information, but since I'd like to introduce this on the soapy_connector, I will probably need to understand some of the modifications mentioned there and implement them, before it can work.

Websocket not created

I tried to start with just an SDRPlay RSP1 connected. The WebUI loads, but throws websocket errors. No waterfall is displayed and no profiles can be selected:
OS: CentOS 8

$ python3 openwebrx.py 


OpenWebRX - Open Source SDR Web App for Everyone!  | for license see LICENSE file in the package
_________________________________________________________________________________________________

Author contact info:    Andras Retzler, HA7ILM <[email protected]>
Author contact info:    Jakob Ketterl, DD5JFK <[email protected]>

    
2019-12-03 23:37:10,948 - owrx.source - INFO - SDR sources loaded. Availables SDRs: SDRPlay RSP1
2019-12-03 23:37:13,732 - owrx.connection - DEBUG - client connection intitialized
2019-12-03 23:37:13,740 - owrx.source - DEBUG - activating profile 70cm
2019-12-03 23:37:13,749 - owrx.source - INFO - Started rtl source: soapy_connector -p 4950 -c 43753 -s None -f 438800000 -g "0" -P 0 -a "None"
client connection establised
2019-12-03 23:37:13,752 - owrx.source - DEBUG - opening control socket...
2019-12-03 23:37:13,754 - owrx.websocket - ERROR - OSError while reading data; closing connection
Traceback (most recent call last):
  File "/home/sdr/openwebrx/jketterl/owrx/websocket.py", line 202, in read_loop
    self.messageHandler.handleTextMessage(self, message)
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 330, in handleTextMessage
    client = OpenWebRxReceiverClient(conn)
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 88, in __init__
    self.setSdr()
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 168, in setSdr
    self.startDsp()
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 204, in startDsp
    self.dsp = DspManager(self, self.sdr)
  File "/home/sdr/openwebrx/jketterl/owrx/source.py", line 797, in __init__
    self.sdrSource.addClient(self)
  File "/home/sdr/openwebrx/jketterl/owrx/source.py", line 319, in addClient
    self.start()
  File "/home/sdr/openwebrx/jketterl/owrx/source.py", line 274, in start
    self.postStart()
  File "/home/sdr/openwebrx/jketterl/owrx/source.py", line 485, in postStart
    self.controlSocket.connect(("localhost", self.controlPort))
ConnectionRefusedError: [Errno 111] Connection refused
2019-12-03 23:37:13,757 - owrx.websocket - DEBUG - websocket loop ended; shutting down
2019-12-03 23:37:13,757 - owrx.websocket - DEBUG - websocket loop ended; sending close frame
SoapySDRDevice_make failed
2019-12-03 23:37:13,786 - owrx.source - DEBUG - shut down with RC=1
2019-12-03 23:37:14,792 - owrx.connection - DEBUG - client connection intitialized
Exception in thread Thread-7:
Traceback (most recent call last):
  File "/usr/lib64/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 28, in mp_passthru
    self.send(data)
  File "/home/sdr/openwebrx/jketterl/owrx/connection.py", line 35, in send
    self.conn.send(data)
  File "/home/sdr/openwebrx/jketterl/owrx/websocket.py", line 105, in send
    raise WebSocketClosed()
owrx.websocket.WebSocketClosed

doesn't work in safari

apparently openwebrx does not currently work in safari on desktop or ios. since i am unable to reproduce due to missing hardware, i would be thankful for any kind of debugging output from the console.

audio sample rate not initialized correctly

when connecting with a 48kHz client (44.1kHz works fine since it is covered by the defaults), audio is incorrectly sampled to 44.1kHz initially. changing the modulation or profile fixes the problem temporarily until the next reload.

Squelch tones?

Is it possible to add a squelch tone or pl tone support for bookmarks so we dont have to manually set the slider every time we switch bookmarks?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.