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

#21
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by Phil - NY4Q - Jul 21, 2025, 04:29 PM
Quote from: 9a7aof on Jul 21, 2025, 01:26 PMHi Phil,

also downloaded all files from Steven's github with git clone..... (I am old School linux user, since 1996 ;) )
I edit these two files and start npm run build.
I Added MW, 180m and Troika band to watefall.js and BandsMenu.svelte
After this I have new waterfall and Bands look.

I attach my edited files:
/home/websdr/PhantomSDR-Plus/frontend/src/waterfall.js to waterfall.js
/home/websdr/PhantomSDR-Plus/frontend/src/components/BandsMenu.svelte


Result is here:
http://9a7aof.ddns.net:8906

Best regards,
Darko, 9a7aof


I see your result, but I also saw what happened to me. Donno why. Maybe when I checked, the browser pulled from cache and did not refresh. I only tried once then had to get to other things.

I will look into it later today if I get time.
#22
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by 9a7aof - Jul 21, 2025, 01:26 PM
QuoteHello Darko,

Weird, but I did edit the waterfall.js and recompile and it made no change, so that had me scratching my head. ha

Steven will find the issue. I did not use the pre-built packages. I downloaded the individual packages and built my system that way.

Phil

Hi Phil,

also downloaded all files from Steven's github with git clone..... (I am old School linux user, since 1996 ;) )
I edit these two files and start npm run build.
I Added MW, 180m and Troika band to watefall.js and BandsMenu.svelte
After this I have new waterfall and Bands look.

I attach my edited files:
/home/websdr/PhantomSDR-Plus/frontend/src/waterfall.js to waterfall.js
/home/websdr/PhantomSDR-Plus/frontend/src/components/BandsMenu.svelte


Result is here:
http://9a7aof.ddns.net:8906

Best regards,
Darko, 9a7aof
#23
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by Phil - NY4Q - Jul 21, 2025, 11:39 AM
Quote from: 9a7aof on Jul 21, 2025, 06:04 AM
Quote from: Phil - NY4Q on Jul 20, 2025, 10:31 PMSteven,

Do I need to recompile the system after the grid square change? I ask because the wasterfall.js file only has a frequency plan for ITU 1 in the bands section for 40m.

I'm not sure how you are generating that file.

Phil

Hi Phil,

simply edit the waterfall.js located in the
PhantomSDR-Plus/frontend/src directory and compile the UI again.


Hello Darko,

Weird, but I did edit the waterfall.js and recompile and it made no change, so that had me scratching my head. ha

Steven will find the issue. I did not use the pre-built packages. I downloaded the individual packages and built my system that way.

Phil
#24
PhantomSDR Software / Run PhantomSDR+ 2.0.0 with RSP...
Last post by 9a7aof - Jul 21, 2025, 07:32 AM
Hi,

here is my configuration files for "phantom" with RSP1A and latest Sdrplay API.

I reduced fft_size=524288, accelerator="none" , audio_sps=12000, waterfall_size=1024. It works properly and the outgoing traffic is much lower, three users use only 675 kbit/s in total. The audio quality has not noticeably decreased, ft8 decodes properly.

IT WORKS! :)

my config-rsp1a.toml# PhantomSDR-Plus v2.0.0 Configuration Example - SDRPlay RSP1A
# This configuration is optimized for SDRPlay RSP1A
# Usage: rx_sdr -d driver=sdrplay -f 4000000 -s 8000000 - | ./spectrumserver --config config.toml

[server]
port=8906 # Server port for web interface (80 for HTTP, 443 for HTTPS)
html_root="frontend/dist/" # Path to web interface files
otherusers=1 # Show other users' listening frequencies (1=enabled, 0=disabled)
threads=2 # Number of processing threads (RSP1A benefits from multiple threads)

[websdr]
register_online=true #false # Register WebSDR on https://sdr-list.xyz (true=public, false=private)
name="PhSDR+ 2.0.0 with RSP1A (test) " # Station name displayed on sdr-list.xyz and web interface
#name="9A7AOF PhantomSDRplus-2.0.0 with RSP1A " # Station name displayed on sdr-list.xyz and web interface
antenna="Fan Dipole" # Antenna description shown to users
grid_locator="JN86da" # 4 or 6 character grid locator for distance calculations
#hostname="" # Domain name for public access (leave empty for local use)
hostname="9a7aof.ddns.net" # Domain name for public access (leave empty for local use)
operator="9a7aof" # Operator name/callsign displayed in station info
email="9a7aof_at_gmail.com" # Contact email for station information
callsign_lookup_url="https://www.qrz.com/db/" # URL for callsign lookups in server info panel
chat_enabled=true # Enable/disable chat functionality (new in v2.0.0)

[limits]
# Connection limits to prevent server overload
audio=100 # Maximum audio connections
waterfall=100 # Maximum waterfall connections
events=100 # Maximum event connections

[input]
# SDRPlay RSP1A optimized settings - HF/VHF coverage
sps=8000000 # Input sample rate (RSP1A: up to 10MHz, 8MHz = 8MHz bandwidth)
fft_size=524288 #FFT bins
#fft_size=1048576 # FFT bins for spectral analysis (large for good resolution)
fft_threads=2 # Number of FFT processing threads
brightness_offset=-8 #-6 # Waterfall brightness adjustment (RSP1A typically darker)
frequency=4000000 # Center frequency in Hz (4MHz for HF coverage)
signal="iq" # Signal type: "iq" for complex samples (RSP1A provides IQ)
accelerator="none" #"opencl" # GPU acceleration recommended for high sample rates
#audio_sps=44100 # Audio sample rate for demodulated output (CD quality)
audio_sps=12000 #44100 # Audio sample rate for demodulated output (CD quality)
audio_compression="flac" # Audio compression: "flac" (lossless only)
waterfall_size=1024 #2048 # Waterfall display width in pixels
waterfall_compression="zstd" # Waterfall compression: "zstd" only
smeter_offset=-10 # S-meter calibration offset in dB (RSP1A specific)

[input.driver]
name="stdin" # Input driver: "stdin" for piped data from rx_sdr
format="s16" # Sample format for RSP1A: s16 (16-bit signed integers)

[input.defaults]
# Default settings when users first connect
frequency=3675000 # Default frequency to display (3.645MHz - 80m amateur band)
modulation="LSB" # Default modulation mode: LSB for HF amateur bands


I downolad latest Sdrplay API from https://www.sdrplay.com/api/ and install it as root.

Rx tools  and  SoapySDR I download from GitHub, compile and install it as root.

I run everything via systemd (thanks Bas).  ;) 
start-receiver.sh #!/bin/bash
cd /home/websdr/PhantomSDR-Plus/

## Files to load
FIFO=fifo.fifo

[ ! -e "$FIFO" ] && mkfifo $FIFO

#Without PGA
#rx888_stream/target/release/rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 60000000 --pga -d -r -g 80 -a 0 -m low -o - > $FIFO

#RSP1A
rx_sdr -f 4000000 -s 8000000 -d driver=sdrplay -g RFGR=1 -t rfnotch_ctrl=false -F CS16 - > $FIFO

#exit

start-websdr.sh

#!/bin/bash
cd /home/websdr/PhantomSDR-Plus/

### STOP CRASH Injections!!!!
##If no other rules apply, flushing is easier

iptables -D INPUT -m string --algo kmp --string "%3C%" -j DROP
iptables -D INPUT -m string --algo kmp --string "device.rsp" -j DROP

iptables -A INPUT -m string --algo kmp --string "%3C%" -j DROP
iptables -A INPUT -m string --algo kmp --string "device.rsp" -j DROP

## Files to load
FIFO=fifo.fifo
#TOML=config-rx888mk2.toml
TOML=config-rsp1a.toml

[ ! -e "$FIFO" ] && mkfifo $FIFO

service receiver restart

sleep 2

./build/spectrumserver --config $TOML < $FIFO

#exit

( start-receiver.sh and start-websdr.sh are in my /home/websdr/PhantomSDR-Plus/ )

Don't forget  chmod +x start-receiver.sh
chmod +x start-websdr.sh

If you want, you can now manually start (I didn't try it manually, my goal was automation :) )
cd  /home/websdr/PhantomSDR-Plus/
./start-receiver.sh
./start-websdr.sh

To automatically start when the computer starts, you need to add these two scripts and register them with the system:
receiver.service
[Unit]
Description=PhantomSDRPlus WebSDR
Requires=network-online.target
Before=websdr.service

[Service]
PIDFile=/run/receiver.pid
ExecStart=/home/websdr/PhantomSDR-Plus/start-receiver.sh
Type=exec
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=receiver.service

websdr.service
[Unit]
Description=PhantomSDRPlus WebSDR
Requires=network-online.target
After=receiver.service

[Service]
PIDFile=/run/websdr.pid
ExecStart=/home/websdr/PhantomSDR-Plus/start-websdr.sh
Type=exec
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
Alias=websdr.service

( receiver.service and websdr.service are in /etc/systemd/system/ )

After you copy (as root) receiver.service and websdr.service in your /etc/systemd/system/ run
systemctl enable receiver
systemctl enable websdr
systemctl start receiver
systemctl start websdr

If your "phantom" start and work, then reboot PC.
After reboot al works fine.

Quoteroot@swo:/home/websdr/rx_tools# service receiver status
● receiver.service - PhantomSDRPlus WebSDR
     Loaded: loaded (/etc/systemd/system/receiver.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-07-20 06:37:21 CEST; 1 day 4h ago
   Main PID: 833 (start-receiver.)
      Tasks: 5 (limit: 4167)
     Memory: 3.9M
        CPU: 2h 3min 47.685s
     CGroup: /system.slice/receiver.service
             ├─833 /bin/bash /home/websdr/PhantomSDR-Plus/start-receiver.sh
             └─834 rx_sdr -f 4000000 -s 8000000 -d driver=sdrplay -g RFGR=1 -t rfnotch_ctrl=false -F CS16 -
Quoteroot@swo:/home/websdr/rx_tools# service websdr status
● websdr.service - PhantomSDRPlus WebSDR
     Loaded: loaded (/etc/systemd/system/websdr.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-07-20 06:37:19 CEST; 1 day 4h ago
   Main PID: 757 (start-websdr.sh)
      Tasks: 12 (limit: 4167)
     Memory: 60.1M
        CPU: 1d 17h 12min 40.651s
     CGroup: /system.slice/websdr.service
             ├─757 /bin/bash /home/websdr/PhantomSDR-Plus/start-websdr.sh
             └─878 ./build/spectrumserver --config config-rsp1a.toml

If receiver or websdr service crash, systemd restart it automatically.

Best regards,
Darko, 9a7aof


#25
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by 9a7aof - Jul 21, 2025, 06:04 AM
Quote from: Phil - NY4Q on Jul 20, 2025, 10:31 PMSteven,

Do I need to recompile the system after the grid square change? I ask because the wasterfall.js file only has a frequency plan for ITU 1 in the bands section for 40m.

I'm not sure how you are generating that file.

Phil

Hi Phil,

simply edit the waterfall.js located in the
PhantomSDR-Plus/frontend/src directory and compile the UI again.

It works, I shortened the medium wave (to 1602kHz) and 80m band (3.5-3,8MHz), deleted and added bands, it's a quick patch until the official revision comes.

To remove unnecessary bands and add new bands in the Bands menu, you need to edit the BandsMenu.svelte file located in the PhantomSDR-Plus/frontend/src/components directory.
(tip: I make soft link ln -s BandsMenu.svelte band.js and then edit  "bands.js" with my favorite editor, joe does not have color sintax for .svelte files )

After compiling the interface, the redundant ones disappear and the desired bands appear.

Changes in the user interface are added without restarting the entire "phantom"

Kind regards,
Darko, 9a7aof



#26
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by magicint1337 - Jul 21, 2025, 12:48 AM
It should detect it on the Grid locator without recompile, i made an error probably. Will be fixed in next hotfixes as well as all the stuff listed here
#27
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by Phil - NY4Q - Jul 20, 2025, 10:31 PM
Steven,

Do I need to recompile the system after the grid square change? I ask because the wasterfall.js file only has a frequency plan for ITU 1 in the bands section for 40m.

I'm not sure how you are generating that file.

Phil
#28
PhantomSDR Bugs / Re: PhantomSDR V2.0 testing / ...
Last post by Bas ON5HB - Jul 20, 2025, 04:01 PM
Step settings can be changed. As for AM, only Europe has 9KHz steps, the USA has 10KHz (if not mistaken).
Same for AM stations, most are 9KHz wide, but often they use 15KHz.
However, 9KHz is the best setting as the filter isn't too steep and it works for almost all stations.

Squelsh can be set in the frontend if you want, for set it for FM by default is an impossible task, as FM is used mixed with other modes.
Too much freq's. If you run smallband SDR; you can set it for the entire band.

FT8 must use 12KHz, this is NOT the sample-rate, it's the audio output and 12KHz is more then enough for any application.
Setting it higher brings nothing but eat more bandwith for your server.

As for Catsync, Phantom is not to blame, it's opensource unlike others, the developer of Catsync should have no problem adapting to it.
He can tab into the server directly.
#29
PhantomSDR Bugs / PhantomSDR V2.0 testing / Bug ...
Last post by hb3xdc - Jul 19, 2025, 09:11 PM
Hi Steven,

Today I installed the new version at home. It works great and is a nice upgrade! I've found a few small improvement opportunities that I'd like to share:

Frequency Step Settings
It would be helpful to allow 1 / 5 / 9 / 10 kHz tuning steps for the mouse wheel.
For SW/MW listeners, it might be a good idea to automatically switch the tuning step to 5 kHz for shortwave broadcasts and 9 kHz for MW/LW.
When the mouse wheel step is set to 25 Hz, the software occasionally freezes.

Filters
On the ham radio bands, I miss the static IF filters that were available in Phil's version.
Auto Adjust WF (Waterfall)
When I turn off "Auto Adjust WF," the brightness doesn't return to the original level.

Squelch
For FM/CB listeners, an auto squelch option would be very useful.

CAT Sync
One of the few major drawbacks of PhantomSDR is its incompatibility with the well-known CATSync application.

Unfortunately, the developer of CATSync is not willing to adapt his software, but he has shared how it integrates with other software like OpenWebRX.
https://www.phantomsdr.fun/index.php?topic=165.msg929
Perhaps we could adapt PhantomSDR to support it based on that information.

Decoder
The FT8 decoder doesn't work with the default config.toml.
This might be due to the audio sample rate being over 12 kHz, similar to the issue in the old version.

Thanks again for the great work on this release.

Best regards,
Gianni
Powered by EzPortal