sdroxide-brown

Raspberry Pi Zero 2 W en station SWL sans écran (sdroxide)

Un guide court et pratique pour transformer un Raspberry Pi Zero 2 W et une clé SDR bon marché en station d’écoute en réseau pour les ondes courtes et la radiodiffusion : la radio et le décodage tournent sur le Pi, et vous le pilotez depuis un ordinateur portable, une tablette ou un téléphone sur votre réseau domestique. Rien ici n’exige une licence ni un émetteur.

Pour le déroulé de l’écoute elle-même, voir le Démarrage rapide écoute ; pour le détail de chaque commande, voir USER_MANUAL.md ; pour l’esprit de ce fork, voir le README.

English: pi-zero-2w-swl.en.md. Nederlands: pi-zero-2w-swl.nl.md. Italiano: pi-zero-2w-swl.it.md. PDF : pi-zero-2w-swl.fr.pdf.

Les noms en gras comme SETTINGS et SWL LOG sont des boutons et des champs tels qu’ils apparaissent à l’écran. Les commandes dans les encadrés gris se tapent dans le shell du Pi.

À lire d’abord. Le Pi Zero 2 W est un nœud d’écoute, pas un bureau. Ses quatre petits cœurs et ses 512 Mo de RAM portent le récepteur, les décodeurs et l’enregistrement sans peine ; ils ne portent pas les voies large bande (ADS-B, VDL2, AIS, DAB) ni l’interface graphique en pleine finesse. Gardez une fréquence d’échantillonnage basse, restez sur les modes étroits, et laissez le navigateur faire le dessin.


Ce qu’il vous faut


Partie 1 — Préparer le Pi

  1. Installez Raspberry Pi OS (64 bits, Bookworm) sur la carte microSD avec Raspberry Pi Imager. Dans les réglages de l’Imager, définissez le nom d’hôte (par exemple swl), activez SSH, et saisissez vos identifiants Wi-Fi si vous n’utilisez pas de câble. Démarrez le Pi.
  2. Connectez-vous en SSH :
    ssh pi@swl.local
    
  3. Mettez à jour, et installez les paquets dont sdroxide a besoin :
    sudo apt update && sudo apt full-upgrade -y
    sudo apt install -y libasound2-dev libopus-dev
    

Vous n’installez pas de compilateur. La version publiée est un binaire prêt à l’emploi.


Partie 2 — Installer sdroxide

Le Zero 2 W est 64 bits (armv8), il exécute donc la version aarch64-compat faite pour Raspberry Pi OS Bookworm. Téléchargez-la sur le Pi lui-même :

cd /tmp
wget https://github.com/madmedicnl/sdroxide-brown/releases/latest/download/sdroxide-linux-aarch64-compat.AppImage
chmod +x sdroxide-linux-aarch64-compat.AppImage
./sdroxide-linux-aarch64-compat.AppImage --version

--version doit afficher le numéro de build SDR Oxide Brown. S’il refuse de se lancer avec GLIBC_2.39 not found, vous avez pris le mauvais fichier — il vous faut celui dont le nom contient -compat.

Placez-le là où vous pouvez l’appeler par son nom :

mkdir -p ~/bin
mv sdroxide-linux-aarch64-compat.AppImage ~/bin/sdroxide
chmod +x ~/bin/sdroxide

Un .deb convient aussi : la même page de publication contient sdroxide-linux-aarch64-compat.deb ; installez-le avec sudo apt install ./sdroxide-…-aarch64-compat.deb et la commande est alors simplement sdroxide.

Les règles udev comptent. Un utilisateur Linux a besoin de la permission d’ouvrir une SDR USB. Si vous avez installé le .deb, elles sont déjà en place. Avec l’AppImage, copiez les règles du dossier packaging/linux/ du dépôt vers /etc/udev/rules.d/, puis :

sudo udevadm control --reload && sudo udevadm trigger

et débranchez puis rebranchez la clé. Sans cela, le Pi voit la clé mais ne peut pas l’ouvrir.


Partie 3 — Premier lancement, sur l’écran du Pi

Vous n’en avez besoin qu’une fois, pour configurer la radio ; ensuite le Pi tourne sans écran.

DISPLAY=:0 ~/bin/sdroxide

(Si vous n’avez aucun bureau, passez à la Partie 4 et faites la configuration depuis le navigateur.)

  1. Ouvrez SETTINGS → Radio. Choisissez votre interface — pour une RTL-SDR, c’est RTL-SDR — et surtout, réglez une fréquence d’échantillonnage basse : choisissez 1024000 ou 900001, pas les 2,4 Msps par défaut. Les modes étroits n’en ont besoin que d’une fraction, et c’est ce taux bas qui garde le Pi au frais et dans les temps. Cliquez Apply / reconnect.
  2. Dans SETTINGS → UI, cochez Start in SWL mode pour que les commandes d’émission n’apparaissent jamais — c’est une station d’écoute. (--swl en ligne de commande fait la même chose pour une exécution.)
  3. Dans SETTINGS → General, réglez votre Grid square (la fenêtre SWL LOG s’en sert pour le locator de chaque réception) et, à l’onglet Spots, votre identité Report as (SWL).
  4. Accordez une bande de radiodiffusion — LW, MW ou SW — choisissez AM ou SAM, et vérifiez que vous entendez quelque chose. Les fenêtres SCHEDULE et SWL LOG sont les outils de l’écouteur ; le Démarrage rapide écoute les parcourt.

Partie 4 — Le faire tourner sans écran, en serveur

C’est le but de l’exercice : le Pi garde la radio, et tous vos écrans peuvent l’utiliser.

Arrêtez l’instance à fenêtre, puis lancez le serveur :

~/bin/sdroxide --server --port 4950

Le client navigateur est servi depuis le même port. Sur n’importe quel appareil du même réseau, ouvrez :

http://swl.local:4950

Vous obtenez tout le programme dans le navigateur — l’accord, la chute d’eau, les fenêtres SCHEDULE et SWL LOG, les décodeurs, le journal de réception. Le Pi fait la réception et le décodage ; le navigateur fait le dessin, et c’est exactement ainsi qu’une carte de 512 Mo reste utile.

Un sdroxide natif sur un autre ordinateur peut aussi le piloter, avec sdroxide --connect swl.local:4950.

Le laisser tourner

Pour que le serveur démarre au boot et reste actif, créez un petit service :

sudo tee /etc/systemd/system/sdroxide.service >/dev/null <<'EOF'
[Unit]
Description=sdroxide SWL listening server
After=network-online.target sound.target
Wants=network-online.target

[Service]
User=pi
ExecStart=/home/pi/bin/sdroxide --server --swl --port 4950
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now sdroxide

Vérifiez avec systemctl status sdroxide, et suivez son journal avec journalctl -u sdroxide -f.


Ce que cette installation fait bien — et ce qu’elle ne fait pas

Bon sur un Zero 2 W :

Mauvais ou impossible sur un Zero 2 W :


Si quelque chose ne marche pas


Aide et liens

Bonne écoute et bon DX ! 73