The newer v.3.2.0 is uploaded: https://github.com/sv1btl/PhantomSDR-Plus/tree/main
As usually you can either download and replace the newer files, or rebuild from scratch.
The main changes are in Backend and Frontend, so you need both recompile and restart.
New in v. 3.2.0- Users list in real time with Geo location, tuned frequency, start connected time, total time connected.
- Statistic data about visitors, most visited bands and frequencies, hourly visitors data, long term statistics,
- Minor cosmetic changes in GUI,
- New AGC approach,
- New colored spectrum, with waterfall colour scale,
- CTCSS is now working, tracing subtones and opening the mute when a signal with subtone is received.
- Total bugs clean for server's stability.
We offer more features:- New install.sh procedure, that simplifies initial setup,
- recompile.sh script for fast and simply recostruction of either backend and/or frontend,
- Futuristic Design, Admin Panel added
- CATsync with the application CATsync Tool for WebSDRs
- Admin Panel, password protected, for remote controlling the server without SSH access.
- Decoders, FT8, FT4, CW, WSPR, HF FAX, SSTV, NAVTEX, FSK/RTTY, FreeDV RADE V1 (please refer here: Decoders & C-QUAM AM Stereo (best working whem Opus audio_compression is used)
- Band Plan in the Waterfall, definition for different brigthness, start frequency and visibility for each band,
- Better Custom Colorsmap,
- Optimized Flac and Opus encoder with balanced latency, both working in 16 bit, Dynamic Range 96 dB ⭐
- New approach in functions as reduced Latency, Noise Reduction, Noise Cancel & Noise Blanker, Synchronous AM by default, AGC selection, Auto SQL, Buffer adjustments, Auto Adjust waterfall, Mouse wheel use, Keyboard shortcuts, Zoom slider, enhanced Mobile GUI, selectable Noise Gate with presets, Precise tuning with mouse and frequency index in the waterfall with mouse,
- New Bookmarks design with on screen labels and download/upload function,
- 4 different GUI templates, that can be selected using a popup float menu,
- Optional monitor tool that adds real-time server monitoring to your PhantomSDR application.
- On screen audio spectrogram.
- Users list in real time with Geo location
- Increased server's stability.
- WebSDR List (https://sdr-list.xyz, http://list.phantomsdr.fun, http://list.novasdr.fun/),
- Supported receivers RX-888, RTL V.4, Airspy Discovery, HackRF, SDRPLAY RSP1A (original and clone) via Soapy and many more to be added,
- More to come!...
P.S. With the precious help of
Paul PE1LXX, now
PhantomSDR+ v.3.2.0 can be registered in WebSDR.org map.
The only thing to do is to update your working .toml with this information.
# In case you want to register to websdr.org, please fill with your data and restart the server
[websdr.org]
enabled = true
public_host = "yourIP"
public_port = port
qth = "QTH Locator"
description = "CallSign PhantomSDR+"
email = "mail@domain.com"
logo = "logo.jpg" #located in frontend/public. Use the same or change it
Please report any bugs!
The modification to register to websdr.org is done by Paul PE1LXX late night, some hours after uploading the newer version, so if someone has already downloaded the repo and installed it, please copy and paste src folder and recompile backend. Then follow the changes in .toml as described above and restart the server.
QuotePlease report any bugs!
I have this bug in v3.2.0 install.sh:
Building rx888_stream...
./install.sh: redak 34: RUSTFLAGS=-C target-cpu=native: naredba nije pronađena
❌ Fatal: Command failed: RUSTFLAGS=-C target-cpu=native cargo build --release
This is a clean install.
When I compile with install.sh script from v3.1.1, S-meter is missing (analog and digital).
Compilation for RSP1A work fine, all is OK.
73!
Install.sh has not been changed!....
Can you please retry clean install after switching off and on your pc and then try to see the USB with "lsusb" command? This seems to be a connecting RX-888 problem and a simple switch off/on maybe will resolve it.
QuoteCompilation for RSP1A work fine, all is OK
Compilation is ok, the website layout is not exactly the same,
there is no frequency, no S meter, neither analog nor digital.
Firefox or Chrome, it makes no difference.
QuoteInstall.sh has not been changed!....
Can you please retry clean install after switching off and on your pc and then try to see the USB with "lsusb" command? This seems to be a connecting RX-888 problem and a simple switch off/on maybe will resolve it.
After reboot, I see this vith lsusb command:
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 04b4:00f3 Cypress Semiconductor Corp. FX3 micro-controller (DFU mode)
Bus 001 Device 003: ID 0573:1573 Zoran Co. Personal Media Division (Nogatech) USB Audio and HID
Bus 001 Device 004: ID 0bda:b85b Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc. Hub
Clean installation, freshly downloaded from github.com, the result is this:
Cloning rx888_stream...
Kloniranje u 'rx888_stream'...
remote: Enumerating objects: 152, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 152 (delta 35), reused 33 (delta 33), pack-reused 111 (from 1)
Primanje objekata: 100% (152/152), 153.95 KiB | 1.33 MiB/s, završeno.
Razrješavanja delta: 100% (76/76), završeno.
Building rx888_stream...
./install.sh: redak 34: RUSTFLAGS=-C target-cpu=native: naredba nije pronađena
❌ Fatal: Command failed: RUSTFLAGS=-C target-cpu=native cargo build --release
darko@minipc:~/PhantomSDR-Plus$
I go back to v3.1.1 :)
73!
Ok, there is a bug installing RX-888!
Can you please try this install.sh and let me know!
QuoteCan you please try this install.sh and let me know!
New install.sh work fine.
After starting, no frequency, no S meter.
I'm going back to v3.1.1 again ;D
73!
Tried a lot to reproduce your problem Darko, but not success. Clean install to my test server, at least 2-3 times. Every time no problem with install (with the corrected install.sh), and the server starts always.
Have you tried to reload your server after the first running? A simple refresh to the webpage, nothing else!
Well, the repo has now the new repo, all clean, without the older files. Maybe something I've messed writing the newer files over the older ones. Please retry.
QuoteWell, the repo has now the new repo, all clean, without the older files. Maybe something I've messed writing the newer files over the older ones. Please retry.
Today I did a clean install again on both the test (RSP1A) and the public server (RX888MK2).
On the test server there is no frequency or S meter, it shows that the Spectrum slider is on even though it is not, parts of the server are of different widths...
On the public server after the first start I got a normal image in Chrome on two computers, on Firefox the same phenomen as on the test server, everything scattered, no frequency or S meter, unusable.
I entered my local network at home via VPN, tried to connect to the public server, in both Chrome and Firefox the same problem, no S meter, no frequency, parts of the PhantomSDR-Plus are of different widths, the Spectrum slider is on, no spectrum above the waterfall..
I did not edit anything, all scripts are original. I will leave the public server at v3.2.0 today.
73!
PS:
Restarting v3.2.0 via systemd scripts takes a very long time, sometimes I have to kill the spectrumserver process manually as root. I never had this problem with the previous version.
When I tried to switch from the correct analog to digital S-meter, the same error appeared, no frequency, no S-meter, the PhantomSDR-Plus sections are of different widths, the Spectrum slider is on and there is no spectrum above the waterfall...
Darko, 9a7aof
What a pity Darko. I cannot think something that it could help you.
The newer version is now on:
http://lu5dnpwebsdr.sytes.net:8901/
http://hamradio.sv2yj.live:9002/
and me http://phantomsdr.no-ip.org:8900/
Soon it will be installed and on the other two servers here in Greece, and we'll see if there will be some kind of problems.
Do you want me to send you the zip of v.3.1.1 or you already have a backup?
P.S. Can you please send me your .toml file?
QuoteWhat a pity Darko. I cannot think something that it could help you.
My servers are on Ubuntu 24.0.4. I'll try to install v3.2.0 on Debian 13 (Trixie) today. I have Ubuntu servers, maybe I have something that interferes with the normal operation of v3.2.0.
Everything is fine, we are testing. :)
QuoteDo you want me to send you the zip of v.3.1.1
.
I have only compiled backup v3.1.1, please send me zip. Thanks!
QuoteCan you please send me your .toml file?
My config-rx888mk2.toml:
[server]
port=8905 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
#threads=2
#threads=8 #2
#threads=8 #4 #2
[websdr]
register_online=true #false # If the SDR should be registered on https://sdr-list.xyz then put it to true
register_urls=[
"https://sdr-list.xyz/api/update_websdr",
"http://list.novasdr.fun/api/update_websdr"] # One or more directory endpoints that accept the same JSON payload
name="9A7AOF PhantomSDR+" # Name that is shown on https://sdr-list.xyz
antenna="Active Loop" # Antenna that is shown on https://sdr-list.xyz
grid_locator="JN86da" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="http://9a7aof.ddns.net" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz
[limits]
audio=100
waterfall=100
events=100
[input]
sps=60000000 # Input Sample Rate
#fft_size=1048576
#fft_size=2097152
fft_size=4194304 # FFT bins for spectral analysis (very large for ultra-high sample rates)
#fft_size=8388608
#fft_size=16777216
#fft_threads=12 #16 #12 #8 #2
brightness_offset=-2 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="opencl" #"none" # Accelerator: none, cuda, opencl, mkl
audio_sps=12000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=1024 #2048
waterfall_compression="zstd" # zstd or av1
#smeter_offset=4
smeter_offset=5 # digital-only S-meter offset
analog_smeter_offset=5 # analog-only S-meter offset
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=3675000 # Default frequency to show user
modulation="LSB" # Default modulation
73!
Well, it is maybe a good idea to include in the github all the previous versions in .zip, free to anyone that he wants to experiment.
As I can see there is no way to upload the file here, so I am going to do this.
So, now you can find all versions here:
https://github.com/sv1btl/PhantomSDR-Plus/tree/main/archives (https://github.com/sv1btl/PhantomSDR-Plus/tree/main/archives)
Tried to fix the problems Darko has mentioned, I've doubled checked all the backend files. AI has found some issues, fixed and all new uploaded again.
I hope there will be not any problems now with any OS....
QuoteTried to fix the problems Darko has mentioned, I've doubled checked all the backend files. AI has found some issues, fixed and all new uploaded again.
I hope there will be not any problems now with any OS....
It works fine on Debian 13 (Trixie) and Ubuntu 24.0.4 now. Thanks to the development team for the quick and successful fix. :)
There is a small problem when I want to stop websdr via systemd, it takes maybe 20 seconds:
root@minipc:/home/darko/PhantomSDR-Plus# service websdr status
● websdr.service - PhantomSDRPlus WebSDR
Loaded: loaded (/etc/systemd/system/websdr.service; disabled; preset: enabled)
Active: deactivating (final-sigterm) since Fri 2026-05-01 07:40:16 CEST; 1min 24s ago
Process: 349780 ExecStart=/home/darko/PhantomSDR-Plus/start-websdr.sh (code=killed, signal=TERM)
Main PID: 349780 (code=killed, signal=TERM)
Tasks: 5 (limit: 18771)
Memory: 311.6M (peak: 320.3M)
CPU: 11min 13.474s
CGroup: /system.slice/websdr.service
└─349784 build/spectrumserver --config config-rx888mk2.toml
svi 01 07:34:26 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:27 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:28 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:29 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:30 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:31 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:32 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:33 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:34:34 minipc start-websdr.sh[349784]: write_users_json: cannot open frontend/dist/users.json.tmp
svi 01 07:40:16 minipc systemd[1]: Stopping websdr.service - PhantomSDRPlus WebSDR...
root@minipc:/home/darko/PhantomSDR-Plus# ps aux | grep spectrumserver
root 400661 0.0 0.0 9580 2404 pts/2 S+ 07:41 0:00 grep --color=auto spectrumserver
root@minipc:/home/darko/PhantomSDR-Plus#
That slows down the reboot for those 20 seconds, of course.
Not a big problem, I expect the server to restart as rarely as possible. ;)
73!
Very good Darko, I'm very glad to read it!
Maybe the problem with users is the fact that you are behind a VPN. Can you please try this file in backend to see if it could solve the problem? If not, may I have some details about your VPN?
Don't forget to recompile backend and restart server.
Yesterday I had guests and we were out in the sun all day. In the evening I tried v3.2.0 on a public server (without restarting the server) and the same problem appeared again, different widths of the websdr front end parts, no frequency, no S meter.
I returned v3.1.1 on the public server, v3.2.0 still runs just fine on the test server. I note that the test server runs on Ubuntu 24.0.4 WITHOUT OpenCL and with an RSP1A receiver (that's my public port 8906).
This morning I downloaded the latest version v.3.2.0 on Debian Trixie and it has the same phenomen, the same problem as on the main server. Debian Trixie has OpenCL just like the public server on Ubuntu 24.0.4.
I only use OpenVPN when I'm at work, there's Fortinet there that prevents me from accessing dynamic domains (they "forgot" to block the vpn port).
PhantomSDR has been behind the nginx proxy server for months, everything worked fine until the latest version of phantom. I don't think nginx has any effect on the broken appearance of v.3.2.0.
I personally don't care which user uses which frequency, internally sometimes I give the command netstat -tuan | grep internal_ip_of_my_local_server:80'
Then with whois ip_from_user I see from which country the user came.
On v3.2.0 I like the new Spectrum look, I'm interested in AGC, I don't need statistics.
I am not interested in detailed statistics.
I've been professionally maintaining a computer network for several years and I'm tired of looking at and analyzing log files. :)
73!
Until yesterday Darko, your v.3.2.0 was working excellent on public server, except users, which were always with an IP address 127.0.0.1 That's way I've asked about your VPN.
Anyway, trying to reproduce the problem you've mentioned has failed many times. Greek servers already running the newest version, the same in Argentina and Germany. I am waiting also Paulus to find time for a clean test install to his test server.
QuoteUntil yesterday Darko, your v.3.2.0 was working excellent on public server, except users, which were always with an IP address 127.0.0.1 That's way I've asked about your VPN.
The explanation for 127.0.0.1 is simple, nginx is on the same computer as PhantomSDR-Plus. It's a trick I borrowed from the Openwebrx distribution for RPI maintained by Stanislaw.
It converts the public port of Openwebrx (usually 8073) to port 80 on the same computer. That way I can reach the server locally without specifying an additional port, everything runs on port 80.
My VDSL router does NAT, so external port 8905 is sent to port 80 of the local PhantomSDR-Plus computer. Nginx converts that port 80 to local port 8905 and everything works, except printing a list of users with IP number 127.0.0.1
That's why I use that command in the command line to see the public IP addresses of users. My config for nginx looks like this:
[codeserver {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
# gzip off;
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
include snippets/snakeoil.conf;
set $upstream 127.0.0.1:8905;
#set $upstream 127.0.0.1:6081;
#set $upstream 192.168.3.11:8074;
location / {
proxy_pass http://$upstream;
proxy_http_version 1.1;
proxy_buffering off;
# required for websockets
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
]
The problem with the actual IP number of the user in my case could perhaps be easily solved if the script instead of port 8905 looks at the traffic on ethernet port 80 of the computer where Phantom is running.
I repeat, these statistics mean nothing to me personally, I look at it from the command line. If there is a problem with traffic to and from my Phantom server , my provider is legally required to keep the log files, let the competent authorities ask them. ;)
And yes, from Croatia I can't connect the servers in Germany and Finland, it's been going on for months, since a colleague from Germany suggested that you add band-config.js to the src directory. I never, ever managed to connect to his server as a user.
Somehow it seems to me that the new statistics scripts want to retrieve something from the Internet that is inaccessible to me from Croatia, the form is not filled out and it distorts the entire front end of the new PhantomSDR server. (This is just my layman's opinion)
In the end, we are not professionals,
we are not pressed for deadlines, this is just fun. :)
73!
Also no luck with release 3.2.0.
I got here some of the same issues like Darko. After start:
- Volume is zero -> Display shows 50 %
- Mode is set to "USB" -> tml says modulation="AM"
- spectrum switch is on -> spectrum is off
- the frequency is only to see after mode switch (before set to 0)
- none by the 4 kinds of S-Meter is to see
- the yellow marker shows not the choosen frequency (middle of the band) but the RX tuning is OK
- no markers to see
- the "spectrumserver" needs now a long time (15 seconds) to finish
It seems the init is not runnig trough. Any ideas to detect the bug?
I use here Ubuntu 24 server with a fresh running install.sh.
http://mellesdr.rqhk191saz25euus.myfritz.net/
Best greetings from Berlin,
Hendrik
Very sorry about this.
It is really a problem that the communication is only through the forum, but can you both retry with this install.sh?
It is really a problem that the communication is only through the forum, but can you both retry with this install.sh?
I downloaded the latest from github, it was 3 minutes old, ran install.sh, nothing, the page crashes, I had to physically restart the computer, I couldn't kill the spectrumserver process (Debian 13 Trixie).
On a public computer, on Ubuntu 24.04, I first installed directly from github, the page crashed, no S meter, no frequencies. After that, I installed the latest install.sh from the forum, the same thing, everything crashed.
I think it would be a good idea to disable all scripts that are not absolutely necessary for the normal operation of PhantomSDR (statistics, users, support for websdr.org). The method of elimination might be able to find the cause of our troubles with v3.2.0.
Again, for the umpteenth time, I'm going back to v3.1.1 :)
73!
Ok, I think there is nothing more to do about it. I cannot reproduce the problem in my pc's, the newer server is installed in some other pc's too and it is working there, so I give up.
The latest github includes version 3.1.1, the latest stable for you Darko and Hendrik too.
This was the last update/upgrade of the PhanromSDR. No sense to try more updates, from the moment that the last version cannot work for everyone.
Hope enjoy the journey.
Hello Guy's
3.2.0 compile and work without problem on my dev server running Debian 12 Bookworm.
It's an old Core I3 and RX-888 ;D
You can test at http://orsat2.ddns.net:8080
73's
Thank you Eric!
I have to say that this thing is already a nightmare!... :)
I've done the last 3 hours:
- a clean install to my pc (ubuntu 24.04)
- a clean install to my test server (bookworm)
- a clean install to a friend's server (SV2YJ - Ubuntu 22.04)
No problems at all.
I am speechless... I have nothing more to add!..
Hello Manolis ;D
I think that issues of our fiends comes from VPN / reverse proxy and other...
In my mind theses safeguard are useless.
Phanthom is a standalone server without interest for hackers.
Now I will test my GUI mods and put 3.2.0 in production on the main server.
Sticked on Bookworm as a very stable release.
French and Spanish version of the Analog.svelte are in progress.
I will use moded version switch to change the language.
An other little mod: a button to go on https://hamdash.com
A fantastic App for propag prediction / meteo / cluster and a lot of other things useful for Hams.
This mod is in use on my main server.
I look for a faster UC ($$$! ;D ) and will stick on 3.2.0 for a long time.
It's now the good season to work outside on a new fractal loop about 200M or more.
An interesting challenge to make the thing boadband and dual polarisation !
73's
I've no success with the new install.sh.
I'm back to 3.11 and everything running well. Emmanuel, also 3.11 is a wonderful piece of software!
Many thanks for your impact and a lot of work behind that. Software delopment is sometime like the first steps on the own feet - two steps forward and one time backward. ;D
Don't put the 3.2.0 at the can - is have some very interresting ideas.
Stay brave, Hendrik
Hendrik, I will not abandon v.3.2.0, but I'll include v.3.1.1 also in the github in the folder archive.
Today I've made a virtual installation in Trixie 13 via VMware. Success, some minor issues, fixed, update GitHub, end!
You are right that "two steps forward and one step backward" is regular and normal in software development, specially when the development is not made by programmers, but by amateurs like me.
Anyway, I am glad that v.3.1.1 is working good for you (and Darko). To be honest, after this last try with v.3.2.0 I was thinking to stop the project, because I had not really something new to offer. Reality came to force me to stop anyway.
So, thank you very much all you partners and co-travellers to this long journey, from the very first release of PhantomSDR to today's versions. Your support, remarks, beta-testing, patient and giving courage were something precious for me to go on.
Please enjoy your software and I hope no more problems from now on. Let us concentrate now to receiving antennas, eliminating QRM, etc. etc.
For me 3.2.0 is a masterpiece.
Stopping the dev is a good idea. Time is now to customise a stable release. ;D
One more time, congratulations Emmanuel for this fine job.
Since V3, phantom work like thousand dollars rigs !
If you can, try full size loops antennas
Thanks and 73's my friend
Hey, yes, ill take over on this Part then, i will credit SV1BTL and all other contributors for their work. Ill build the "master" version of all websdrs now. With everything combined. It may take some time tho but it will be as stable as possible with all features. As the goal of NovaSDR was exactly that, novasdr is extremly robust but lacks features. Which will now move into it :) then the 1.0.0 of novasdr will be released
Quote from: magicint1337 on May 03, 2026, 04:55 PMHey, yes, ill take over on this Part then, i will credit SV1BTL and all other contributors for their work. Ill build the "master" version of all websdrs now. With everything combined. It may take some time tho but it will be as stable as possible with all features. As the goal of NovaSDR was exactly that, novasdr is extremly robust but lacks features. Which will now move into it :) then the 1.0.0 of novasdr will be released
I am looking forward to this dear Steven, and I wish you all the best from now on, to offer us a really stable and rich software!
I will try my best :)
I found that markers.json crashes and distorts v3.2.0
I tried with markers.json generated by update-markers.sh, it crashes. I tried with manually generated markers.json, it crashes.
It only helps when I delete markers.json, then the page looks normal (without markers).
I turned off the proxy, the Users button seems to work, I'm not sure about the Stats button.
73!
Darko, 9a7aof
P.S.
http://orsat.ddns.net:8080/ and
http://lu5dnpwebsdr.sytes.net:8901/
does NOT have markers.json.
:)
Confirmed!
Great job Darko, thank you. Without or empty "markers.json" release V3.2.0 runnig here very well too!
Best regards,
Hendrik
Well, I think,
I FOUND IT
Two wrong files in frontend/src and the syntax of markers.json.
In a bright new Ubuntu 24.04 the installation and running without problems.
P.S. about "statistics". Please check if a new folder "log" there are new generated files with extension .jsonl
P.S.2 markers.json generated by update-markers.sh, works for me, but then the syntax of markers.json is different.
markers.json
{
"markers": [
{
"frequency": 77500,
"name": "DCF77",
"mode": "CW"
},
{
"frequency": 100000,
"name": "LORAN",
"mode": "AM"
},
......
]
}
mymarkers.json in frequencylist folder is in this format
[
{
"frequency": 77500,
"name": "DCF77",
"mode": "CW"
},
.....
{
"frequency": 28585000,
"name": "28585",
"mode": "USB"
}
]
instead of the original markers.json, located in github:
{
"markers": [
{
"frequency": 77500,
"name": "DCF77",
"mode": "CW"
},
......
{
"frequency": 28330000,
"name": "FreeDV",
"mode": "USB"
}
]
}
One last thing I would like to share with you.
From the moment you have a working v.3.2.0, you have now the opportunity to be shown on https://sdr.shbrg.nl/sdr/ AND on websdr.org map.
The modification is made in .toml file you use as follows (this is mine):
[websdr]
register_online=true # Enable directory registration updates
register_urls=[
"https://sdr-list.xyz/api/update_websdr",
"https://www.shbrg.nl/api/update_websdr"
] # One or more directory endpoints that accept the same JSON payload
name="SV1BTL CATsync PhantomSDR+" # Name that is shown on https://sdr-list.xyz and/or https://sdr-list.xyz/api/update_websdr
antenna="EndFed 160-10m." # Antenna that is shown on https://sdr-list.xyz
grid_locator="KM17VX" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="phantomsdr.no-ip.org" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz
[websdr.org]
enabled = true
public_host = "phantomsdr.no-ip.org"
public_port = 8900
qth = "KM17VX"
description = "SV1BTL PhantomSDR+ Athens GR"
email = "sv1btl@otenet.gr"
logo = "logo.jpg" #located in frontend/public, you can replace it with your own
A recompile of frontend maybe is needed so logo.jpg to be placed in the folder "dist", and restart of the server of course.
You can try....
Hello Guy's
On my side all work fine with 3.2.0 on Debian 12.
I play with GUI colors to match with the background ;D
To install on Deb12 quiet and safe :
I've downloaded the full code.zipfile
Extract in home/user/PhantomSDR-Plus
Add a custom install-Deb12.sh and launch
Tested on three differents PC without any issues.
Sometimes I lost the RX888 and the server crashes ! I've found the Bug ! The PC power supply voltage drops ! On a laboratory power supply no issues and the CPU temp decrease of 10°C
73's to everybody
Quote from: F1NSK on May 05, 2026, 12:17 PMAdd a custom install-Deb12.sh (https://install-deb12.sh/) and launch
I am going to add this script to the repo. Thank you!
RADE update process and script, has also been changed. If you now run again ./install_rade.sh, the script will update your radae installation. This will be more useful later, when the V2 of RADE will be released, Then, I'll have to make also some changes to .svelte files, but don't worry, the FreeDV RADE team is not ready yet for the V2.
The newer version will give the same quality of sound as V!, but using only 800 Hz bandwith, instead of 1500 Hz now used from V1.
RADE V2 builds on V1 with several algorithmic improvements:
Please refer to: https://github.com/drowe67/radae/
I've still not understood what the right format for the markers.json is. To find the right flavour i reduced this file to a tiny value:
{
"markers": [
{
"frequency": 77500,
"name": "DCF77",
"mode": "CW"
}
]
}
If i use the markers.json at this manner so i get all the strange issues like the missing s-meter.
Quote from: Hendrik on May 05, 2026, 07:15 PM[
{
"frequency": 77500,
"name": "DCF77",
"mode": "CW"
}
]
This one is the good !
73's
Many thanks for your fast response.
If i use the markers.json in this manner, works all perfect - except the markers.
On 77,5 kHz is no marker to see.
(I currently use it so on http://mellesdr.rqhk191saz25euus.myfritz.net/)
73 de Hendrik
Hendrik,
There are markers that can be automatically generated and
markers that we write manually in mymarkers.json
If we only want automatically generated markers, we do this:
cd PhantomSDR-Plus
cd frequencylist
chmod +x update-markers.sh
./update-markers.json
If we also want hand-written markers, then we need to copy the mymarkers.json file to
PhantomSDR-Plus/frequencylist
and start
./update-markers.json
this will merge the hand-written and auto-generated markers into a single file, markers.json,
and copy that file to your PhantomSDR-Plus directory.
It takes one minute for PhantomSDR to load the new markers.json.
It works without error after Emmanuel fixed the two files in the frontend/src directory.
Attached you have my hand-written mymarkers.json and markers.json made using the update-markers.sh script.
You can put markers.json in your PhantomSDR-Plus test directory for testing,
you will see that everything works as it should.
In mymarkers.json you have the correct syntax so you can edit,
delete mine, write yours and then run update-markers.sh
Best regards,
Darko, 9a7aof
Hi Darko,
thank you for your explanation. Now it's more clear for me like the ordinary process is running.
I use for the markers a own py-script. I and some guys arround me use this sdr more for radio broadband listen. So we collect the station by 3 sources and have running a blacklist to avoid to much entries at the markers line.
With the start by the release 3.2.0 i can't no longer use the format with the "markers":[ - statement at the second line by the markers.json. In this kind i get the same issues as you have it observe before. But if i use the format without the "markers" statement on the second line, so is running all fine - but the markers are not to see. So it still not clear for me, which format for the markers.json is finally to use at the PhantomSDR-Plus-main directory?
73 de Hendrik,
DL1HMJ
My blacklist is a manual deletion of unwanted marked frequencies. :)
I don't know how to program so I can't help, unfortunately. :'(
73!
Thanks again for your effort, Darko.
The issue ist solved! Please us never, never (never !) german Umlauts (special character like ö ä ü ß) at the markers.json. >:(
Quote from: Hendrik on May 06, 2026, 03:26 PMThanks again for your effort, Darko.
The issue ist solved! Please us never, never (never !) german Umlauts (special character like ö ä ü ß) at the markers.json. >:(
Try with Chineese ! ;D ;D ;D
Hello Guy's
On my custom Phantom main menu, i've made a link to https://hamdash.com/
A fantastic server about Propagation, Weather and a lot more.
If you don't know, try it ! 8)
73's
Quote from: F1NSK on May 06, 2026, 05:37 PMi've made a link to https://hamdash.com/
.... and the others I think, they have implemented this link. I did also.
Quote from: Emmanuel SV1BTL on May 06, 2026, 05:52 PMI did also.
;D ;D ;D
It's a nice friend to our Phantom's !
The other Link about Meteo : https://www.windy.com is very good also.
I use this server since a lot of years for the quality of predictions.
Now my Phantom work as fine as possible and can open access to a lot of useful informations.
Some colors on the GUI to match with the Backgound ... ;D
My end users are very happy !
I've decoded some French and Spanish stations with Rade.
Work fine and very impressive.
I will try FreeDV TX with my Flexradio...
73's my Friend, Now its time for Holidays !
Quote from: F1NSK on May 06, 2026, 11:02 PMI've decoded some French and Spanish stations with Rade.
Work fine and very impressive.
I will try FreeDV TX with my Flexradio...
Please download and reinstall RADE with ./install_rade.sh from the GitHub
The new installation will not affect the recent one, but it will ensure any future updates to the code V1 and the newer (but not ready yet) V2.
I have created a viber group for instant chatting of sysops and users of PhantomSDR+
Free group for everyone, to help us communicate instantly in real time.
Please join:
https://invite.viber.com/?g2=AQB1mPucebicwFaAUx1TEP9kvmfSeeQIywtE5do%2FNSvmgKS3Gyz2skTqf3dEYh%2Fh (https://invite.viber.com/?g2=AQB1mPucebicwFaAUx1TEP9kvmfSeeQIywtE5do%2FNSvmgKS3Gyz2skTqf3dEYh%2Fh)
Paul has re-modified the way to be listed on websdr.org map.
(1)
Replace the files (make a copy first):
subprojects/websocketpp-0.8.2/websocketpp/http/impl/request.hpp
and
subprojects/websocketpp-0.8.2/websocketpp/impl/connection_impl.hpp
These files that you have to replace, are generated through the initial setup, so there is no way to include them in the github. So, the replacement has to be done AFTER the first successful install.
(2)
Change in .toml with your data:
[websdr.org]
enabled = true
public_host = "phantomsdr.no-ip.org"
public_port = 8900
qth = "KM17VX"
description = "SV1BTL PhantomSDR+ Athens GR"
email = "sv1btl@otenet.gr"
logo = "logo.jpg"
recompile both backend and frontend and restart. After this, connect to your server so to read at least 1 user, wait some seconds and observe the terminal and the wedsdr.org map.
You have to read in terminal something like this:
__ __ __ __
|__)|_ _ _ |_ _ _ (_ | \|__) _|_
| | )(_|| )|_(_)|||__)|__/| \ |
Thank you for using PhantomSDR+, you are supporting the Development of an
Open-Source WebSDR Project ♥
Using OpenCL
Using OpenCL platform: Intel(R) OpenCL Graphics
Using OpenCL device: Intel(R) UHD Graphics
[WebSDROrg] Starting (host=phantomsdr.no-ip.org port=8900 bands=1)
Markers updated.
[WebSDROrg] Connect try -> 2001:67c:2564:ac33:da5d:4cff:fe80:9a66:80
[WebSDROrg] Connected to 2001:67c:2564:ac33:da5d:4cff:fe80:9a66
[WebSDROrg] Connected to websdr.ewi.utwente.nl
[WebSDROrg] Sending registration ping #1
[WebSDROrg] Waiting response for ping #1
Waterfall is sent every 1 FFTs
[WebSDROrg] #1 OK — HTTP/1.1 200 OK
Attenuation: 0
Gain: 40
..... (after some seconds)
[WebSDROrg] /~~orgstatus config=0 users=0 bytes=210
[WebSDROrg] /~~orgstatus config=1778073792 users=0 bytes=9
[WebSDROrg] Sending registration ping #2
[WebSDROrg] Waiting response for ping #2
[WebSDROrg] #2 OK — HTTP/1.1 200 OK
[WebSDROrg] /~~orgstatus config=1778073792 users=0 bytes=9
.... (continue)
====
In .toml please also change : www.shbrg.nl with sdr.shbrg.nl
so the correct registration to be:
[websdr]
register_online=true # Enable directory registration updates
register_urls=[
"https://sdr-list.xyz/api/update_websdr",
"https://sdr.shbrg.nl/api/update_websdr"
] # One or more directory endpoints that accept the same JSON payload
.....
So, from now on, you will be listed:
1.- https://sdr-list.xyz/ - Steven
2.- https://sdr.shbrg.nl/sdr/ - Paulus
3.- http://websdr.org/ - University of Twente
P.S. I have changed the button at the top in .svelte files, so to make a look up in either of these 3 maps.
After replacing the old ones with newer request.hpp and connection_impl.hpp,
and then changing the bad port 9805 to the correct port 8905,
my Phantom SDR is visible on http://websdr.org.
Ports 9805 and 8905 are not the same, checked! :-X
73!
Should not be a problem when UTF-8 is used.
Some of you face problems with stats, which don't appear clicking the button.
Please try these modifications, uploaded as attachments:
1.- src - unzip and replace your entire ~PhantomSDR-Plus/src
2.- menson.build
3.- analyze_users.py AND stats.html. Please replace the files located in ~PhantomSDR-Plus/fronend/public
then recompile Backend AND Frontend and restart the server.
You will now have the stats working.
The files are fixed today, with the help of Darko 9A7AOF, who faced this problem
I am collecting the problems, so to release a cumulative update of v.3.2.0
Hello, greetings. I see that on mobile phones, the frequency indicator numbers do not appear. Everything works except that. Can this be fixed?
Quote from: lu5dnp on May 10, 2026, 09:05 PMthe frequency indicator numbers do not appear
It is appeared! Maybe a cleaning of the cache is required??
Well, but on my mobile phone the indicator is there, but it only shows zeros. I'm not sure if it's because it's Android or if some configuration is missing. I'll see what I can find and whether I can fix it. Thanks.
Quote from: lu5dnp on May 11, 2026, 12:03 AMI'm not sure if it's because it's Android or if some configuration is missing.
The previous was a screenshot from my Samsung (Android) Nestor, using Edge. Maybe you need to clean the cache and retry.
The new screenshot is from the same mobile, using Mozilla.
But let us talk now about brightness and contrast of the waterfall.
There are 2 ways to make waterfall less (or more) bright.
1.- Use by default the button Auto Adjustment. This is the "lazy" method.
- Find (line 320 in .svelte) let AutoAdjustEnabled = false; and make it let AutoAdjustEnabled = true;
- Find (line 397 in .svelte) onMount(() => { and add:
onMount(() => {
// ... your existing onMount code ...
// Auto-enable adaptive auto-adjust on page load
if (autoAdjustEnabled) {
// Configure waterfall with adaptive settings
if (typeof waterfall.setAutoAdjustConfig === "function") {
waterfall.setAutoAdjustConfig(autoAdjustConfig);
}
// Enable auto-adjust
if (typeof waterfall.enableAutoAdjust === "function") {
waterfall.enableAutoAdjust(autoAdjustConfig);
}
// Start monitoring (if using adaptive)
if (typeof startStatusMonitoring === "function") {
startStatusMonitoring();
}
// Update UI button state
const btn = document.getElementById("autoAdjustBtn");
if (btn) btn.classList.add("active");
console.log('🎯 Auto-adjust enabled by default');
}- recompile only frontend and reload the webpage
2.- More efficient method:
- Find (line 1933 in .svelte) let min_waterfall = -30; and make it e.g. let min_waterfall = -5;
- Open the file bands-config.js and adjust min and max for every band separately, until you will have the best visible results.
For example in MW you can set: min: min: 35, max: 130.
For 49m you can set min: -5, max: 130etc. etc.
Recompile only frontend and reload the webpage.From now on you and your users will see much less general 0-30 MHz brightness, and for each band a better visual waterfall.Try it!
Of course, you can use together methods 1 & 2. You will be tired to make a good balance, but the result will be good for you and your users. None of the users uses the sliders of Waterfall Control, they usually prefer "ready solutions" :) .
Ok, I'll see how to fix that. Thanks, Emmanuel, for the information about the waterfall. I'll get to work on it and hope to achieve a good display that makes the receiver easier for users to use. We'll keep fine-tuning PhantomSDR+.
73s.
A map is added in frontend/public: users.html and stats.html.
You can see now on the maps:
- real time users location (users.html) on a map.
- history of the users (stats.html). Because this file stats.html reads the data from the .jsonl files located in the folder log, it would take some time to load this data and put it on the map, but after this you'll have all you users that visited your server during the dates you collect.
Download these files and put them:
PhantomSDR-Plus
└──frontend
└──public
├── analyze_users.py
├── stats.html
└── users.html
recompile only frontend and refresh the webpage.
Please check here: http://phantomsdr.no-ip.org:8900/
P.S. Don't forget that you can see these webpages without to call them from the GUI. Jast load:
- your_public_server:port/users.html
- your_public_server:port/stats.html
I live in America! :)
http://9a7aof.ddns.net:8905/users.html
I suggest that local be linked to the
QTH locator of the PhantomSDR-Plus server, if possible.
73!
Darko,9a7aof
You are right!!!
So, please download the newer files from above and recompile frontend.
Now local IP address is not shown, a "local" only is, indicating that there is a user connected from the local network, and the .py does not search for an external IP and don't count it to the map.
This was the simplest way, because associating Local IP with the QTH info in "site_information.json" was pretty complex. Maybe until the "cumulative" update of the version, I'll find a way to associate also "local" with the real IP address of the server.
The problem was that "local" IP address, when a sysop is connected locally, was shown somewhere in the USA. Tried to fix it.
So, from the beginning, ignore everything above:
1.- Download and put these files in PhantomSDR-Plus/frontend/public
PhantomSDR-Plus
└──frontend
└──public
├── analyze_users.py
├── stats.html
└── users.html
2.- Download and put in PhantomSDR-Plus this file:
fix_local_geo.py
and run it
cd PhantomSDR-Plus/
python3 fix_local_geo.py
python3 fix_local_geo.py --apply
This will clean all databases in logs/*jsonl files, with "local" fake IP data. It will not affect all the other data.
It is not needed to run it every time. Once only is enough. You can repeat the check from time to time, but there is no need more often.
3.- Recompile ONLY frontend.
4.- Refresh the webpage and check.
your_ip:port/users.html and e.g. http://phantomsdr.no-ip.org:8900/users.html
your_ip:port/stats.html e.g. http://phantomsdr.no-ip.org:8900/stats.html
will be there and in the history of stats.html fake "local" IP address will not be shown any more in the USA.
Thanks Emmanuel,
everything works fine for me now,
I'm not in America anymore. :)
Local proxy is no longer needed.
73!
Darko, 9a7aof
Glad to read it Darko.
Now please replace your stats.html and users.html with these newer.
The bugs resolved:
- when the service Nominatim is down (the service that give us the geo data) then our script runs entirely offline with zero network requests. Nominatim is still tried first for city-level precision; the centroid is only used when Nominatim fails or returns no results.
- all markers are now the same size, and not bigger or smaller depended of how many visits took place from this IP address.
- Flags left the user/city were working on Mozilla, but not in the other browsers. Now this is fixed.
Hello Guy"s
Beware of VPN !
If you use Firefox VPN for example, You can't access to Phantom's... 8)
73's
QuoteFlags left the user/city were working on Mozilla, but not in the other browsers. Now this is fixed.
Done!
Everything works fine in Google Chrome too!
Thanks Emmanuel :)
QuoteIf you use Firefox VPN for example, You can't access to Phantom's...
I'm using OpenVPN, my server is on RPI3,
PhantomSDR-Plus is on a computer that has an OpenVPN client,
I can access PhantomSDR-Plus via VPN properly. I configured
OpenVPN according to this instruction:
https://wiki.debian.org/OpenVPN#Server_part
73!
Darko, 9a7aof
Hello group, I truly congratulate you — you have done a magnificent job in bringing into operation, in my opinion, the best and most practical SDR receiver on the web, with a truly outstanding level of excellence that will endure and set a high standard for anyone trying to surpass it.
It is rewarding for me to be part of this and to use Phantom while offering fellow radio operators access to it, as I have always done since 2010 when I began providing this service with various software platforms. However, this latest one is by far the most efficient and complete system I have ever used.
Once again, my congratulations to Emmanuel, Darko, and all the other collaborators involved in this project. I am certain that more additions and improvements will continue to be made through future updates, constantly modernizing and enhancing the system while striving to improve day by day.
My sincere gratitude for the collaboration and assistance in getting the receiver operational, and for all the knowledge I have gained by participating in this project.
Thank you very much.
Best regards,
Nestor – LU5DNP
73s.-