Open source, multi-user SDR receiver software with a web interface
Go to file
2016-02-14 14:36:55 +01:00
htdocs Added option to switch dynamic buffering off. New cfg options: csdr_dynamic_bufsize, csdr_print_bufsizes, csdr_through. 2016-02-10 22:25:04 +01:00
plugins Added option to switch dynamic buffering off. New cfg options: csdr_dynamic_bufsize, csdr_print_bufsizes, csdr_through. 2016-02-10 22:25:04 +01:00
.gitignore Added .gitignore for python. 2016-01-24 00:03:50 +01:00
config_webrx.py Added option to switch dynamic buffering off. New cfg options: csdr_dynamic_bufsize, csdr_print_bufsizes, csdr_through. 2016-02-10 22:25:04 +01:00
openwebrx.py Fix issue/22 (behaviour if RTL-SDR stick fails or gets removed). 2016-02-14 14:36:55 +01:00
README.md Removed rtl_mus in favor of ncat. 2016-01-24 00:03:08 +01:00
rxws.py many fixes and new features like IMA ADPCM compression 2015-08-17 20:32:58 +02:00
screenshot.png many fixes and new features like IMA ADPCM compression 2015-08-17 20:32:58 +02:00
sdrhu.py many fixes and new features like IMA ADPCM compression 2015-08-17 20:32:58 +02:00

OpenWebRX

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

OpenWebRX

It has the following features:

  • libcsdr based demodulators (AM/FM/SSB),
  • filter passband can be set from GUI,
  • waterfall display can be shifted back in time,
  • it extensively uses HTML5 features like WebSocket, Web Audio API, and <canvas>.
  • it works in Google Chrome, Chromium (above version 37) and Mozilla Firefox (above version 28),
  • currently only supports RTL-SDR, but other SDR hardware may be easily added.

News (2015-08-18)

  • My BSc. thesis written on OpenWebRX is available here.
  • Several bugs were fixed to improve reliability and stability.
  • OpenWebRX now supports compression of audio and waterfall stream, so the required network uplink bandwidth has been decreased from 2 Mbit/s to about 200 kbit/s per client! (Measured with the default settings. It is also dependent on fft_size.)
  • OpenWebRX now uses sdr.js (libcsdr compiled to JavaScript) for some client-side DSP tasks.
  • Receivers can now be listed on sdr.hu.
  • License for OpenWebRX is now Affero GPL v3.

News (2015-09-01)

  • The DDC in csdr has been hand-optimized for ARM NEON, so it runs 3× faster on the Raspberry Pi than before.
  • Also we use ncat instead of rtl_mus, and it is 3× faster.
  • OpenWebRX now supports URLs like: http://localhost:8073/#freq=145555000,mod=usb

News (2016-01-23)

  • ncat is now a requirement for OpenWebRX.

When upgrading OpenWebRX, please make sure that you upgrade csdr, and install the new (optional) dependency ncat!

Setup

OpenWebRX currently requires Linux and python 2.7 to run.

First you will need to install the dependencies:

By the way, nmap is tool commonly used for auditing network security, and it is not used by OpenWebRX in any way. We need it because the ncat command is packaged with it.

ncat is a better netcat alternative, which is used by OpenWebRX for internally distributing the I/Q data stream. It also solves the problem of having different versions of netcat on different Linux distributions, which are not compatible by their command-line arguments.

After cloning this repository and connecting an RTL-SDR dongle to your computer, you can run the server:

python openwebrx.py

You can now open the GUI at http://localhost:8073.

Please note that the server is also listening on the following ports (on localhost only):

  • port 8888 for the I/Q source,
  • port 4951 for the multi-user I/Q server.

Now the next step is to customize the parameters of your server in config_webrx.py.

Actually, if you do something cool with OpenWebRX (or just have a problem), please drop me a mail:
Andras Retzler, HA7ILM <randras@sdr.hu>

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).

Configuration tips

Now we have a %Wiki with some how-tos. However, some quick tips:

If you want to run OpenWebRX on a remote server instead of localhost, do not forget to set server_hostname in config_webrx.py.

DSP CPU usage can be fine-tuned in plugins/dsp/csdr/plugin.py: you can set transition bandwidths higher (thus degrade filter performance by decreasing the length of the kernel, but also decrease CPU usage), and also set fft_size lower.

If you want a chat-box to the top of the page, here is a snippet for you to include in config_webrx.py.