PhantomSDR Support Forum

General Category => PhantomSDR Wishlist => Topic started by: Hendrik on Jan 10, 2026, 02:06 PM

Title: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 10, 2026, 02:06 PM
Many thanks to the developer. The current release 1.6.6 is quite stable and easy to update(recompile.sh), great!
It's running here: http://mellesdr.rqhk191saz25euus.myfritz.net

The wishes are:
it would be nice to export the band definition at a own file. So it would be no need after every update to manage the file 'waterfall.js'.

An implentation for a short overview for CPU, memory and disc use would be nice as well. May be a simple output by 'htop' or' btop' could be showed after clicking a button or integrated at the 'Open Additional Info' overview? Currently i use 'monit' to bypass to much manuel ssh logins for a system overview on this remote driven system.

Have a good reception, thanks,
Hendrik


Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 10, 2026, 03:55 PM
Quote from: Hendrik on Jan 10, 2026, 02:06 PMThe wishes are:
it would be nice to export the band definition at a own file. So it would be no need after every update to manage the file 'waterfall.js'.

An implentation for a short overview for CPU, memory and disc use would be nice as well. May be a simple output by 'htop' or' btop' could be showed after clicking a button or integrated at the 'Open Additional Info' overview? Currently i use 'monit' to bypass to much manuel ssh logins for a system overview on this remote driven system.

We'll take care of these suggestions and we'll try to make them work.

The "export the band definition" is a very good idea. Waterfall.js has to be upgraded after a very long time, and we know that upgrading it had caused problems to these that they had previous band definitions. Although the documentation is describing the safest way to keep bands' definitions while updating waterfall.js. to make a separate file is the best practice. We'll care about it.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 11, 2026, 08:37 AM
Quote from: Hendrik on Jan 10, 2026, 02:06 PMshort overview for CPU, memory and disc

It is done, inside "Additional Info"  📊 Stats button next to the PC link that opens the popup!

Quote from: Emmanuel SV1BTL on Jan 10, 2026, 03:55 PMband definition at a own file

It is also done! Now you can edit bands in a separate /PhantomSDR-Plus/frontend/src/bands-config.js file

Please check my server http://phantomsdr.no-ip.org:8900/
and if you are satisfied, I'll include the changes to the Github.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 11, 2026, 10:04 AM
Emmanual, at least for today you're my hero! The machine status looks great and is quite helpful and with the 'bands-config.js' could every owner better control the band selection offer. Also fine: against my SDR release is in your release the noise reduction button active again. I'll fast update my RX with your new Github release.

Many thanks for your fast reaction and your quick work, my deepest bow.  :D

Have a great weekend,
Hendrik
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 11, 2026, 11:28 AM
Quote from: Hendrik on Jan 11, 2026, 10:04 AMEmmanual, at least for today you're my hero! The machine status looks great and is quite helpful and with the 'bands-config.js' could every owner better control the band selection offer. Also fine: against my SDR release is in your release the noise reduction button active again. I'll fast update my RX with your new Github release.

Many thanks for your fast reaction and your quick work, my deepest bow.  :D

Have a great weekend,
Hendrik

Everything is done as you would like (and as it would be done from the beginning), and of course it was a brilliant idea. Now I am testing everything and if all it's ok, I'll upload the changes to the Github. At least waterfall.js and the new /PhantomSDR-Plus/frontend/src/bands-config.js , will be uploaded today.

Stats are done, but the Sysop must install a new server for stats, open a port in the router, and also make a script for autostart this particular service. All these I'll describe in detail with the newer Readme.md. It is not such a big deal, but additional acts may be done from the side of SySop. I want to wait for a while, before to add the solution to the Github, to be ensured for the stability.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 11, 2026, 11:56 AM
waterfall.js and bands-config.js have been uploaded!
Read initial readme.md in section https://github.com/sv1btl/PhantomSDR-Plus#the-bands-configjs (https://github.com/sv1btl/PhantomSDR-Plus#the-bands-configjs)

Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 11, 2026, 01:00 PM
The new 'waterfall.js and the 'bands-config.js' are already implemented and live. It's works immediately as expected! Also fine: Only the changed files get a new date at your repo. So it's qute easy to run an update.

Appending here the changed 'generateshortwave.py' by the 'frequencylist' folder. The last remarked lines explains how to update/extend the 'markers.json' with the broadcasting stations by the HFCC datbase. If you think it makes sense, so you could extend the file at your fine repo or give the readme a hint more.

Thanks again for your fas response!
73 de Hendrik


from collections import defaultdict
import json
broadcastersFile = open('broadcas.txt',encoding="ISO-8859-1")
frequenciesFile = open('B25all00.TXT')

broadcasters = {}
for broadcaster in broadcastersFile:
    if broadcaster[0] != ';':
        k, v = broadcaster.rstrip().split(" ", 1)
        broadcasters[k] = v

frequencies = defaultdict(set)
for frequency in frequenciesFile:
    if frequency[0] != ';':
        f = int(frequency[:5])
        b = frequency[117:120]
        frequencies[f].add(b)

for k in frequencies.keys():
    frequencies[k] = "\n".join(sorted(broadcasters[x] for x in frequencies[k]))

frequenciesSorted = []
for k, v in sorted(frequencies.items()):
    frequenciesSorted.append({"frequency": k*1000, "name": v, "mode": "AM"})

json.dump(frequenciesSorted, open('shortwavestations.json','w'), indent=4)


#download from https://new.hfcc.org/data/ the newest list, at the buttom of page, here: "B25allx2.zip - B25 Operational Schedule - Last updated on 20-Dec-2025"
#unzip the downloaded file, here: "B25allx2.zip"
#move "B25all00.TXT" and "broadcas.txt" at the "frequencylist" folder
#edit the file "generateshortwave.py"
#modify line 4 for the current file name, here : "B25all00.TXT"
#modify line 24 to "frequenciesSorted.append({"frequency": k*1000, "name": v, "mode": "AM"})"
#run script with "python3 generateshortwave.py"
#extend or replace the file "markers.json" with the new generated file "shortwavestations.json"
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 11, 2026, 11:17 PM
Quote from: Hendrik on Jan 11, 2026, 01:00 PMchanged 'generateshortwave.py' by the 'frequencylist' folder

Yes, the file is been updated as you suggested, and uploaded.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 12, 2026, 12:44 AM
Quote from: Hendrik on Jan 10, 2026, 02:06 PMAn implentation for a short overview for CPU, memory and disc use would be nice as well.

Well, I think is done with the info a sysop expects to see. If you, Darko and the others using v.1.6.6 wish, then I'll included as update to the Github, with some instructions how to build the needed additional server. I am waiting for the feedback.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 13, 2026, 08:44 AM
The Monitor Tool is added to the Github. There are some added & updated files. You can download only them to update, or make a clean install.
In case you don't want to install the tool, you will need to make a minor modification to the app.svelte's files, so the button no to be appeared.
Detailed information here:
https://github.com/sv1btl/PhantomSDR-Plus/blob/main/docs/sdr-stats/README.md (https://github.com/sv1btl/PhantomSDR-Plus/blob/main/docs/sdr-stats/README.md)
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 13, 2026, 12:09 PM
Thank you again for the updated code. I've it already implemented and it's running well:
System Resources
🖥� CPU
Usage: 3%
Cores: 16
Top Processes:
spectrumserver 15%
rx888_stream 14.4%
node 0.4%
💾 Memory
Used: 1.3 GB / 15 GB
Usage: 9%
💿 Disk
Used: 38 GB / 467 GB
Usage: 9%

Ok, temperatur is missing due to the most nodejs modules that request hardware settings only running with intel chips(here AMD). I'll surwive that, probably.

Well done! Great work.
Have a great week,

Hendrik
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 13, 2026, 02:01 PM
Quote from: Hendrik on Jan 13, 2026, 12:09 PMThank you again for the updated code. I've it already implemented and it's running well:

Glad, but you have not maybe setup the port to be open in your router, that's why the end user receives only 0 values.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 13, 2026, 04:35 PM
Yes, thank you, 3001 was only open for IP V4. It's seems you use V6 and found so this kind of issue.
Could you it try again please?

Best regards,
Hendrik
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 13, 2026, 05:34 PM
No, sorry, 0 (zero) values again.
I am using IP V4.

I am ready to upload new versions for the tool, so to be more accurate with Intel/AMD temperature measurements. The problem was of what sensors has the script to read temperature information, and I think the new version solves this. Now I am testing it and I see that temperature is shown as it should be.

The new installation script will install all needed for reading the sensors from Intel, AMD & ARM. A manual installation is also included in the readme.md

I am afraid that you have to uninstall the previous version doing these steps and reinstall the newer version:
- sudo systemctl stop sdr-stats.service
- sudo rm /etc/systemd/system/sdr-stats.service
- delete manually the folder sdr-stats-server (rm -r sdr-stats-server)
- Run the newer install-stats-server.sh you'll download from Github
     cp ~/PhantomSDR-Plus/docs/sdr-stats/install-stats-server.sh ~/
     chmod +x install-stats-server.sh
- follow the instruction during installation
- if you accept to create sdr-stats.service, then after installation run:
     sudo systemctl restart sdr-stats.service  and check with:
     sudo systemctl status sdr-stats.service

DONE!

All the newer files are ready for upload, but the update will be done later today.
Please notify any problems found (if any)!...
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 14, 2026, 10:33 AM
Many thanks for your long instruction due to the sdr-stats service. What for a load of work! (for me not needed, i'm quite familare with systemd services, but helpful if anybody else like do the same) 


The new API is running well.
local IP --> http://192.168.188.27:3001/api/system-stats

cpu
usage 2
cores 16
temperature 53
topProcesses
0
name "spectrumserver"
cpu 20.7
1
name "rx888_stream"
cpu 18
memory
used 1.3
total 15
percent 9
disk
used 38
total 467
percent 9

Temperature is Up on AMD CPU, great. Thank you.

Port 3001 V4/V6 is open at the same manner like the port 80 for the sdr. Sdr-stats is running:

hm@mellesdr:~/PhantomSDR-Plus-main$ systemctl status sdr-stats
● sdr-stats.service - SDR System Stats Server
     Loaded: loaded (/etc/systemd/system/sdr-stats.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2026-01-14 09:45:14 CET; 25min ago
   Main PID: 929682 (node)
      Tasks: 7 (limit: 18258)
     Memory: 14.1M
        CPU: 217ms
     CGroup: /system.slice/sdr-stats.service
             └─929682 /home/hm/.nvm/versions/node/v22.21.1/bin/node /home/hm/sdr-stats-server/system-stats-server.js

Jan 14 09:45:14 mellesdr systemd[1]: Started SDR System Stats Server.
Jan 14 09:45:14 mellesdr node[929682]: System stats server running on http://localhost:3001
Jan 14 09:45:14 mellesdr node[929682]: API endpoint: http://localhost:3001/api/system-stats

The file 'site_information' have the entry "siteStats": "http://rqhk191saz25euus.myfritz.net:3001".

But on the sdr --> 'additinal info' --> 'stats' get I only the zero values. Even if i use the local or the public IP.
May be that's interessting: the local IP 'http://192.168.188.27:3001/' returns 'Cannot GET /'.

Do not rush, take time, i like development on software components.

73 de Hendrik.

Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: alanVK2ZIW on Jan 14, 2026, 11:40 AM
Great work,
Can I ask, "bands", my SDR only does 2M sample-rate, and bands are switchable by means
of a signal sent to the "miri_sdr" process which causes it to read the new centre and samplerate
from a file, how do I do this in PhantomSDT-Plus ?

 
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 15, 2026, 05:53 AM
Well, http://rqhk191saz25euus.myfritz.net:3001/api/system-stats (http://rqhk191saz25euus.myfritz.net:3001/api/system-stats) returns nothing, like this address is dead.
At the same time http://phantomsdr.no-ip.org:3001/api/system-stats (http://phantomsdr.no-ip.org:3001/api/system-stats) returns what is expected

Please check your port with https://www.yougetsignal.com/tools/open-ports/ (https://www.yougetsignal.com/tools/open-ports/) . Port 3001 shall return OPEN for your external IP.

I don't think that there is a mistake in coding, because this works for me and Darko's WebSDR: http://9a7aof.ddns.net:8905/ (http://9a7aof.ddns.net:8905/) and the tool returns this: http://9a7aof.ddns.net:3001/api/system-stats (http://9a7aof.ddns.net:3001/api/system-stats)

So, please check once more what is going on with this particular port. You've got it working locally, so the tool works as expected, but the communication with outside word is not possible.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 15, 2026, 08:08 AM
Quote from: alanVK2ZIW on Jan 14, 2026, 11:40 AMCan I ask, "bands", my SDR only does 2M sample-rate, and bands are switchable by means
of a signal sent to the "miri_sdr" process which causes it to read the new centre and samplerate
from a file, how do I do this in PhantomSDT-Plus ?

As I've previous described, in your case you have only to modify the .toml file you are using, only the last lines as follows:

[input.defaults]
frequency=7100000 # Default frequency to show user 7100000
modulation="LSB" # Default modulation

In your case, with ONLY 2MHz bandwidth used, only 40m will be shown. Your .toml you maybe should have:

...
frequency=5900 # Baseband frequency
...

This will force the visitor entering your WebSDR to read the frequency 7100 KHz. Now the visitor in your case reads 0.00 KHz, and he is maybe confused.

The bands declared in ~/PhantomSDR-Plus/frontend/src/bands-config.js are shown (or not) if your total bandwidth allows them to be shown. E.g. when your bandwidth is 30MHz, ALL bands will be shown. Please read the description here: https://github.com/sv1btl/PhantomSDR-Plus?tab=readme-ov-file#the-bands-configjs (https://github.com/sv1btl/PhantomSDR-Plus?tab=readme-ov-file#the-bands-configjs)

Please check, try to modify, restart the server and let me know.
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Hendrik on Jan 15, 2026, 09:58 AM
Issue solved. "siteStats" had returns up to now the address by the router - not by the ubuntu server. The subdomain 'mellesdr' was missing. Corrected here ---> "siteStats": "http://mellesdr.rqhk191saz25euus.myfritz.net:3001" Now it's clear, the router will not give a response on Port 3001, even he is open. All mesurements are now public to see.

Emmanuel, great thanks for the particular views on it and the whole fine system stats overview.

One last hint for the git read.me. Here find i:(* Ryzen CPU's with internal GPU do not support OpenCL, if you expect high performance add a videocard or use an modern Intel i5 or i7 that supports OpenCL.)
That is so no longer valid. With the right 'AMD ROCm' for 'AMD Accelerated Parallel Processing' drivers and least a cheap integrated Graphics Hardware 'Radeon RX VEGA 8' is OPENCL brilliant supported. (the whole 64 MBit signal by the RX888 consumes no 3% of CPU power on a Ryzen 7) The only dirty point is: it supports only OPENCL if the linux running without a GUI, for an example 'ubuntu server' release.

Best regards from Berlin,
Hendrik
Title: Re: Wishlist after release v1.6.6: bands.json + cpu, ram and disk status
Post by: Emmanuel SV1BTL on Jan 15, 2026, 01:46 PM
Quote from: Hendrik on Jan 15, 2026, 09:58 AMIssue solved

Yes, indeed! The tool is now sending the data to the external world. Congratulations!