• This repository has been archived on 13/Jan/2020
  • Stars
    star
    969
  • Rank 45,687 (Top 1.0 %)
  • Language
    JavaScript
  • License
    GNU Affero Genera...
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

OpenWebRX

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


โš ๏ธ From 2019-12-29 OpenWebRX development is discontinued. โš ๏ธ

I'm would like to say a big thanks to everyone who supported me during this project, including those who contributed either code or donations. It has been a very fruitful 6 years, but now it's time to move on to other projects. See also my blog about that.

(@simonyiszk, please keep this GitHub repo for historic purposes.)

Know limitations of the last version:

  • Python 2.7, a main dependency of the project, will be not be officially maintained from 1 January 2020. By time, probably it will not be secure to use this version on public servers, unless someone still provides security patches for Python 2.
  • Some specific parts of the DSP code could be improved for better SNR.

Even though these limitations are probably acceptable in an amateur radio project, I would not build critical infrastructure on it.

For commercial inquiries (e.g. if someone wants me to develop an improved version without these limitations), I'm still open, drop me an e-mail.


๐Ÿ’พ Setup guide for Ubuntu | ๐Ÿ“˜ Knowledge base on the Wiki | ๐ŸŒŽ Receivers on SDR.hu

OpenWebRX

It has the following features:

  • csdr based demodulators (AM/FM/SSB/CW/BPSK31),
  • 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 supports RTL-SDR, HackRF, SDRplay, AirSpy and many other devices, see the OpenWebRX Wiki,
  • it has a 3D waterfall display:

OpenWebRX 3D waterfall

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 (2016-02-14)

  • The DDC in csdr has been manually optimized for ARM NEON, so it runs around 3 times faster on the Raspberry Pi 2 than before.
  • Also we use ncat instead of rtl_mus, and it is 3 times faster in some cases.
  • OpenWebRX now supports URLs like: http://localhost:8073/#freq=145555000,mod=usb
  • UI improvements were made, thanks to John Seamons and Gnoxter.

News (2017-04-04)

  • ncat has been replaced with a custom implementation called nmux due to a bug that caused regular crashes on some machines. The nmux tool is part of the csdr package.
  • Most consumer SDR devices are supported via rx_tools, see the OpenWebRX Wiki on that.

News (2017-07-12)

  • OpenWebRX now has a BPSK31 demodulator and a 3D waterfall display.

When upgrading OpenWebRX, please make sure that you also upgrade csdr!

OpenWebRX servers on SDR.hu

SDR.hu is a site which lists the active, public OpenWebRX servers. Your receiver can also be part of it, if you want.

sdr.hu

Setup

OpenWebRX currently requires Linux and python 2.7 to run.

First you will need to install the dependencies:

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 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, please drop me a mail:
Andras Retzler, HA7ILM <[email protected]>

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

Setup tips

If you have any problems installing OpenWebRX, you should check out the Wiki about it, which has a page on the common problems and their solutions.

Sometimes the actual error message is not at the end of the terminal output, you may have to look at the whole output to find it.

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

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.

More Repositories

1

csdr

A simple DSP library and command-line tool for Software Defined Radio.
C
495
star
2

qtcsdr

It turns your Raspberry Pi 2 and RTL-SDR into an amateur radio transceiver! (Released under BSD license.)
C++
298
star
3

rpitx-app-note

Application note on using GNU Radio and csdr with rpitx
98
star
4

smallrx

๐Ÿ“ป amateur radio receiver in <100 code lines
C
70
star
5

rtl_mus

RTL Multi-User Server
Python
39
star
6

opendous

Exported from http://code.google.com/p/opendous
KiCad Layout
26
star
7

gr-ha5kfu

Some GNU Radio blocks
CMake
10
star
8

cuda-ddc-tests

Test program for a digital downconverter (DDC) implementation for NVIDIA CUDA
C++
8
star
9

gr_messagesink_tutorial

An example of using GNU Radio Message Sink block from python for displaying FFT plots.
Python
7
star
10

hpsdrtool

Command-line tool to retrieve I/Q data from a HPSDR receiver
Python
5
star
11

sdrlab

An RTL-SDR interface to LabVIEW for educational purposes
LabVIEW
4
star
12

kiwi_rss

Forked from jks-prv/kiwiclient
Shell
3
star
13

pgroup

No orphaned child processes left around anymore after running your script! (Source released under MIT license.)
C
3
star
14

whiteboard-ui-linux

C++
3
star
15

RevealTalkVideo

A reveal.js plugin for embedding the YouTube video of your talk into the corner of your presentation.
JavaScript
2
star
16

Friedrichshafen-SDRA-2017-Talk-And-Paper

The slides of my talk at Software Defined Radio Academy 2017, Friedrichshafen.
JavaScript
2
star
17

gitprez

Another Git tutorial
JavaScript
1
star
18

Friedrichshafen-SDRA-2016-Talk-And-Paper

The slides of my talk at Software Defined Radio Academy 2016, Friedrichshafen.
JavaScript
1
star
19

Friedrichshafen-SDRA-2018

JavaScript
1
star
20

TAPR-DCC-2015-Talk-and-Paper

The paper and the slides for my talk at the TAPR Digital Communications Conference 2015.
JavaScript
1
star
21

ha7ilm.github.io

The repository for my site.
JavaScript
1
star
22

grblocks

CSS
1
star
23

sdrhu-frontpage

HTML
1
star