LIVERADIO Vintage by ORANGE

by PierreL14 in Workshop > Home Improvement

243 Views, 2 Favorites, 0 Comments

LIVERADIO Vintage by ORANGE

Capture d’écran 2025-11-17 092611.jpg

Les webradio LIVERADIO Vintage commercialisées par Orange sont des radios de très bonne qualité (sonore et utilisation de matériaux nobles). Malheureusement, depuis quelques années, ORANGE ne maintient plus le serveur de stations permettant l'écoute des radios IP. Ces webradios ne fonctionnent donc plus dans leur conception originelle.

Ce tutoriel vise à reconcevoir les webradios LIVERADIO Vintage pour permettre d'écouter tout type de station web disponible dans le monde entier.

Connecteur Raspberry <-> PCB Liveradio

F5OFM8VMHMCJP9G.jpg
Capture d&rsquo;&eacute;cran 2025-11-13 105425.jpg
Capture d&rsquo;&eacute;cran 2025-11-13 115452.jpg
Capture d&rsquo;&eacute;cran 2025-11-13 114026.jpg
Capture d&rsquo;&eacute;cran 2025-11-13 115400.jpg
FKANPCUMHMCJR71.jpg

Fabriquer l'interface de connexion entre le Raspberry, l'écran LCD et le circuit imprimé de la LIVERADIO. Pour cela, il faut relier les connecteurs respectifs (connecteur 2x20 broches mâle pour le Raspberry, connecteur mâle 4 broches pour l'écran et connecteur 2x6 broches mâle + 2 broches[broches 52 et 53] pour le circuit imprimé) par 2 câbles de 9 brins d'environ 15cm chacun. Voir les tables de correspondance entre broches de connecteurs. Il faut également connecter un câble supplémentaire entre la broche 2 du Raspberry et la borne Vcc de l'ampli audio (fil orange, photo connecteur) et les 2 brins restant du câble 2 reliant respectivement les broches 4 et 6 du connecteur de Raspberry à la borne +Vcc 5v de l'entrée sur la carte interface de la LIVERADIO et la la masse de cette même carte (voir plus bas)..

Modifications Physiques Des Circuits Imprimés

Image1.jpg
Image1.jpg
Image1.jpg

Retirer la carte processeur de la LIVERADIO.

Retirer l'écran LCD d'origine.

Découper la carte interface de la LIVERADIO comme indiqué sur la photo, selon les pointillés (approximativement). Egalement effectuer un trait de scie juste en dessous des 4 points de soudure de l'embase du slot USB.

Ajouter un cavalier pour relier les broches des rangées 3 et 4 du CI de la LIVERADIO.

Modification Du Circuit Imprimé De La Façade Arrière (carte Interface).

PXL_20251024_185843009.jpg

Souder un câble USB aux 4 points de soudure de l'embase USB de la carte interface en appariant les 4 brins USB : Gnd,+5V, Data+ et Data-. La fiche USB mâle de l'autre extrémité sera par la suite reliée à l'une des 4 sorties USB du Raspberry.

Relier les bornes de sortie RCA Gauche et Droite entre elles (sortie Mono) et souder un câble reliant ces 2 sorties à l'entrée de l'ampli.

Relier les points de soudure du slot jack d'alim d'entrée +5V et Gnd aux 2 brins du câble 2 reliés respectivement aux broches 4 et 6 du connecteur de Raspberry (voir step 1).

ATTENTION, APRES RECONCEPTION LA LIVERADIO DOIT ETRE ALIMENTEE EN 5V ET NON PLUS EN 12V.

Installation Du Nouvel Ecran LCD OLED

PXL_20251025_193022352.jpg

Coller l'écran à l'intérieur de la façade avant de la LIVERADIO, de façon à ce qu'il soit centré par rapport à la fenêtre transparente de la radio.

Souder un câble à 4 brins aux bornes GND, Vdd, SDA et SDL de l'écran. A l'autre extrémité, relier les 4 brins à un connecteur mâle à 4 broches de façon à ce que les 4 broches de l'écran soient appairées avec le connecteur LCD femelle du step 1.

Sortie Audio Du Raspberry

Image1.jpg
Image2.jpg

Souder un câble à la sortie Droite du jack audio (indifféremment jack stéréo ou jack stéréo + micro) et l'autre à sa masse.

Relier la sortie Droite à la borne Rin de l'ampli et la masse à la borne Gnd de l'ampli.

Souder également le fil issu de la borne RCA de la carte d'interface à la borne Rin de l'ampli. En fait, la sortie Droite de l'audio est ainsi connectée à la sortie mono RCA.

Souder le fil relié à la broche 2 du Raspberry à la borne Vcc de l'ampli.

Relier les bornes Rout+ et Rout- aux 2 bornes du haut-parleur.

Connexion Des Composants

PXL_20251110_142217951.jpg

Le connecteur fabriqué au step 1 est branché sur le Raspberry en respectant scrupuleusement le sens (broches 1 et 2 vers le bord du Raspberry, broches 39 et 40 vers le slot USB), puis il doit être branché à l'écran LCD OLED.

Le jack audio est introduit dans la sortie audio du Raspberry.

La prise USB reliant la carte interface au Raspberry est insérée dans l'un des 4 slots USB.

Le Raspberry est maintenu par une vis sur le cadre en bois de la LIVERADIO.

Configuration Logicielle Du Raspberry

Capture d&rsquo;&eacute;cran 2025-11-19 095141.jpg
Capture d&rsquo;&eacute;cran 2025-11-19 095249.jpg

Installer raspian 64 bits :

Télécharger RaspBerry Pi Imager v1.8.5 sur un PC hôte et insérer la carte SD du Raspberry dans un lecteur connecté au PC.

Lancer RaspBerry Pi Imager :

Modèle de Raspbery Pi : Raspberry Pi 3

OS : RaspBerry Pi OS (64 bit)

Stockage : MASS STORAGE DEVICE USB


modifier les réglages

Nom d'utilisateur : pierre

mot de passe : topgun12

remplir SSID et mot de passe du Wi-Fi courant et cliquer sur Configurer le Wi-Fi, puis lancer l'écriture de l'OS sur la carte SD.


Se connecter à distance sur le Raspberry :

>ssh pierre@IP

avec IP=192.168.1.18 par exemple

le mot de passe est demandé pour se connecter.


Mettre à jour l'OS :

Pour connaitre l'IP du Raspberry se connecter à la page d'administration de la LIVEBOX en tapant 192.168.1.1 dans la barre de recherche du navigateur web.

Cliquer sur 'appareils connectés' et sélectionner l'icône correspondant au Raspberry. Dans la liste de ses propriétés un champ spécifie l'IP. Par exemple 192.168.1.18


Ouvrir une fenêtre de commandes DOS : dans la case Rechercher de la barre Windows, taper cmd puis sur 'Invite de commandes'.

mise à jour de l'OS du Raspberry :

>sudo apt-get update
>sudo apt-get upgrade
>sudo reboot


Sélectionner la carte audio comme sortie audio par défaut :

taper :

>aplay -l

si la carte hdmi (vc4-hdmi) est répertoriée comme card0, taper :

>sudo nano /etc/asound.conf

écrire les 2 lignes dans le fichier qui normalement doit être vide :

defaults.pcm.card 1
defaults.ctl.card 1

puis sauvegarder :

Ctrl S

Ctrl X


Activer le mode Mono

>sudo raspi-config

sélectionner advanced options/audio config/pulseaudio

sauvegarder en sortant du menu de config

>pacmd list-sinks | grep name

copier le nom du device (sans les crochets) : par exemple alsa_output.platform-bcm2835_audio.analog-stereo

> sudo nano /etc/pulse/default.pa

Ajouter dans le fichier les 2 lignes :

load-module module-remap-sink sink_name=mono master=alsa_output.platform-bcm2835_audio.analog-stereo channels=2 channel_map=mono,mono
set-default-sink mono

(adapter au nom du device)

Pour tester :

>ffplay http://direct.fipradio.fr/live/fip-midfi.mp3


Installer la bibliothèque python-vlc :

>pip install python-vlc --break-system-packages

En cas de problème dû à la l'utilisation de VLC, une solution peut être d'installer ou réinstaller les codes mpeg :

>sudo apt install ffmpeg -y


Régler le volume par défaut :

>sudo alsamixer

Utiliser les flèches pour augmenter/diminuer le volume

Ouvrir un second terminal de commande et taper :

>sudo alsactl store


Configurer la télécommande :

>sudo nano /boot/firmware/config.txt

ajouter la ligne :

dtoverlay=gpio-ir,gpio_pin=24
>sudo reboot
>sudo apt-get install ir-keytable
>sudo pip3 install evdev --break-system-packages
>sudo apt-get install evtest

pour utiliser la télécommande d'origine, configurer :

>sudo ir-keytable -p rc-5 -s rc1

pour utiliser une télécommande CALIBER :

>sudo ir-keytable -p nec -s rc1

en supposant la carte audio référencée comme rc1 et pas rc0.

pour tester la télécommande :

>sudo evtest

Sélectionner la sortie audio parmi celles proposées (normalement 2, la sortie HDMI et la carte audio), puis cliquer sur un bouton de la télécommande. Le programme doit alors retourner l'indice de la touche sélectionnée.


Configuration de l'écran LCD OLED :

>pip3 install adafruit-circuitpython-ssd1306 --break-system-packages


Configuration du service météo :

>pip install openmeteo-requests --break-system-packages
>pip install pandas --break-system-packages
>pip install requests-cache --break-system-packages
>pip install retry-requests --break-system-packages


Configuration du démarrage automatique :

>crontab -e

ajouter à la fin du fichier la ligne :

@reboot sleep 60 && python bbdradio.py


Fichiers systèmes et configuration :

A l'aide d'un client FTP, comme par exemple FileZilla, ou de la commande scp copier les fichiers suivants (disponibles sur le Git LIVERADIO) dans le répertoire /home/pierre :

  1. bbdradio.py
  2. get_ip.sh
  3. get_usb_dev.sh
  4. remote_nec.sh
  5. remote_rc5.sh
  6. logo.jpg
  7. logo_connected.jpg
  8. bing-crosby-do-you-hear-what-i-hear-alarm-clock-version-181259.mp3
  9. composition Theodor.mp3
  10. daybreak-melody-224635.mp3
  11. der-tag-130417.mp3
  12. early-morning-rise-224637.mp3
  13. hello-dawn-morning-awakening-sounds-9680.mp3
  14. jingle-bells-alarm-clock-version-129333.mp3
  15. kirby-alarm-clock-127079.mp3
  16. lullaby-children-inspirational-164248.mp3
  17. Miles Davis - Jean Pierre.mp3
  18. morning-serenity-224636.mp3
  19. rage-141804.mp3
  20. short-nightmare-2019-electronic-ver-190006.mp3
  21. unpacking-version-60s-9719.mp3
  22. wake-me-up-9886.mp3


copier dans /home/pierre le fichier texte data.ini contenant :


[STREAMS]
nb = 22
url1 = http://direct.fipradio.fr/live/fip-midfi.aac
url2 = https://icecast.unitedradio.it/Radio105.mp3
url3 = http://radiocaroline.ice.infomaniak.ch/radiocaroline-128.mp3
url4 = http://stream.europe1.fr/europe1.mp3
url5 = http://icecast.radiofrance.fr/franceinter-midfi.mp3
url6 = http://direct.francebleu.fr/live/fblorrainenord-midfi.mp3
url7 = http://icecast.radiofrance.fr/franceculture-midfi.mp3
url8 = http://icecast.radiofrance.fr/francemusique-midfi.mp3
url9 = http://live.aurafm.org/DeclicRADIO
url10 = https://scdn.nrjaudio.fm/adwz2/fr/30401/mp3_128.mp3
url11 = http://icecast.radiofrance.fr/franceinfo-midfi.mp3
url12 = http://jazzradio.ice.infomaniak.ch/jazzradio-high.mp3
url13 = http://icecast.radiofrance.fr/fipsacrefrancais-midfi.mp3
url14 = http://icecast.radiofrance.fr/fipjazz-midfi.mp3
url15 = http://icecast.radiofrance.fr/fipgroove-midfi.mp3
url16 = http://icecast.radiofrance.fr/fipelectro-midfi.mp3
url17 = http://icecast.radiofrance.fr/fipnouveautes-midfi.mp3
url18 = http://icecast.radiofrance.fr/fippop-midfi.mp3
url19 = http://direct.fipradio.fr/live/fiprock-midfi.mp3
url20 = http://icecast.radiofrance.fr/fipreggae-midfi.mp3
url21 = http://icecast.radiofrance.fr/francemusique-midfi.mp3
url22 = https://mediaserv73.live-streams.nl:18058/stream

lbl1 = FIP
lbl2 = UNITED Radio
lbl3 = CAROLINE
lbl4 = EUROPE 1
lbl5 = FRANCE INTER
lbl6 = FRANCE BLEU
lbl7 = FRANCE CULTURE
lbl8 = FRANCE MUSIQUE
lbl9 = RADIO DECLIC
lbl10 = RIRE & CHANSON
lbl11 = FRANCE INFO
lbl12 = JAZZ RADIO
lbl13 = FIP VARIETE FRANCAISE
lbl14 = FIP JAZZ
lbl15 = FIP GROOVE
lbl16 = FIP ELECTRO
lbl17 = FIP NOUVEAUTES
lbl18 = FIP POP
lbl19 = FIP ROCK
lbl20 = FIP REGGAE
lbl21 = FRANCE MUSIQUE
lbl22 = ANCIENT FM


[RADIO SETTINGS]
volume = 97

pin_sw=17
pin_clk=10
pin_dt=25

pin_30=8
pin_31=11
pin_32=7
pin_33=9
pin_34=27
pin_35=23
pin_39=24
index = 0

WIRING=GENUINE

[ALARM]
set = 0
hour = 5
min = 35
source = jingle-bells-alarm-clock-version-129333.mp3
lundi=1
mardi=1
mercredi=1
jeudi=1
vendredi=1
samedi=0
dimanche=0

[WIFI]
SSID=your_SSID
PASSWD=your_PASSWD

[REMOTE]
PRTCL=rc-5

[LCD]
DISPLAY=I2C

[METEO]
LOCATION=paris


La liste des stations de radios proposées à l'écoute peut être modifiée. Il faut qu'à chaque adresse IP spécifiée par urlXX soit associé un nom lblXX et mettre à jour le nombre total de stations radios nb=XXmax. Si par exemple la liste comporte 20 stations et le paramètre nb vaut 19, seules les 19 premières stations seront proposées à l'écoute.


Créer le répertoire /home/pierre/meteo_icons :

>sudo mkdir /home/pierre:meteo_icons

recopier tous les fichiers image du dossier source dans ce répertoire.


Créer le répertoire /home/pierre/usb_disk_mount :

>sudo mkdir /home/pierre/usb_disk_mount


Eteindre la radio (bouton ON/OFF) et la rallumer.

Documentation

Avec la LIVERADIO ainsi rénovée, il est possible d'écouter toutes les radios internet du monde entier + fonction alarme réveil intelligente + lecture fichiers .mp3 + météo sur 10 jours.

Boutons et télécommande d'origine fonctionnels.

Voir notice

Downloads

Plus Loin

Capture d&rsquo;&eacute;cran 2025-11-17 093708.jpg
Capture d&rsquo;&eacute;cran 2025-11-17 105205.jpg
Capture d&rsquo;&eacute;cran 2025-11-19 110805.jpg

Pour les puristes souhaitant conserver l'écran LCD d'origine, un driver python est disponible ici. Il faut cependant savoir que cet écran nécessite une double alimentation (pour le rétro éclairage) en 3.3 V et en 12 V. Il faudrait donc aussi ajouter un Module MT3608 Boost DC-DC élévateur 2A 2V-24V

Il est également possible de conserver la FM en utilisant un module récepteur TEA5767 – Module Radio FM stéréo 76-108MHZ

Enfin, l'utilisation d'un écran tactile LCD TFT 480x320, ILI9488 65K couleur permettrait de visualiser des vidéos Youtube. QQ essais infructueux mais solubles à condition d'y passer du temps.

Ressources Techniques

Image3.jpg
Capture d&rsquo;&eacute;cran 2025-11-19 090304.jpg
Capture d&rsquo;&eacute;cran 2025-11-19 090513.jpg

pour tester la connexion Rspi/CI Liveradio, c'est-à-dire le bon fonctionnement des boutons :

GPIOS.py :

import RPi.GPIO as GPIO
import sys
import time
import configparser

config = configparser.ConfigParser()
config.read('data.ini')
dtPin=int(config['RADIO SETTINGS']['pin_dt'])
clkPin=int(config['RADIO SETTINGS']['pin_clk'])
swPin=int(config['RADIO SETTINGS']['pin_sw'])
row_list=[int(config['RADIO SETTINGS']['pin_30']),int(config['RADIO SETTINGS']['pin_31']),int(config['RADIO SETTINGS']['pin_32'])]

source=""

globalCounter = 0
ROTARY_param=[0,0,0,0,-1]

col_list=[int(config['RADIO SETTINGS']['pin_33']),int(config['RADIO SETTINGS']['pin_34']),int(config['RADIO SETTINGS']['pin_35'])]


GPIO.setmode(GPIO.BCM)

GPIO.setup(clkPin, GPIO.IN) # input mode
GPIO.setup(dtPin, GPIO.IN)
GPIO.setup(swPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#define PINs according to cabling
#row_list
#boutons 30,31,32
#col_list
#boutons 33,34,35

# set row pins to output, all to high
for pin in row_list:
GPIO.setup(pin,GPIO.OUT)
GPIO.output(pin, GPIO.HIGH)

#set columns pins to input. We'll read user input here
for pin in col_list:
GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

key_map=[["9","8","7"],\
["6","5","4"],\
["3","2","1"]]

# define Matrix Keypad read function
def Keypad4x4Read(cols,rows):
for r in rows:
GPIO.output(r, GPIO.LOW)
result=[GPIO.input(cols[0]),GPIO.input(cols[1]),GPIO.input(cols[2])]
if min(result)==0:
key=key_map[int(rows.index(r))][int(result.index(0))]
GPIO.output(r, GPIO.HIGH)
return(key)
GPIO.output(r, GPIO.HIGH)

# define swPin read function
def swpinRead():
global ROTARY_param
GPIO.output(int(row_list[0]), GPIO.LOW)
result=GPIO.input(swPin)
if (result==0):
key=0
GPIO.output(int(row_list[0]), GPIO.HIGH)
globalCounter=0
ROTARY_param[4]=0
return(key)
GPIO.output(int(row_list[0]), GPIO.HIGH)

# define Rotary encoder function
def rotaryDeal(arg):
arg[1] = GPIO.input(dtPin)
while(not GPIO.input(clkPin)):
arg[2] = GPIO.input(dtPin)
arg[0] = 1
if arg[0] == 1:
arg[0] = 0
if (arg[1] == 0) and (arg[2] == 1):
arg[3] = arg[3] + 1
if (arg[1] == 1) and (arg[2] == 0):
arg[3] = arg[3] - 1
arg[3]=max(min(arg[3],100),-100)

# main program
while True:
try:
key=Keypad4x4Read(col_list, row_list)
if key != None:
source="clavier"
print("You pressed: "+key+" ; "+source)
time.sleep(0.3)
else:
key=swpinRead()
if key != None:
key=str(key)
ROTARY_param[4]=0
source="Encoder button"
print("You pressed: "+key+" ; "+source)
time.sleep(0.3)
else:
counter=ROTARY_param[3]
rotaryDeal(ROTARY_param)
if not(counter==ROTARY_param[3]):
source="rotary"
key=ROTARY_param[3]
key=str(key)
print("You pressed: "+key+" ; "+source)
time.sleep(0.3)
ROTARY_param[4]=-1
else:
source=""

except KeyboardInterrupt:
GPIO.cleanup()
sys.exit()


pour tester le bon fonctionnement de la carte audio :

test_vlc.py :

import vlc

url ="http://direct.fipradio.fr/live/fip-midfi.aac"
player = vlc.MediaPlayer()
player.set_mrl(url)
player.play()
while 1:
pass


pour tester le bon fonctionnement de l'écran LCD OLED :

test_OLED.py :

import time
from PIL import Image, ImageDraw,ImageFont
import RPi.GPIO as GPIO
from time import sleep
import adafruit_ssd1306
from board import SCL, SDA
import busio

#installer le driver : pip install adafruit-circuitpython-ssd1306 --break-system-packages
#activer le mode i2c : sudo raspi-config

i2c = busio.I2C(SCL, SDA)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)

oled.fill(0) #clear the OLED Display
oled.show()
font=ImageFont.load_default()
width = 128
height = 64

image = Image.open("logo.jpg")
image_r = image.resize((width,height), Image.LANCZOS)
image_bw = image_r.convert("1")
oled.image(image_bw)
draw=ImageDraw.Draw(image_bw)
oled.show()