Old School Radio
Old School Radio
Une vieille radio c'est beau mais pas très utile. Avec du bluetooth, des web radios et de quoi recharger un téléphone c'est mieux !
(image: radiomuseum.org)
Mainteneur: John B
Rationale
J'ai une vieille radio qui est très jolie et qui aurait bien sa place dans ma salle à manger. Tant qu'à faire autant qu'elle serve !
L'idée est de jouer de la musique en Bluetooth, de pouvoir lancer des web radios et de récupérer les boutons existants pour l'interface.
Principe
-
Une Raspberry Pi est intégrée dans la radio. Un DAC HAT améliore l'audio de la pi, le son sort sur des haut-parleurs (ceux de base sont à remplacer, tout comme l'ampli).
Features
v1
-
Bluetooth
v2
-
Aux (mini-jack)
Matériel
-
Raspberry Pi 3B+ (un 0W aurait peut-être fait le job mais j'avais peur des lags wifi - bluetooth)
Software
La stack software est relativement simple. Le challenge va être de gérer les droits sur le son (alsa) : quid si un client bluetooth diffuse et qu'on veut jouer une radio web ?
Bluetooth
La partie la plus simple: la raspi 3 étant équipée d'un adaptateur bluetooth intégré, il suffit de trouver le bon tuto sur le net (ce qui n'est pas toujours gagné).
J'ai essayé plusieurs solutions, celle qui a fonctionné c'est ce script python : bt-speaker.
-
Préparer la Raspberry Pi (voir Getting Started)
sudo raspi-config → Network Options → Hostname → redémarrer-
forcer la sortie jack 3.5mm pour l'audio
Note 1: à la fin du tutoriel, il est expliqué qu'il faut forcer le bluetooth à s'allumer au démarrage de la Pi malgré que EnableAuto soit activé dans /etc/bluetooth/main.conf. Personnellement je n'ai pas eu à le faire, ça a fonctionné directement. Je n'ai donc pas créé le service bt_power.
Note 2: il est également noté qu'il faut désactiver l'adaptateur wifi interne pour avoir un son correct (sinon ça laggue). Je n'ai pas eu non plus à le faire, ça fonctionne correctement avec le wifi allumé.
Web radio
Pour les web radios, la première étape est de trouver un player web sur lequel on pourrait se connecter et jouer une radio dans une liste préconfigurée.
MPD.FM fait exactement le job, pas plus pas moins. Il s'appuie sur un standard (MPD) et est codé proprement en nodejs, ce qui me permettra d'ajouter les fonctionnalités que je souhaite à terme :
-
Contrôle du volume
Pour installer MPD.FM, suivre le guide sur le README du github. Cela consiste en :
-
Installer la dernière version de node
Ensuite :
-
Modifier le fichier de config avec la liste des stations :
/home/srv-mpd-fm/MPD.FM/data/stations.json
192.168.*.*:4200Grâce au service Bonjour sur Macos, on peut se connecter à hostname.local:4200. Si vous avez configuré le bluetooth dans la section précédente, hostname correspond au nom de votre adaptateur Bluetooth.
TODO: mettre le script sur le port 80 (il faut des droits spéciaux au user) et fixer l'adresse IP de la Pi (nécessaire si on veut ajouter l'app à l'écran d'accueil Android).
Aux
A voir si c'est possible sans DAC. Avec un DAC il devrait être possible de sortir une fiche mini-jack 3.5mm de la radio à brancher dans les téléphones.
Hardware
Interface
L'interface consiste en trois interactions :
-
Boutons du bas: Allumer, mode Aux, mode Bluetooth, mode web radios
Boutons du bas
TODO
Boutons du haut
TODO
Molettes
A voir s'il ne faut pas remplacer les molettes par un rotary encoder classique: le fonctionnement actuel est basé sur une série de ficelles et d'engrenages…
