Open source, multi-user SDR receiver software with a web interface
Find a file
Denny Ma 02a3fd565e fix(dab): prevent cached_output overwrite by freq-correction-only packets
MetaProcessor.process() was replacing cached_output on every call with
whatever fields happened to be in the current EtiDecoder packet. Most
packets only contain timestamp + coarse/fine_frequency_shift — after
filtering those out, the replacement left cached_output as {"mode":"DAB"},
wiping out the previously cached programmes/ensemble data. This caused
the DAB programme list to stop loading in browsers ~1-2 minutes after
initial connect (when the first freq-correction packet arrived).

Fix: switch from assignment to dict.update(), merging only stable fields
(programmes, ensemble_label, etc.). Freq-correction-only packets produce
an empty stable set and no longer touch the cache.

Paired with the getCachedMeta()/setMetaWriter() injection from the PR #421
port, this ensures the programme list is reliably available to all clients.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 16:32:55 +11:00
.github/ISSUE_TEMPLATE update wording on github 2020-08-26 21:08:50 +02:00
csdr fix(dab): prevent cached_output overwrite by freq-correction-only packets 2026-03-16 16:32:55 +11:00
debian looks like we need all of setuptools now 2024-06-16 16:12:24 +02:00
docker update eti decoder 2024-02-21 16:17:23 +01:00
docs feat(dab): share single EtiDecoder across all clients on same multiplex 2026-03-15 18:18:05 +11:00
htdocs check for numbers properly 2024-02-16 12:33:29 +01:00
inkscape files invent a new icon for continuous auto waterfall mode 2021-05-17 20:25:25 +02:00
owrx fix(dab): replay cached programme metadata to late-connecting clients 2026-03-16 14:15:41 +11:00
systemd remove faulty dependency 2021-01-22 17:34:09 +01:00
test make property deletions evaluate to false for convenience 2021-06-01 11:37:51 +02:00
.dockerignore don't put debian files in docker builds 2020-02-17 15:03:39 +01:00
.gitignore switch file loading to pkg_resources 2019-12-08 20:27:58 +01:00
bands.json add WSPR frequencies for 630m and 2190m 2024-01-27 02:08:51 +01:00
CHANGELOG.md update changelog 2024-01-30 23:55:53 +01:00
docker.sh add Afedri SDR-Net SoapySDR driver to docker files 2023-10-23 08:53:03 +07:00
LICENSE.txt Create LICENSE.txt 2015-11-29 18:00:35 +01:00
openwebrx.conf add config option to allow binding to a specific address 2024-01-18 00:59:43 +01:00
openwebrx.py add return codes 2022-06-01 17:58:06 +02:00
README.md update wsjt-x homepage url 2023-02-14 15:37:37 +01:00
setup.py use a more generic include instead of manually updating the list 2022-12-11 22:41:10 +01:00

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 <randras@sdr.hu> for licensing options.