Radio FM et RDS sur Raspberry Pi

Le RDS, c’est quoi ?

Le RDS, ou Radio Data System, est un système de transmission de données numériques en parallèle des données audio de la bande II de la VHF (de 87,5 Mhz à 108 Mhz). Autrement dit, lorsque vous écoutez une station radio FM, des données sont transmises comme le suivi de station (qui permet l’écoute en continu d’une station même lors d’un déplacement impliquant un changement de fréquence), le nom de la station radio ou le titre de la musique diffusée ; toutes ces données sont transmises en plus de la musique, c’est le RDS qui s’en charge.

Transformer une Raspberry en un émetteur FM et RDS

Le matériel nécessaire

La liste du matériel nécessaire est plutôt courte, car il suffit d’une Raspberry (dans mon cas il s’agit d’une Pi avec Raspbian Stretch) et d’un bout de fil pour l’antenne.

La partie logicielle : installation et premier lancement

Là non plus ce n’est pas très compliqué. Il faut commencer par installer la librairie sndfile avec la commande :

sudo apt-get install libsndfile1-dev

Une fois cette librairie installée, il faut installer Pi-FM-RDS. (vous trouverez le projet Github ici ). Pour l’installer, il faut suivre la procédure suivante :

  1.    git clone https://github.com/ChristopheJacquet/PiFmRds.git
  2.    cd PiFmRds/src
  3.    make clean
  4.    make

Maintenant que vous avez installé Pi-FM-RDS, vous pouvez le lancer en tapant la commande :

sudo ./pi_fm_rds

( Pour lancer cette commande il faut être dans le dossier « PiFmRds/src ». )

Si tout est bien installé, une fois cette commande de lancement exécutée, vous avez ceci :

Capture du terminal après le lancement de Pi FM RDS.

Il faut également mettre un bout de fil comme antenne sur le GPIO4 de votre Raspberry, le GPIO4 est le GPIO utilisé par Pi-FM-RDS.

Si maintenant avec un poste radio ou une clé sdr vous écoutez la fréquence 107.9 Mhz, vous n’aurez aucune musique et l’afficheur RDS (si votre poste en a un) affichera des informations variables à la place du nom de la station et « PiFmRds : live FM-RDS transmission from the RaspberryPi » à la place du titre de la chanson.

Capture du logiciel SDRSharp avec Pi-FM-RDS de lancé avec la commande citée plus haut.

La partie logicielle : personnalisation des paramètres

Maintenant que Pi-FM-RDS est installé et fonctionnel, on veut pouvoir l’utiliser à « notre sauce ». Voyons donc comment personnaliser les paramètres.

La fréquence

Par défaut il émet sur la fréquence 107.9 Mhz. Pour changer cette fréquence c’est très simple, il suffit de donner à l’application lors de son lancement la fréquence que l’on souhaite (Pi-FM-RDS fonctionne avec toute la bande II). Pour lui indiquer cette fréquence, on rajoute -freq ‘frequence’ à la suite de la commande de lancement. Pour lancer l’application sur la fréquence 105.5 Mhz par exemple, on devra donc exécuter la commande suivante :

sudo ./pi_fm_rds -freq ‘105.5 Mhz’

Le nom de la station

Après avoir modifié la fréquence, personnalisons le nom de la station. Le principe est le même que pour la fréquence, mais avec la balise -ps ‘votre texte’. Ce texte ne doit pas faire plus de 8 caractères. Si on veut par exemple nommer notre station « IRadio », il nous faut lancer la commande :

sudo ./pi_fm_rds -ps ‘IRadio’

Le titre de la musique

Là encore le principe est le même, il n’y a que la balise qui change et devient -rt ‘votre texte’. Ce texte ne doit pas faire plus de 64 caractères. Pour exemple, demandons à notre Raspberry d’afficher comme titre de musique « F4IAI Nimes » :

sudo ./pi_fm_rds -rt ‘F4IAI Nimes’

Jouer un fichier audio

En plus de transformer la Raspberry en émetteur RDS, Pi-FM-RDS la transforme en émetteur radio traditionnel. On peut donc lui demander de diffuser un fichier audio. Seul impératif, ce fichier doit être au format .wav ou .ogg, le format .mp3 n’est pas supporté. Ce fichier sera joué en boucle. La balise pour le charger est -audio ‘chemin du fichier’. On veut par exemple jouer le fichier « musique » présent dans le fichier « pi » de ma Raspberry :

sudo ./pi_fm_rds -audio ‘/home/pi/musique.wav’

 

D’autres fonctions sont disponibles, elles sont décrites sur le projet Github.

Toutes ces fonctions sont bien entendu cumulables, on peut donc par exemple jouer sur 105.5 Mhz le fichier « musique », en nommant la station « IRadio » et en affichant comme titre « F4IAI Nimes », pour cela il faut lancer la commande :

sudo ./pi_fm_rds -freq ‘105.5 Mhz’ -audio ‘/home/pi/musique.wav’ -ps ‘IRadio’ -rt ‘F4IAI Nimes’

Une fois cette commande lancée, sur 105.5 Mhz votre poste entendra le fichier « musique » et s’il équipé pour le RDS affichera le nom de station et le titre de musique indiqués ci-dessus.

Capture du terminal de la Raspberry une fois la commande exécutée.

 

Capture du logiciel SDRSharp avec les paramètres saisis plus haut.

 

En France, l'émission sur ces fréquences est interdite, faites donc vos essais sur une courte durée et de manière à avoir une toute petite portée (que ça ne sorte pas de chez vous...).