If you notice spammers in the forum, please notify Bas ON5HB, so they can be removed and banned. Give a link in the chatbox or send a PM to me. Thanks.

Recent posts

#1
UberSDR / Re: Updated Twente-like WebSDR...
Last post by Emmanuel SV1BTL - Oct 27, 2026, 10:05 PM
Quote from: Bas ON5HB on Oct 26, 2026, 05:42 PMDiversity works great! Thanks

Thank you Bas. There is a minor update from yesterday... 3d spectrum is added, Gui at 90% and total fix on some decoders.
You can update the usual way.
cd WebSDR-emulation-for-UberSDR
   git pull
   bash install.sh
Please read: http://sv1btlham.no-ip.org:8901/sv1btl/readme.html

Waiting FreeDV RADE V2 and JTTY to end their test status, so to make a real upgrade.
Meanwhile DRM is already working for PhantomSDR+ and I am thinking to implement it also in WebSDR emulation, but no time until the weekend. To be honest, I don't know who is going to use DRM.
I'll post mewer information.

P.S. Just for reference, I use this .json file for receive diversity for both PhantomSDR and WebSDR emulation. It is the same file. You can of course modify it as you like.
#2
UberSDR / Re: Updated Twente-like WebSDR...
Last post by Bas ON5HB - Oct 26, 2026, 05:42 PM
Diversity works great! Thanks. ;D
#3
UberSDR / Re: Updated Twente-like WebSDR...
Last post by Emmanuel SV1BTL - Oct 21, 2026, 10:09 PM
SV1BTL WebSDR layout for UberSDR — update of 21 October 2026
=====================================================================

Hello to all sysops using the SV1BTL WebSDR layout on their UberSDR station.

A new version of the package is out. It adds four things to the WebSDR page (port 8901): a hover line that runs down the waterfall, band buttons that remember where you were, and Receive Diversity on the desktop and mobile pages, including classic WebSDR stations through a small relay.

Package:  https://github.com/sv1btl/WebSDR-emulation-for-UberSDR
Guide:    the "installation guide" link in the page header (sv1btl/readme.html)
Zip:      websdr_sv1btl_package.zip
SHA-256:  9225fe31292c8ca5dbf0c52b2258f732d4d39f0b0764640fce6293501e249386


WHAT IS NEW
-----------


1. Hover line through the waterfall

With Type = "spectrum + waterfall", the dashed yellow line that follows the mouse over the spectrum now runs down the whole waterfall too, as in PhantomSDR-Plus. Nothing to set up.

2. Band buttons remember your last frequency, mode and filter

- Each amateur band button remembers the last frequency you tuned in that band, together with the mode and the filter (bandwidth). Pressing it again later brings you back exactly there.
- A second press on the band button that is already lit goes back to the band's default frequency, mode and filter.
- It is kept in each visitor's own browser, so every listener has their own.

3. Receive Diversity (desktop and mobile pages), as in PhantomSDR-Plus

Your receiver is combined with a SECOND RECEIVER SOMEWHERE ELSE, and the speaker plays whichever of the two hears the station better at that moment. When one site is in a fade the other usually is not, so you keep copy through QSB, and two sites also have different local noise. It switches between the two (with a short crossfade); it does not add the signals together, so it buys continuity, not a stronger signal.

How to use it:
- Desktop page: the "Receive Diversity" panel in the middle column, just above the "Switch to another WebSDR" links. Mobile page: the "Receive Diversity:" section under the RADE status line, above Memories. Click/tap it to open it.
- Choose what the second receiver is and type its address, then Start:
    UberSDR      its normal web address, e.g. sdr.example.org (not port 8073)
    KiwiSDR      host:8073
    PhantomSDR+  host:8900
    WebSDR        host:8901  (through your station's relay, see point 4)
  Nothing has to be set up on the other receiver.
- Tune as usual: the second receiver follows your frequency, mode and filter by itself.
- You listen 1 to 3 seconds behind real time. Lining up the two streams takes about 15 to 30 seconds of signal; until then the better one is already chosen ("Ready (unaligned)"). Both receivers must hear the station.
- The dot in the title shows which site you hear: green = your receiver, cyan = the second one. A small table shows the link, delay, SNR of both and the number of switches.
- "Remote SNR trim" (-15 ... +15 dB) biases the choice; +15 / -15 force one site, so you can hear each one alone.
- The ☰ button keeps every receiver you used, per type, in your browser. On the desktop page you can name them, drag them up or down to change the order, remove them, open their own page (🌍), and export / import the list as a file. On a phone: tap one to use it, 🌍, remove, export / import (export on the desktop and import the file on the phone to carry the list across).
- The CW and digital decoders and RADE keep using YOUR receiver; diversity feeds the speaker only.
- Please be considerate: a session uses one listener slot on the other receiver for as long as it runs.

4. WebSDR stations as the second receiver: the relay (port 8902)

A classic WebSDR (PA3FWM's software) accepts its audio only from its own page, so the connection goes through a small relay program on YOUR server (PhantomSDR-Plus's websdr_relay.py, in websdr_sv1btl/relay/, run as a Docker container of its own, separate from UberSDR).

*** The relay's port (8902 by default) must be forwarded (opened) on your router to the UberSDR machine, TCP, JUST LIKE 8901. Without it, WebSDR diversity works only inside your own network. UberSDR, KiwiSDR and PhantomSDR+ partners do not need the relay at all. ***

- install.sh offers to set it up (answer y). It asks for:
    your callsign (an e-mail too if you like) and your page's public address: both are sent to each WebSDR in the relay's User-Agent, so its operator knows who is connecting;
    the port: press Enter for 8902, or give another free one. The installer writes it into relay/websdr_relay.json and into station.js (diversityRelayPort), so the page finds the relay.
- It builds and starts the container (it restarts by itself after a reboot) and checks that it answers. Check from OUTSIDE your network (a phone on mobile data) that http://<your-address>:8902/status answers.
- On the other WebSDR's user list your session shows as "<callsign> diversity".
- The relay allows at most 10 sessions to any one WebSDR and 60 in all, passes on only tuning commands and refuses private addresses. WebSDR operators added their Origin check on purpose: keep these limits, and stop if an operator asks you to.
- uninstall.sh offers to remove the relay container (then you can close its port on the router).
- Setting it up by hand instead is described in the guide ("The WebSDR relay").


HOW TO UPGRADE
--------------

 
cd WebSDR-emulation-for-UberSDR      # the folder you cloned
   git pull
   bash install.sh

or download and unpack the new zip and run its install.sh.

- Your station.js and stationinfo.txt are kept. The new setting diversityRelayPort (default 8902) is added to your station.js by itself.
- The installer asks whether to set up the WebSDR relay (optional, see above). If you answer N, everything else still works; run install.sh again later to add it.
- The page files are written in place, so no UberSDR restart is needed.
- Listeners: press Ctrl+F5 once (desktop) or reload the mobile page.


LICENCES
--------

The Receive Diversity combiner, the receiver connections (UberSDR, KiwiSDR, PhantomSDR+, WebSDR), PhantomSDR-Plus's audio module and the WebSDR relay come from PhantomSDR-Plus (github.com/sv1btl/PhantomSDR-Plus) and, with sv1btl/diversity-ui.js, are under the GNU GPL v3, like the decoders. SV1BTL's own work stays under the MIT licence (see LICENSE).


Questions and problem reports:
https://github.com/sv1btl/WebSDR-emulation-for-UberSDR/issues

73 de SV1BTL
#4
PhantomSDR / Re: Upgrade to v.5.2.0
Last post by Emmanuel SV1BTL - Oct 21, 2026, 03:06 PM
please replace the file ~/PhantomSDR-Plus/frontend/src/webSdrSource.js, as a serious bug is fixed.
#5
PhantomSDR / Re: Upgrade to v.5.2.0
Last post by Emmanuel SV1BTL - Oct 20, 2026, 12:53 PM
Minor Update to v.5.2.1

  • An audio analyser. The **📊 Show** button in the Spectrogram section now opens a full audio analyser: the demodulated audio with a dB grid and peak hold, an axis that follows the mode (reversed in LSB), the recommended bandwidths and your current filter, and an RF view of the station in AM and FM. Under it, the station's occupied width with a within / wide / splatter verdict, and in USB/LSB an SSB audio report — tonal balance against Standard, DX or ESSB, compression, mains hum, residual carrier and opposite sideband — with a curve to compare before and after and a listening report to download and send. In AM and FM an AM/FM report takes its place — modulation depth and sideband balance, FM deviation and 99 % bandwidth, carrier offset, audio bandwidth, CTCSS tone and hum. No zoom is needed: while it is open the analyser keeps its own fine-detail view of the station. You can tune and change the mode from its header, and its colours show how far each part of the spectrum stands above the noise. A Mute button lets you analyse your own transmission without feeding it back into the microphone. Adapted from PhantomSDR-ORSAT by F1NSK. See **[docs/USER_GUIDE.md](docs/USER_GUIDE.md)**.
  • Band buttons remember your frequency. Coming back to a band tunes the last frequency you used there, with the band's zoom, brightness and contrast as before; a second click on the active band button goes back to the band's default. A frequency link in the chat now frames its band the way **To Band** does. See **[docs/USER_GUIDE.md](docs/USER_GUIDE.md)**.

P.S. Please download and replace these files, and then recompile Backend and Fronend and restart. Because of the size, the zip does not include the documents, but you can download them from the repo.

#6
PhantomSDR Bugs / Re: Receive Diversity not work...
Last post by Emmanuel SV1BTL - Oct 18, 2026, 12:54 PM
Another problem with Receive Diversity.
Fixed UberSDR partners whose address was copied from the browser. UberSDR's new web interface lives under /v2/ (its main address redirects there, e.g. https://wessex.zapto.org/v2/), but its audio connection is only at the root of the site, so an address with /v2/ never connected — on http and https alike.
Any path in an UberSDR address is now ignored: paste the address from the browser's bar as it is. Addresses already saved in your listeners' lists work too, without editing them.

Please either download the files and put them in PhantomSDR-Plus/frontend/src, or run the update
#7
PhantomSDR Bugs / Receive Diversity not working ...
Last post by Emmanuel SV1BTL - Oct 18, 2026, 10:54 AM
==============================================================================
PhantomSDR-Plus — Receive diversity and https://
SV1BTL — https://github.com/sv1btl/PhantomSDR-Plus
17 October 2026
==============================================================================

WHY THIS NOTE

If your receiver is served over https:// (Caddy, set up with setup-https.sh), receive diversity has so far failed with most partners: other PhantomSDR+ stations and KiwiSDRs stayed on "connecting" for ever, while the very same partners worked from your http:// address.

The reason is a browser rule, not a fault in your station. A page opened over https:// may only open secure wss:// connections; the browser blocks plain ws:// connections before they even leave the listener's computer. Most PhantomSDR+ stations and every KiwiSDR offer only ws://, so an https page could never reach them. An http:// page has no such restriction: it may open both ws:// and wss://.

The fix: an https page now reaches those partners through your own WebSDR relay. The browser connects securely to your station (wss://your.name/relay/...), and the relay connects onward to the partner over ws://. The relay accepts only the diversity audio paths (PhantomSDR+ /audio, KiwiSDR /kiwi/.../SND), only public addresses (never your LAN or the computer itself), and keeps its usual limits per partner and in total.

The same update also fixes diversity to stations that require the current client version (they answer "out of date"): those stayed on "connecting" too, on http and https alike.


------------------------------------------------------------------------------
A. YOUR STATION ALREADY SERVES https://
------------------------------------------------------------------------------

1. Update the station:
 
cd ~/PhantomSDR-Plus
  bash update.sh

Answer y to "Update these files now?". It saves what it replaces and rebuilds the web page by itself. (By hand instead: unpack update.zip over your tree, then ./recompile.sh --frontend.)

2. Make sure the relay runs. Check:
 
systemctl is-active phantomsdr-websdr-relay
If it says "active", go to step 3. Otherwise install it:
 
bash setup_websdr_relay.sh
On a station set up with configure-station.sh (every https station is), it sees that it sits behind the proxy: it listens on this computer only and is reached as /relay through your existing address, so no router port has to be opened and nothing has to be rebuilt. Give your callsign and site address when asked (they are sent to the partners, so their operators know who connects), and choose [1] to install it as a systemd service.

Or run bash configure-station.sh and answer yes to the relay question (it defaults to yes on an https station): the wizard now installs and starts the relay by itself.

3. Restart the proxy, the relay and the admin panel (the receivers keep running; the proxy restart briefly disconnects listeners, who reload the page):
 
sudo systemctl restart phantomsdr-proxy
  sudo systemctl restart phantomsdr-websdr-relay
  sudo systemctl restart phantomsdr-admin

4. Check it. Open https://your.name/relay/status in a browser: it should show a few lines starting with "service": "PhantomSDR-Plus WebSDR relay". Then open your https:// page, expand Receive Diversity, choose a plain-http PhantomSDR+ partner and Start: it should reach "ready" within a few seconds.

Good to know:

- Through the relay, the partner sees YOUR server's address, not the listener's. A partner with a per-IP limit (PhantomSDR+ allows 3 by default) therefore counts all your relayed listeners together.
- Each relayed listener costs your upload about 30–50 kbit/s, the same as one ordinary listener.
- Partners that are https themselves (UberSDR, https PhantomSDR+ stations) are reached directly and never use the relay.
- Your http:// address keeps working exactly as before, without the relay.


------------------------------------------------------------------------------
B. YOUR STATION IS http:// ONLY
------------------------------------------------------------------------------

Nothing is required. An http page reaches ws:// and wss:// partners directly, so the relay is not involved and the https change does not affect you.

The update is still recommended, for the "out of date" fix:
 
cd ~/PhantomSDR-Plus
  bash update.sh
  sudo systemctl restart phantomsdr-proxy
  sudo systemctl restart phantomsdr-admin

The relay stays optional for you: it is needed only if you want WebSDR (websdr.org) partners. If you run it, restart it too (sudo systemctl restart phantomsdr-websdr-relay).


------------------------------------------------------------------------------
C. MOVING FROM http:// TO https:// LATER
------------------------------------------------------------------------------

You need:

- a station set up with configure-station.sh (an older station: run bash configure-station.sh once — it keeps your ports and settings),
- a DNS name pointing at your public address (a free dynamic-DNS name is fine; https certificates are not issued for a bare IP address),
- your router forwarding TCP 443 and TCP 80 to this computer (80 is used only to prove the name is yours when the certificate is issued or renewed).

Then:

1. Update first (section B), so the page knows how to use the relay.

2. Run the wizard and answer yes to "Also serve the receiver over https://?":

bash configure-station.sh
It sets up Caddy and the free Let's Encrypt certificate (setup-https.sh) by itself. The relay question that follows now defaults to yes when https is on — keep it yes, and the wizard installs and starts the relay too. (bash setup-https.sh on its own does only the https part; then install the relay with bash setup_websdr_relay.sh.)

3. Check it as in section A, step 4.

Your http:// address keeps working alongside https:// — websdr.org's check, KiwiSDR clients and other stations' http pages rely on it, so leave it open.

If you ever turn https off again (bash setup-https.sh --remove), the relay may stay: it does no harm, and WebSDR partners still need it.

P.S.
A demo .json file that I use now is this: You can use it, edit it, save it, or create a new.
How to use 'Receive Diversity" manual is here:
#8
PhantomSDR / Re: Upgrade to v.5.2.0
Last post by Emmanuel SV1BTL - Oct 17, 2026, 04:42 PM
Eric's (F1NSK) work, with a modification from me to adapt the PhantomSDR's waterfall colors.
#9
PhantomSDR / Re: Upgrade to v.5.2.0
Last post by Emmanuel SV1BTL - Oct 16, 2026, 04:09 PM
A full Video Tutorial of the version 5.2.0

#10
UberSDR / Re: Updated Twente-like WebSDR...
Last post by Bas ON5HB - Oct 16, 2026, 03:06 PM
I did the update, it works great. ;)

One little problem, it doesn't register the user, it does in the chatbox but not in the freqbox.

See picture:

You cannot view this attachment.
Powered by EzPortal