https://github.com/sv1btl/PhantomSDR-Plus
Ik gebruik Ubuntu 22.04 deze is lekker stabiel en slikt de SDRplay RSP1a drivers zonder problemen.. de nieuwere versies van de server distros doen erg moeilijk met de nieuwste versies..
echter is het noodzaak om de node software te installeren.. deze werkt namelijk out of the box niet met deze ubuntu versie..22.04 dus die updaten we..
wees dus slim en gebruik echt de 22.04 of 22.5 versie.
De web-omgeving (Node.js v20 via NVM) is handmatig gemoderniseerd, zodat de nieuwste S-meter frontend en mods van George er soepel op draaien
hieronder staat beknopt beschreven wat er is gebeurd.
Stap 1: Systeem updaten en Node.js (v20) installeren
De standaard Node.js van Ubuntu is te oud voor de S-meter interface. We installeren daarom eerst NVM (Node Version Manager) om direct de juiste versie te laden.
# Systeempakketten updaten sudo apt update && sudo apt upgrade -y # Git, Curl en build-essentials installeren sudo apt install -y git curl build-essential meson ninja-build cmake # NVM downloaden en installeren curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # NVM direct activeren in de huidige terminal export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # De stabiele Node.js v20 installeren en activeren nvm install 20 nvm use 20
Stap 2: De juiste PhantomSDR+ repository klonen
We gebruiken de specifieke fork van sv1btl (George), omdat hier de analoge S-meter code van mei 2026 volledig en correct in zit ingebakken.
# Naar de homemap gaan en de repository klonen cd ~ git clone https://github.com/sv1btl/PhantomSDR-Plus.git cd PhantomSDR-Plus
Stap 3: De S-meter Frontend compileren
Nu we de juiste Node-versie hebben, bouwen we de webinterface. Dit zorgt ervoor dat de benodigde .js en .wasm bestanden in de map frontend/dist worden aangemaakt.
# Naar de frontend map gaan cd ~/PhantomSDR-Plus/frontend # De benodigde pakketten binnenhalen en de website bouwen npm install npm run build
Stap 4: Websitegegevens aanpassen (Belangrijk)
### Stap 3b: Websitegegevens aanpassen (Belangrijk voor sv1btl versie!) De fork van sv1btl leest de naam en roepletters van de website NIET uit de TOML-configuratie, maar uit een los JSON-bestand. Pas dit aan vóórdat je gaat bouwen! 1. Open `~/PhantomSDR-Plus/frontend/site_information.json` via WinSCP. 2. Vul je eigen gegevens in (Callsign, Locator, IP, etc.). 3. Maak het build-script uitvoerbaar en bouw alle S-meter pagina's in één keer: ```bash cd ~/PhantomSDR-Plus/frontend chmod +x build-all.sh ./build-all.sh
Stap 5: De Backend compileren met Meson & Ninja
De server van PhantomSDR+ bakt de zojuist gebouwde frontend direct mee in het opstartbestand. We maken een schone build-omgeving aan en compileren de C++ code.
# Terug naar de hoofdmap cd ~/PhantomSDR-Plus # Build-omgeving inrichten en de server compileren meson setup build meson compile -C build
Stap 6: De configuratie (config-rsp1a.toml) aanmaken
Voordat we de server starten, moet het configuratiebestand in de map ~/PhantomSDR-Plus staan. Maak dit bestand aan via WinSCP of via de terminal en zorg dat er geen dubbele regels in staan.
Inhoud van config-rsp1a.toml:
[server] port=9002 # De poort waarop je de website opent html_root = "frontend/dist/" otherusers=1 threads=2 [websdr] register_online=false register_urls=[ "https://sdr-list.xyz/api/update_websdr", "https://sdr.shbrg.nl/api/update_websdr" ] name="PD4DD PhantomSDR+" antenna="Discone" grid_locator="JO21hn" hostname="" [input] sps=2000000 # 2 MHz sample rate, gelijk aan het startcommando fft_size=262144 fft_threads=2 brightness_offset=-6 frequency=3650000 # Center frequentie signal="iq" accelerator="none" audio_sps=12000 audio_compression="flac" smeter_offset=0 analog_smeter_offset=0 [input.driver] name="stdin" format="s16" [input.defaults] frequency=3650000 modulation="LSB"
Stap 7: De server handmatig starten
Als de TOML is opgeslagen, sturen we het signaal van de RSP1a via rx_sdr door naar de zojuist gebouwde spectrumserver.
# Startcommando (uitvoeren in ~/PhantomSDR-Plus) rx_sdr -f 3650000 -s 2000000 -d driver=sdrplay -g RFGR=5 -F CS16 - | ./build/spectrumserver --config config-rsp1a.toml
stap 8 optioneel
PhantomSDR+ automatisch laten opstarten (Systemd Service)
#!/bin/bash # Zorg dat we in de juiste map staan cd /home/pd4dd/PhantomSDR-Plus # Slinger de SDRplay en de spectrumserver aan /usr/local/bin/rx_sdr -f 3650000 -s 2000000 -d driver=sdrplay -g RFGR=5 -F CS16 - | ./build/spectrumserver --config /home/pd4dd/PhantomSDR-Plus/config-rsp1a.toml
Maak het script daarna in PuTTY uitvoerbaar met dit commando:
chmod +x /home/pd4dd/PhantomSDR-Plus/start_sdr.sh
2. De Service aanmaken in Ubuntu
Nu maken we het configuratiebestand aan dat Ubuntu vertelt hoe hij dit script als een onzichtbare achtergronddienst moet beheren.
Typ in PuTTY het volgende commando om de editor te openen
sudo nano /etc/systemd/system/phantomsdr.service
Plak de onderstaande tekst in het geopende venster: (Taal-instelling in WordPress: INI of TOML)
[Unit] Description=PhantomSDR+ Server voor RSP1A After=network.target [Service] Type=simple User=pd4dd WorkingDirectory=/home/pd4dd/PhantomSDR-Plus ExecStart=/home/pd4dd/PhantomSDR-Plus/start_sdr.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
3. De service activeren en starten
Activeer de nieuwe dienst zodat deze direct start én onthouden wordt bij elke herstart van de computer:
# De nieuwe service aanmelden bij het systeem sudo systemctl daemon-reload # Automatische start bij het booten inschakelen sudo systemctl enable phantomsdr.service # De server NU direct opstarten op de achtergrond sudo systemctl start phantomsdr.service
Spiekbriefje: De server beheren
Je terminal in PuTTY blijft nu direct weer helemaal vrij omdat alles op de achtergrond draait. Je kunt de server vanaf nu beheren met deze vier eenvoudige commando’s:
# Controleren of de server live is en stabiel draait: sudo systemctl status phantomsdr # De server handmatig stoppen: sudo systemctl stop phantomsdr # De server handmatig weer aanzetten: sudo systemctl start phantomsdr # De server snel herstarten (bijvoorbeeld na een TOML-aanpassing): sudo systemctl restart phantomsdr

