Open Source OpenWebRx Web-Based Radio Receiver

Back to top

Introduction

OpenWebRX is a multi-user SDR receiver that can be operated from any web browser without the need for any additional client software. It is the ideal solution to provide access to the radio spectrum at your location of choice to a wide audience. All you need is:

1. A computer - could be a Raspberry Pi

2. A SDR dongle device

3. An antenna (for better reception as the antenna that comes with the dongle is usually only sufficient for strong signals)

4. Network access (to listen from elsewhere in your house or to share to the Internet).

5. Optionally a DVMEGA DVstick 30 or 33 if you wnat to provide decoded DMR and DStar signals (at $129 though it is pricey)

It allows anyone worldwide with Internet browser access, to listen to radio transmissions at the location of the receiver. Depending on the OpenWebRx configuration this could be broadcast FM stations, ham radio stations (various modes including digital), two-way radios, APRS, etc. For ham radio digital modes it can decode the signal into audio (DMR, D-Star, YSF, etc) and text (APRS).

This is truly amazing software covering so many modes all-in-one, including also the normal FM, AM, SSB. It actually decodes those various digital modes even identifying the caller identity and locations on a map.

There is more though... apart from just receiving and using it yourself, it can also be configured for remote access listening, not only for yourself If you are travelling say with your mobile phone, but by sharing access over the Internet for others anywhere in the world. You can find some of these stations listed at https://www.receiverbook.de/.

Back to top

Typical Use Cases

1. You are not a ham operator but want to tune and listen to what radio activity is happening. Usually the station has bookmarks (and a waterfall display) for easily finding what frequencies are used for what.

2. You do not have a DMR or D-Star digital mode ham radio but want to listen to this activity at a location and see the digital text that accompanies the transmissions. NOTE: Version 1.1.0 removed this functionality from the software from August 2021 due to these modes being proprietary. You will need to purchase a $129 DVstick 30 or similar dongle.

3. You have an APRS radio or transmitter near that location and want to monitor if the APRS is sending correctly from your equipment.

4. You are broadcasting ham radio (or even running a bulletin) and a nearby OpenWebRx service could provide a monitor to confirm how your signals are being received.

5. You are experimenting with setting up your digital ham radio and want to monitor what is being received and sent from the local radio repeaters.

6. You are travelling away from home and can use this to monitor the radio activity near your home (from any mobile browser whether on a laptop or mobile phone).

7. You are interested in becoming a ham radio operator and this will allow you to tune in and listen to what activity is happening at this location.

8. Listening to air traffic control or marine radio comms.

9. Listening to the International Space Station as it passes over the location.

10. Your ham radio does not have a waterfall display to show activity across a band, and this can show that activity if you are in a nearby location.

Back to top

Main Components

Antenna - Although many SDR dongles come with bunny ears type telescopic antennas, these are not really sufficient for picking up weaker radio signals, so you ideally want something tuned for the frequency range you intend to monitor. If you want to tune in for HF type signals then maybe a 40 m dipole or something similar could be used, but in my case I was intending to cover the VHF and UHF frequencies, so I used a VHF/UHF vertical antenna (but it could also be a home-brew quarter-wave like have made from plain wire soldered to a female SO-239 panel mount connector that I bought from an electronics shop - but that works better than my commercial vertical, so I use the home-brew antenna on my real radio). The coax from the antenna runs down to the SDR dongle. As I have standard RG-58 coax cable between the antenna and the SDR dongle, I also have a short pigtail adaptor cable converting from PL-259 connector to the SMA connector that the dongle accepts.

Below in the centre, on the main support mast, is my Watson W-30 Colinear VHF/UHF base antenna that I'm using to receive the signals for the SDR dongle.

SDR Dongle - I started out with a real cheap one, so those will work, but paying a bit more got me a RTL-SDR temperature compensated oscillator tuner. So start with what you have, or can afford, and then upgrade later if you need to. Depending on the particular model it could receive frequencies from 500 kHz up to 1.75 GHz. An important factor to consider is the total bandwidth you can provide as the SDR is scanning the bands that you are providing - the wider bandwidth (or spectrum) you want to make available, will mean firstly the SDR dongle has to work a lot harder (slower response and higher temperatures), and secondly you may have to consider what antennas will be matched with that spectrum. All these 'cheaper' dongles are 8-bit ADC resolution and the 16-bit ones are a lot faster and scans a wider frequency spectrum (which also means you can provide more or wider bands) BUT they come at quite a premium cost. The sample rate and the ADC resolution determine how much spectrum you will be able to service without drop-outs. Prices start around $20 for the cheaper ones but reasonably good Funcube Pro+ or Airspy or HackRF dongles are going to be $200 to $300.

The photo below shows my Raspberry Pi 4 with the RTL-SDR dongle plugged in. Mine was running very hot, so I had bought cheap USB desk fans, but I found they gave up after 6 to 8 weeks continuous running. I then bought the dual case fans you see below, which plug into 5V USB, so they actually plug straight into the Raspberry Pi's USB port. Computer case fans are designed for continuous running and I think these were rated for 10,000 or so hours, and they have a 3-speed switch.

Computer - this needs to be running the whole time you intend anyone to be using the OpenWebRx so personally I just think the smallest footprint with lowest power consumption (and cost) is a Raspberry Pi. I'm using a Pi 4 but a Pi 3 will probably work fine. The software comes as a ready to install Pi image, or as a Linux Debian install from their repos, a Docker image (if you want to install on say an OMV server or similar), or you can manually install it from source code. Again for most. the Pi image will be easiest to do by just burning that ISO file to an SD card for inserting into the Pi. The guide at https://github.com/jketterl/openwebrx/wiki/Setup-Guide explains how to do this. You'll note your Pi can connect via WiFi or by Ethernet cable to your home router, for access by other computers. Ethernet is simpler and more stable though.

I'm also running utility software called RPi-Monitor on my Pi to keep an eye on the temperature and load on CPU (which I monitor on my desktop computer from one of my browser tabs). The screenshot below shows what that view looks like.

Home Router/Firewall/Reverse Proxy - the setup above is fine for accessing this from inside your home network, but if you want to share it to the Internet you do need to provide a URL address and have some reverse proxy with SSL connection. I use something called NGINX Reverse Proxy which generates the SSL certificate and securely manages the incoming connections by ensuring that they only reach the OpenWexRx on the Pi. I did the video below explaining how I achieved this, and this would also work for home weather stations and similar things you are hosting (see https://youtu.be/DZRG2sezIl4). 

Back to top

Configuring OpenWebRx

There are four main configuration files. It may sound imposing but there are lots of helpful comments in the text, and text editors like nano (on Ubuntu or other Linux) should highlight any syntax errors. The various commas and hyphens (for formatting) need to stay in place. But if you just edit the actual text part you should be quite safe. The worst thing that will happen is the OpenWebRx software will show an error, then go back and check for what looks out of place from lines above or below where you edited and try again. Always good to first make a backup copy of any file you edit.

For example if you look at this snippet from the bands.json file, this segment defines the naming for that band (2m), the lower bound and upper bound frequencies as well as some frequencies for certain digital modes. You actually don't need to edit this particular file, but you'll notice that that segment starts with an open curly bracket and ends with a closing curly bracket. Each line also ends with a comma. If you deleted a comma by mistake, or a curly bracket, it won't work and will give an error when starting the application. But look at the symmetry, and you should see what is out of place if you need to fix something. Mostly with all the config files, you would just maybe rename "2m" to "2 metres" for example if you wanted a different name.

  {
    "name": "2m",
    "lower_bound": 144000000,
    "upper_bound": 146000000,
    "frequencies": {
      "wspr": 144489000,
      "ft8": 144174000,
      "js8": 144178000,
      "ft4": 144170000,
      "jt65": 144120000,
      "packet": 144800000
    }
  },

The four files are:

1. bands.json - just defines the main bands and your config file will further reference them by name, depending on which you want available to users.

2. bookmarks.json - the bookmark tagss that are seen along the top of the waterfall display for quick tuning to bookmarked frequencies and modes. Their format looks like this for each bookmark, but note the very last one won't have a comma after it. But again, you'd only worry about changing the text name or frequency or mode. Documentation at https://github.com/jketterl/openwebrx/wiki/How-the-bookmarks-work.

{
    "name": "Kanonkop",
    "frequency": 145750000,
    "modulation": "fm"
  },

3. config.json - most important one to set the dongle type, description of station, and stuff that affects whether it starts up or not. There is documentation about this at https://github.com/jketterl/openwebrx/wiki/Configuration-guide. This config file has a setting to allow for inaccuracy of the SDR dongle receiver by offsetting the frequency displayed, and I used this to align with a known repeater frequency so that it shows the correct frequency on the display.

4. users.json - this is new as an admin can now log into the web interface and update various configuration settings without having to open the config files with a text editor. For this reason a user ID and password must be created for each of these users. Documentation at https://github.com/jketterl/openwebrx/wiki/User-Management. But if you are doing a fresh install, I think it prompts you for this when you boot it up the first time, so it has got a lot friendlier.

Back to top

How OpenWebRx Works

I did an introduction video at https://youtu.be/hK-QYrecxVM explaining how the setup works with a tour around the interface for end users. This shows the parts of the screen that you will interact with as a user.

Back to top

What you can hear on my Receiver

The following could be interesting to listen to on my station and are all marked with yellow bookmark tags along the top of the waterfall display. On the right-hand lower part of the screen is a control display which allows you to change the band, volume, squelch, mode type, etc. But clicking on the yellow tabs should set the mode correctly for you. Don't be afraid to play with it as it is receive only and won't damage anything:

  • RTL-SDR 2m VHF Digital = APRS stations beaconing location information around Cape Town which includes cars/trucks, weather stations, repeaters, etc and displays the data they are transmitting. So weather stations will show weather info whilst cars/trucks will show location, speed, direction, etc. If there is an emergency operation or rescue on, you may see the portable tracker units reporting in via radio. There is also an International Space Station (ISS) voice frequency here for when they pass over Cape Town but you may only hear the astronauts speaking as the uplink frequency is on 145.200 MHz FM.
  • RTL-SDR 2m VHF Digital = 144.300 USB for Wednesday HAMNET bulletins at 17:30 UTC/GMT (apart from 1st Wednesday of the month which is a physical or virtual meeting). There is also a JS8Call digial mode bookmark but it is not often that operators are using this frequency for JS8Call. It is useful for operators wanting to test though on JS8Call and see if this OpenWebRx is picking up the signal.
  • RTL-SDR 2m Voice = Five radio repeater sites (you'll hear bulletins Sundays 06:30 and 17:00, Mondays at 18:00, Wednesdays at 17:30 (all UTC/GMT times so add 2 hours for local SA times).
  • RTL-SDR 70cm UHF Digital = Helderberg DMR which is 24/7 International DMR Talk Group 91, and the International Space Station (ISS) on 438.800 MHz when it passes over. This is a cross-band repeater facility so you'd hear hams from far away talking up to the ISS, and we'd hear them here on this frequency.
Back to top

OpenWebRx website: https://www.openwebrx.de/

Listen to my OpenWebRx station: https://openwebrx.gadgeteerza.co.za/

 

Last updated: 2021-08-17

#hamradio #amateurradio #openwebrx #radio #SDR

Back to top