Last Updated on 7 december 2022 by Syds
Mijn schoonmoeder vertelde tijdens de kerst over haar hobby om oude radio’s te verzamelen en weer werkend te maken. Dat bracht mij op het idee om zo’n kapotte oude radio de 21ste eeuw in te helpen. Uiteraard ben ik niet de eerste die op dat idee gekomen is, op internet zijn legio hobbyprojecten beschreven. De beschrijving van Bob Rathbone’s project is super gedetailleerd en volledig en een prima inspiratiebron. Onderstaand een beschrijving van mijn project.
Mijn opzet is een oude Phillips radio om te bouwen tot een internet radio m.b.v. een Raspberry Pi Zero 2w, de radio dient de volgende kenmerken te hebben:
Kan met de knoppen aan de voorkant van de radio bedient worden, waaronder:
- Volume/Mute
- Toon
- Preset channel
- Menukeuze
- Heeft een aan-uit schakelaar
Kan via een app bedient worden
Kan via een webpagina bedient worden
Kan met een afstandsbediening bedient worden
- Beschikt over de volgende in- en uitgangen
- USB-aansluiting
- RCA en/of S/PDIF aansluiting (voor aansluiten van een versterker)
- Beschikt over (stereo) luidsprekers
Kan muziek van zowel streamingsdiensten als Spotify en Youtube afspelen (DLNA/UPnP-AV)
Kan muziek van internet kanalen zoals 100% NL, Waterstad FM, Sky radio etc. afspelen
- Kan muziek vanaf een NAS afspelen
- Kan muziek vanaf een USB stick afspelen
Kan op TV worden aangesloten voor OSD (OnScreen Display)
Optioneel: Kan als Bluetooth speaker worden gebruikt
Optioneel: Kan muziek via AirPlay afspelen
Bij het draaien aan de tuning knop beweegt de aanwijzer nog steeds, en scroll je door de preset channels
Links:
https://www.bobrathbone.com/raspberrypi/documents/Raspberry%20PI%20Vintage%20Radio.pdf
https://www.bobrathbone.com/raspberrypi/documents/Raspberry%20PI%20Radio%206.x.pdf
Van mijn schoonmoeder heb ik een Phillips BX310 A/53 bakelieten radio cadeau gekregen. Een redelijk complete beschrijving van dit apparaat kun je vinden op https://www.techniekvantoen.nl/philips-bx-310a/



Het apparaat stamt uit 1952 en zal de basis van mijn project vormen.
Onderdelenlijst:
Onderdeel | Aantal | Prijs | Webshop |
Raspberry Pi Zero 2W | 1 | € 17,95 | SOS Solutions |
HiFiBerry DAC+ Zero | 1 | € 14,90 | SOS Solutions |
Sandisk High endurance 32Gb Micro- SD-card | 1 | € 10,90 | Dataio.nl |
2.5 inch 15W 4 Ohm luidsprekers | 2 | € 21,36 | Aliexpress |
Velleman Stereo versterkermodule 2x30W VM113 | 1 | € 24,10 | Opencircuit.nl |
VCM 50/2/12 Printtransformator 1 x 230 V 2 x 12 V/AC 50 VA 2.08 A | 1 | € 23,99 | Conrad.nl |
PCB Protoboard 9x15cm | 1 | € 0,24 | Aliexpress |
PCB Protoboard 5x7cm | 1 | € 0,70 | Aliexpress |
C&K Components A12515RNZQ Rotary switch | 1 | € 5,46 | Farnell |
PEC11R-4215F-N0012 BOURNS Rotary encoders | 2 | € 4,19 | TME |
Lineaire Dual Potentiometer 100K | 1 | € 3,69 | Aliexpress |
Askoppeling 6 op 6mm | 4 | € 3,68 | Aliexpress |
Asverlenging 6mm | 4 | € 3,37 | Reichelt.nl |
40 voudige ribbon cable | 1 | Uit rommelbak (van oude PC diskdrive of dvd-speler oid) | |
40 Pins (2×20) Male/Male Headers | 1 | € 2,94 (5) | Aliexpress |
Extra Lange Stacking Header 2x20p | 1 | € 1,82 | Aliexpress |
GPIO extender | 1 | € 5,95 | KiWi electronics |
Schakelaar + AC aansluiting + zekering | 1 | € 1,38 | Aliexpress |
Male 2 pin PCB mount connectors | 5 | € 1,52 (50-stuks) | Aliexpress |
Female 4 pin PCB connectors 30cm | 2 | € 2,52 (10-stuks) | Aliexpress |
Female 2 pin PCB connectors 30cm | 1 | € 2,28 (10-stuks) | Aliexpress |
16 pin male in-line PCB mount connector | 1 | € 2,95 | Aliexpress |
Stereo jack plug socket | 1 | Van sloop thin-client PC | |
2x RCA-male Tulp audio kabel naar 3.5mm Jack male 0,5m | 1 | € 2,99 | Aliexpress |
Tulp chassisdeel-rood/zwart | 1 | € 2,34 (2-stuks) | Aliexpress |
RGB led | 1 | € 0,40 | Reichelt.nl |
VS1838B IR Receiver | 1 | Uit voorraad | |
220 Ohm weerstand | 3 | € 2,30 (50-stuks) | Aliexpress |
100 Ohm weerstand | 1 | Uit voorraad | |
47 Ohm weerstand | 1 | Uit voorraad | |
IN4148 diodes | 2 | Uit voorraad | |
2-voudige terminal pcb mount | 1 | € 0,07 (20-stuks) | Aliexpress |
Mean Well 1RM-15-5 220v-5v 3A PCB voeding | 1 | € 14,99 | Conrad.nl |
Tulp audio kabel | 1 | Uit rommelbak | |
M2 12mm boutjes en moeren | 4 | Uit voorraad | |
Totaal | € 181,52 |
Benodigdheden
- Laptop/Desktop met (Micro)SD kaartlezer
- Optioneel bij Airplay: IOS device zoals een Ipad of IPhone
- Optioneel bij Bluetooth speaker: Mobiele telefoon of tablet met bluetooth
- Verloopkabel of -adapter HDMI naar HDMI-stekker D micro
- USB-C male naar USB-A female adapter (of de USB Mini HUB OTG van hierboven)
- Toetsenbord met USB-A aansluiting
- Muis met USB-A aansluiting
- Monitor met HDMI-aansluiting
- Papiersnijder en/of schaar
- Papierlijm en plakband
- Meetlint
- Viltstift
- (Digitale) schuifmaat
- Boormachine, 4, 7 en 10 mm staal boren
- Popnageltang + 4mm popnagels
- Flex
- Metaalvijl
- Krimpkous + Föhn
- Jumperkabeltjes 10 en 30cm
Stap 1. Raspbian op de Micro SD kaart installeren en configureren
Download de Raspberry Pi Imager van https://downloads.raspberrypi.org/imager/imager_latest.exe, en open de exe. De installatie wizard van de Imager tool start. Klik op “Installeren”, en daarna op “Voltooien”

De Imager tool start en je krijgt een melding met de vraag of de Raspberry Pi imager wijzigingen op je apparaat mag aanbrengen, bevestig dit met “Ja

Daarna verschijnt de user-interface van de imager tool

Plaats de lege SD-Card in je kaartlezer. Kies bij “Besturingssysteem” voor “Raspberry PI OS (32-BIT)” en bij “Opslagapparaat” de SD-Card die je net geplaatst hebt. Klik daarna op “Schrijf”, en Raspbian wordt op je SD-Card geïnstalleerd.

Haal nadat de Imager tool klaar is, sluit de Imager tool en haal de SD-kaart uit je Laptop/Desktop en schuif hem in de Raspberry Zero 2W

Sluit Toetsenbord, Muis en Monitor aan. (De Raspberry Zero ondersteund ook Bluetooth, dus je kunt ook een Bluetooth toetsenbord en muis gebruiken. Maar om die in te kunnen stellen zul je toch eerst met een USB-A variant aan de slag moeten). Sluit de Raspberry Zero met een voeding van minimaal 5.2v en 2.5A (gebruik hier bij voorkeur een officiele Raspberry Pi voeding) aan op het lichtnet. Raspbian start nu op in Desktop mode. Log in met username “pi” en wachtwoord “raspberry”.

Automatisch start de “Welkom bij Raspberry Pi” installatie wizard op

Klik op “Next”, en stel je Land, Taal en TimeZone in

Verander nu het wachtwoord van de user “pi”
Selecteer het WiFi netwerk en vul het WiFi password in

Laat de Raspberry Zero de updates van Raspbian downloaden en installeren
En klik tenslotte op “Restart” om de setup af te ronden

Enable eventueel SSH volgens de tutorials op https://phoenixnap.com/kb/enable-ssh-raspberry-pi#ftoc-heading-1
Maak met een terminal programma, bijv. Putty, connectie met de Raspberry Zero 2W. Achterhaal hiervoor het ip-address van je Raspberry Zero 2W van je router of dhcp-server, of open op de desktop van de Raspberry Zero een terminalvenster en gebruik het commando ipconfig om het ip-address te achterhalen.
In mijn geval heb ik er voor gekozen om SSH te activeren op de Raspberry Zero 2W volgens de beschrijving op https://phoenixnap.com/kb/enable-ssh-raspberry-pi#ftoc-heading-3
En maak verbinding met de Raspberry Zero m.b.v. de volgende putty settings, de eerste keer dat je via SSH connectie maakt moet je bevestigen dat de fingerprint van de Raspberry Zero toegevoegd wordt aan het register, bevestig dit met “Ja”

Log in met user pi en het wachtwoord wat je eerder ingegeven hebt. We gaan nu nog een paar zaken configureren, zoals de hostnaam en (optioneel) syslog, voer hiervoor de volgende commando’s uit
$ sudo vi /etc/hostname
Verander de hostname “raspberrypi” naar een naam van je keuze, in mijn geval “radio”, en sla de file op. Verander tevens in /etc/hosts de hostname achter 127.0.0.1 (zogenaamde localhost)
$ sudo vi /etc/hosts
Die ziet er dan als volgt uit
pi@raspberrypi:~ $ cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 radio
Voeg tot slot de hostname toe aan de dhcp-client configuratie file /etc/dhcpcd.conf, dit onder “# define static profile”
$ sudo vi /etc/dhcpcd.conf
Die ziet er dan als volgt uit
$ cat /etc/dhcpcd.conf # A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. # Allow users of this group to interact with dhcpcd via the control socket. #controlgroup wheel # Inform the DHCP server of our hostname for DDNS. hostname # Use the hardware address of the interface for the Client ID. clientid # or # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. # Some non-RFC compliant DHCP servers do not reply with this set. # In this case, comment out duid and enable clientid above. #duid # Persist interface configuration when dhcpcd exits. persistent # Rapid commit support. # Safe to enable by default because it requires the equivalent option set # on the server to actually work. option rapid_commit # A list of options to request from the DHCP server. option domain_name_servers, domain_name, domain_search, host_name option classless_static_routes # Respect the network MTU. This is applied to DHCP routes. option interface_mtu # Most distributions have NTP support. #option ntp_servers # A ServerID is required by RFC2131. require dhcp_server_identifier # Generate SLAAC address using the Hardware Address of the interface #slaac hwaddr # OR generate Stable Private IPv6 Addresses based from the DUID slaac private # Example static IP configuration: #interface eth0 #static ip_address=192.168.0.10/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 #static routers=192.168.0.1 #static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 # It is possible to fall back to a static IP if DHCP fails: # define static profile #profile static_eth0 #static ip_address=192.168.1.23/24 #static routers=192.168.1.1 #static domain_name_servers=192.168.1.1 hostname radio.sydspost.nl # fallback to static profile on eth0 #interface eth0 #fallback static_eth0
reboot de Raspberry Zero met
$ sudo reboot
Maak opnieuw verbinding met de Raspberry Zero in putty door voor de optie “Restart Session” te kiezen, en log opnieuw in als user pi. Als alles goed is gegaan zie je dat de prompt is aangepast naar: pi@radio:~ $.
Optioneel kun je de systeem logging van de Raspberry Zero naar een centrale syslog server laten zenden, zie ook mijn tutorial “Syslog server inrichten“. Standaard is rsyslog al geïnstalleerd binnen de Raspbian image en behoeft alleen nog geconfigureerd te worden. Volg hiervoor stap 3. van voorgenoemde tutorial, dus:
$ sudo vi /etc/rsyslog.conf
Voeg nu onderstaande regel toe boven in de file, net onder de eerste uitgecommentarieerde regels:
@@<ip-address syslog server>:<poortnummer>
In mijn geval dus @@192.168.2.29:514, de eerste 5 regels van de file ziet er dan zo uit:
$ cat /etc/rsyslog.conf # /etc/rsyslog.conf Configuration file for rsyslog. # # For more information see # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html @@192.168.2.29:514
Herstart de rsyslog deamon met:
$ sudo systemctl restart rsyslog
Check de /var/log/syslog file op je Centrale syslog-server om te checken of de radio zijn logging doorstuurt naar de centrale Syslog server.
Stap 2. Hifiberry DAC+ Zero monteren en configureren
De bestelde Hifiberry DAC+ Zero is binnengekomen. Om de DAC op de Raspberry Pi Zero te kunnen monteren tevens een 40-pin femaleheader met extra lange pins mee besteld. Deze femaleheader eerst op de Raspberry Pi Zero gesoldeerd met de pins naar boven zodat de femaleheader van de DAC hier op geschoven kan worden. Tevens spacers geplaatst tussen de DAC en Raspberry Pi Zero.



Stap 3. Benodigde software installeren
Installeer anacron. Anacron wordt gebruikt om de playlists gescheduled te updaten, dit om radio streams die niet meer bestaan te detecteren en uit je playlist te halen.
$ sudo apt-get install anacron
Installeer optioneel scratch. Default wordt de radio software met een achtergrond image geleverd. Het installeren van scratch zorgt voor additionele achtergrond images die je kunt activeren in de radio software. Hoe dit in zijn werk gaat leg ik later uit.
$ sudo apt-get install scratch
Nu gaan we de Music Player Daemon (MPD) installeren en de bijbehorende client Music Player Client (MPC), dit inclusief de Python MPD bibliotheek
$ sudo apt-get install mpd mpc python3-mpd
(Optioneel) de volgende bibliotheken installeren, zover die nog niet geïnstalleerd zijn
$ sudo apt-get install python2 python3-rpi.gpio pip
En installeren we de radio software van Bob Rathbone
$ wget https://bobrathbone.com/raspberrypi/packages/radiod_7.4_armhf.deb $ sudo dpkg -i radiod_7.4_armhf.deb
Indien dpkg de volgende foutmelding geeft “Package python is not installed”, voer dan het volgende commando uit om dit te herstellen: sudo apt-get install -f
Het configuratieprogramma wordt automatisch opgestart

Kies voor 1. Replace configuration file, en ga met de tab toets naar “<Ok>” en druk op Enter.

Ik ga mijn radio bedienen met de knoppen voorop het apparaat. Hierbij worden de Volume en Toon knoppen aangesloten op Rotary Encoders, dit ik kies voor optie 2. Radio with Rotary Encoders en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Ik ga standaard Rotary encoders gebruiken, dus kies voor optie 1. Standard rotary encoders with A, B and C inputs only en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Ik gebruik de 40 pins flatcable versie, dus kies voor optie 1. 40 pin version wiring en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Ik ga mijn TV voor Onscreen Display gebruiken, de TV sluit ik aan op de HDMI poort van de Raspberry Zero, dus kies voor optie 5. HDMI or touch screen display en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

En wederom voor optie 5. HDMI television or monitor (800×480) en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Hoewel de Vintage look-alike er mooi is, en goed zou passen bij de oude Philips radio, kies ik voor de functioneel rijkere radio, dus optie 1. Full feature radio en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Kies voor optie 1. Start radio at boot time en Enter, bevestig de vraag “Is this correct?” met “<Ja>”

Voor beeldvullende radio-interface op mijn TV kies ik voor optie 1. Start graphical radio full screen en Enter, bevestig de vraag “Is this correct?” met “<Ja>”. De configuratietool gaat nu even flink aan de slag, en keert terug met het configureren van de Audio interface

Druk op Enter, het volgende scherm verschijnt

Ik gebruik een HiFiBerry DAC+ Zero dus kies voor optie 5. HiFiBerry DAC/Mini-amp/PCM5102A/PCM5100A. Druk op Enter en bevestig de vraag “Is this correct?” met “<Ja>”.

Bevestig de vraag op de Raspberry Pi gereboot dient te worden met “<Yes>”.
Vervolgens kunnen we met aplay -L de aanwezige soundcard configuraties achterhalen
pi@radio:~ $ aplay -L null Discard all samples (playback) or generate zero samples (capture) lavrate Rate Converter Plugin Using Libav/FFmpeg Library samplerate Rate Converter Plugin Using Samplerate Library speexrate Rate Converter Plugin Using Speex Resampler bluealsa Bluetooth Audio Hub jack JACK Audio Connection Kit oss Open Sound System pulse PulseAudio Sound Server upmix Plugin for channel upmix (4,6,8) vdownmix Plugin for channel downmix (stereo) with a simple spacialization sftvol default hw:CARD=sndrpihifiberry,DEV=0 snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0 Direct hardware device without any conversions plughw:CARD=sndrpihifiberry,DEV=0 snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0 Hardware device with all software conversions sysdefault:CARD=sndrpihifiberry snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0 Default Audio Device front:CARD=sndrpihifiberry snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0 Default Audio Device dmix:CARD=sndrpihifiberry,DEV=0 snd_rpi_hifiberry_dac, HifiBerry DAC HiFi pcm5102a-hifi-0 Direct sample mixing device usbstream:CARD=sndrpihifiberry snd_rpi_hifiberry_dac USB Stream Output
De systemdefault is “sysdefault:CARD=sndrpihifiberry”, test of alles goed is aangesloten met (Let op: zonder “CARD=” !). Als het goed is hoor je een vrouwenstem zeggen “Front speaker …”.
pi@radio:~ $ speaker-test -D sysdefault:sndrpihifiberry -t wav -c 1
Vervolgens heb ik dit “adres” van de soundcard opgenomen in de configuratie van MPD en de radio. Voeg onderstaand configuratie-fragment toe aan /etc/mpd.conf
audio_output { type "alsa" name "My ALSA Device" device "sysdefault:sndrpihifiberry" mixer_type "software" ## mixer_device "default" # optional ## mixer_control "PCM" # optional ## mixer_index "0" # optional }
Noot: je kunt meerdere geluidskaarten configureren in mpd.conf, dus er kunnen meerdere instanties van audio_output {} voorkomen.
Vervolgens configureer je in /usr/share/radio/radiod.conf welke geluidskaart definitie uit de mpd configuratie de radio moet gebruiken voor zijn output. Dit doormiddel van het configureren van de parameter : audio_out”. Dit ziet er dan als volgt uit
# Audio output device - Must match an output using the "aplay -l" command # The configure_audio.sh program will set this to headphones(default), HDMI, DAC or USB # depending upon the audio device/card selection. You can override this setting # with your own unique string from the aplay command, for example "HiFiBerry" audio_out="sysdefault:sndrpihifiberry"
Voor een testopstelling gebruik ik m’n Bose Soundtouch. Middels een een 3.5mm jack naar RCA kabel sluit ik de HiFiBerry aan op de AUX-ingang van de Bose Soundtoch. Dit wordt mijn testopstelling om de software in te stellen en te testen.

Om de software te kunnen bedienen nog een bluetooth muis geconfigureerd met
$ sudo bluetoothctl
Agent registered
[bluetooth]#
set de muis in de pairing stand en laat de Raspberry Zero naar bluetooth devices scannen met
[bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:D8:24:3F Discovering: yes [NEW] Device 00:A0:50:93:4B:E0 HwZ_fb1449f749000b2f20 [NEW] Device ED:7E:5A:8E:0C:9F N038L [NEW] Device DC:BC:5B:3D:7D:10 N005J [NEW] Device 9C:30:5B:4F:1F:04 Woonkamer-TV [NEW] Device 1C:1A:DF:E9:07:3E Microsoft Sculpt Comfort Mouse
Je ziet mijn Microsoft Sculpt Comfort Mouse als nieuw bluetooth apparaat verschijnen, pair dit apparaat met het mac-address ( in mijn geval 1C:1A:DF:E9:07:3E ) van de muis
[bluetooth]# pair 1C:1A:DF:E9:07:3E
Attempting to pair with 1C:1A:DF:E9:07:3E
[CHG] Device 1C:1A:DF:E9:07:3E Connected: yes
[CHG] Device 1C:1A:DF:E9:07:3E Modalias: usb:v045Ep07A2d0129
[CHG] Device 1C:1A:DF:E9:07:3E UUIDs: 00001000-0000-1000-8000-00805f9b34fb
[CHG] Device 1C:1A:DF:E9:07:3E UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 1C:1A:DF:E9:07:3E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 1C:1A:DF:E9:07:3E ServicesResolved: yes
[CHG] Device 1C:1A:DF:E9:07:3E Paired: yes
Pairing successful
[CHG] Device 1C:1A:DF:E9:07:3E WakeAllowed: yes
[CHG] Device 1C:1A:DF:E9:07:3E ServicesResolved: no
[CHG] Device 1C:1A:DF:E9:07:3E Connected: no
de muis is nu gepaired met de Raspberry Zero, maar moet nu nog geconnect en getrust worden met
[bluetooth]# connect 1C:1A:DF:E9:07:3E [CHG] Device 1C:1A:DF:E9:07:3E Class: 0x00000580 [CHG] Device 1C:1A:DF:E9:07:3E Icon: input-mouse [CHG] Device 1C:1A:DF:E9:07:3E Connected: yes [bluetooth]# trust 1C:1A:DF:E9:07:3E Changing 1C:1A:DF:E9:07:3E trust succeeded [Microsoft Sculpt Comfort Mouse]# exit
De testopstelling is hiermee compleet.
Stap 3. Configuratie IR-ontvanger
Om de radio te kunnen bedienen kun je natuurlijk de knoppen icm met OSD gebruiken of een app. Maar een afstandsbediening is wel zo gemakkelijk. Ik kon nog net op tijd een WD TV Live afstandsbediening uit de prullenbak redden die mijn vrouw in haar opruimwoede had weggegooid. Deze ga ik inzetten als afstandsbediening.

Voordat we de benodigde software gaan installeren en configureren heb ik eerst een proefopstelling gemaakt met een VS1838B IR ontvanger, breadboard en Raspberry Zero. De pinout is als volgt
Raspberry Zero | VS1838B | Toelichting |
3.3v | VCC | |
GND | GND | |
GPIO 25 | Signal |


De proefopstelling ziet er als volgt uit

Nu gaan we de software installeren, start de configuratie wizard op met
sudo /usr/share/radio/configure_ir_remote.sh
De wizard start met het volgende scherm, kies optie 1. “Run IR remote control configuration” en druk op “OK”

Kies optie 1. Raspbian Buster or later” en druk op “Ok”, op de vraag “Is this correct” bevestig dat met “Yes”

Kies bij op welke GPIO de IR ontvanger is aangesloten voor optie 5. “All versions using DAC GPIO 25” en druk op “Ok”

Kies bij IR Activity led voor optie 2. “All designs using DAC sound card GPIO 16 (pin 36)”. Druk op “Ok”

De configuratie wizard installeert nu een flink aan bibliotheken en software modules, de installatie sluit af met
Configuration of LIRC completed OK Reboot the system and then run the following to configure your IR remote control sudo irrecord -f -d /dev/lirc0 ~/lircd.conf Then copy your configuration file (myremote.conf) to /etc/lirc/lircd.conf.d sudo cp myremote.conf /etc/lirc/lircd.conf.d/. Reboot the Raspberry Pi A log of this run will be found in /usr/share/radio/install_ir.log
Reboot de Raspberry Zero
$ sudo reboot
Nadat de Raspberry Zero opnieuw opgestart is, check of LIRC goed draait met
$ sudo systemctl status lircd ● lircd.service - Flexible IR remote input/output application support Loaded: loaded (/lib/systemd/system/lircd.service; enabled; vendor preset:> Active: active (running) since Mon 2022-01-03 18:54:38 CET; 39s ago TriggeredBy: ● lircd.socket Docs: man:lircd(8) http://lirc.org/html/configure.html Main PID: 486 (lircd) Tasks: 2 (limit: 409) CPU: 36ms CGroup: /system.slice/lircd.service └─486 /usr/sbin/lircd --nodaemon
Als LIRC goed is opgestart kunnen we nu de afstandsbediening en IR ontvanger testen met
$ sudo mode2 --raw -d /dev/lirc0
Using driver default on device /dev/lirc0 Trying device: /dev/lirc0 Using device: /dev/lirc0 Running as regular user pi
Druk nu een toets van de afstandsbediening in, je krijgt nu een response als hieronder staand
Using raw access on device /dev/lirc0 Using device: /dev/lirc/0 Running as regular user pi code: 0xffffff00 code: 0x2fdf0a00 code: 0x4b230001 code: 0x23110000 code: 0x6a020001 code: 0x17020000 code: 0x68020001 code: 0x18020000 code: 0x4d020001 code: 0x83060000 code: 0x6a020001 code: 0x17020000 code: 0x81020001 code: 0xfe010000 code: 0x4d020001 code: 0x36020000 code: 0x16020001 code: 0x82020000 code: 0x52020001 code: 0x67060000 code: 0x2c020001 code: 0xa0060000 code: 0x65020001 code: 0x1a020000 code: 0x4f020001 code: 0x35020000 code: 0x14020001 code: 0xb6060000 code: 0x4f020001 code: 0x81060000 code: 0x83020001 code: 0x50060000 code: 0x2e020001 code: 0xa0060000 code: 0x4a020001 code: 0x33020000 code: 0x2e020001 code: 0x9f060000 code: 0x4d020001 code: 0x3e020000 code: 0x0c020001 code: 0xb8060000 code: 0x4d020001 code: 0x33020000 code: 0x4c020001 code: 0x36020000 code: 0x2c020001 code: 0x53020000 code: 0x4e020001 code: 0x36020000 code: 0x67020001 code: 0x18020000 code: 0x4b020001 code: 0x38020000 code: 0x15020001 code: 0xb6060000 code: 0x4f020001 code: 0x31020000 code: 0x4f020001 code: 0x82060000 code: 0x68020001 code: 0x66060000 code: 0x4d020001 code: 0x80060000 code: 0x16020001 code: 0xb7060000 code: 0x4e020001 code: 0x82060000 code: 0x4f020001 code: 0x809c0000 code: 0x3c230001 code: 0xa0080000 code: 0x2d020001 code: 0x09110203
Dat werkt, nu gaan we de IR codes van de WD TV Live afstandsbediening downloaden van sourceforge.net. Op de pagina http://lirc-remotes.sourceforge.net/remotes-table.html vindt je van heel veel afstandsbedieningen de IR codes, die van de WD TV Live afstandsbediening vindt je op https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/wd/KWSB0865F101.lircd.conf. Met wget halen we die op
$ wget https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/wd/KWSB0865F101.lircd.conf?format=raw --2022-01-03 22:28:19-- https://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/wd/KWSB0865F101.lircd.conf?format=raw Resolving sourceforge.net (sourceforge.net)... 204.68.111.105 Connecting to sourceforge.net (sourceforge.net)|204.68.111.105|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] Saving to: ‘KWSB0865F101.lircd.conf?format=raw’ KWSB0865F101.lircd. [ <=> ] 2.17K --.-KB/s in 0s 2022-01-03 22:28:20 (13.5 MB/s) - ‘KWSB0865F101.lircd.conf?format=raw’ saved [2226]
Het bestand wordt opgeslagen met de naam ‘KWSB0865F101.lircd.conf?format=raw’, deze dient hernoemd te worden naar een willekeurige bestandsnaam met de extentie .conf. Ik gebruik de bestandsnaam wdtvlive.lirc.conf
$ mv 'KWSB0865F101.lircd.conf?format=raw' wdtvlive.lircd.conf
Kopieer dit file vervolgens naar de directory /etc/lirc/lircd.conf.d en herstart Lirc
$ sudo cp wdtvlive.lircd.conf /etc/lirc/lircd.conf.d/wdtvlive.lircd.conf $ sudo systemctl restart lircd
We gaan nu de afstandsbediening opnieuw testen met irw
$ irw
Druk een toets op de afstandsbediening in, en het systeem reageert met
$ irw 00000000219e10ef 00 KEY_ENTER WDTVLive 00000000219ea05f 00 KEY_UP WDTVLive 00000000219e00ff 00 KEY_DOWN WDTVLive
Dat werkt, sluit af met <Ctrl-c>. De standaard toets-indeling en key-benaming van de WDTV wijkt af van de radio software. Dus de file /etc/lirc/lircd.conf.d/wdtvlive.lircd.conf dient aangepast te worden zodat de key-benamingen overeenstemmen met de functies van de radio.
$ sudo vi /etc/lirc/lircd.conf.d/wdtvlive.lircd.conf
Hulptabel die ik daarbij gebruikt heb:
Radio Key Name | Operation | WD-TV Live AB toets | WD-TV IR code HEX |
KEY_VOLUMEUP | Volume up | Right arrow | 249E906F |
KEY_VOLUMEDOWN | Volume down | Left arrow | 249EE01F |
KEY_CHANNELUP | Channel up | Up arrow | 249EA05F |
KEY_CHANNELDOWN:q | Channel down | Down arrow | 249E00FF |
KEY_MUTE | Mute sound | Mute | 249EB24D |
KEY_MENU | Step menu Play selected Load tracks/stations Next menu | Setup | 249E827D |
KEY_UP | Previous artist Toggle source Previous option | << | 249EF807 |
KEY_DOWN | Next artist Toggle source Next option | >> | 249E7887 |
KEY_LEFT | Track up Toggle option | |<< | 249E40BF |
KEY_RIGHT | Track down Toggle option | |>> | 249E807F |
KEY_OK | Step menu Play selected Load tracks/stations Next menu | OK | 249E10EF |
KEY_EXIT | Exit/shutdown | Ȯ | 249E48B7 |
De file /etc/lirc/lircd.conf.d/wdtvlive.lircd.conf komt er dan als volgt uit te zien (de ongebruikte toetsen heb ik uit gecommentarieerd)
$ cat wdtv*.conf # Please make this file available to others # by sending it to <lirc@bartelmus.de> # # this config file was automatically generated # using lirc-0.9.0-pre1(default) on Thu Dec 10 10:11:42 2015 # # contributed by N. Wolf # # brand: WD # model no. of remote control: KWSB0865F101 # devices being controlled by this remote: WD TV Live Streaming Media PLayer WDBHG70000NBK-01 # begin remote name WDTVLive bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 8994 4433 one 592 1654 zero 592 569 ptrail 599 pre_data_bits 16 pre_data 0x219E gap 107534 toggle_bit_mask 0x0 begin codes # KEY_0 0x8877 # KEY_1 0x18E7 # KEY_2 0x9867 # KEY_3 0x708F # KEY_4 0x38C7 # KEY_5 0xB847 # KEY_6 0x7A85 # KEY_7 0xBA45 # KEY_8 0x3AC5 # KEY_9 0xFA05 # KEY_AUDIO 0xB04F # KEY_BACK 0xD827 # KEY_BLUE 0xE817 KEY_CHANNELDOWN 0x00FF KEY_OK 0x10EF KEY_DOWN 0x7887 # KEY_GREEN 0x28D7 # KEY_HOME 0x609F KEY_VOLUMEDOWN 0xE01F KEY_MUTE 0xB24D KEY_RIGHT 0x807F # KEY_ENTER 0x10EF # KEY_OPTION 0x58A7 # KEY_PLAYPAUSE 0x50AF KEY_EXIT 0x48B7 KEY_LEFT 0x40BF # KEY_RED 0xA857 KEY_UP 0xF807 KEY_VOLUMEUP 0x906F # KEY_SEARCH 0xF00F KEY_MENU 0x827D # KEY_STOP 0x20DF # KEY_SUBTITLE 0x30CF KEY_CHANNELUP 0xA05F # KEY_YELLOW 0x6897 end codes end remote
Natuurlijk daarna weer getest met irw, nadat ik eerst de lircd-daemon opnieuw heb opgestart
$ sudo systemctl restart lircd $ irw 00000000219ee01f 00 KEY_VOLUMEDOWN WDTVLive 00000000219e906f 00 KEY_VOLUMEUP WDTVLive 00000000219ea05f 00 KEY_CHANNELUP WDTVLive 00000000219e00ff 00 KEY_CHANNELDOWN WDTVLive 00000000219e10ef 00 KEY_OK WDTVLive 00000000219ef807 00 KEY_UP WDTVLive 00000000219e40bf 00 KEY_LEFT WDTVLive 00000000219e807f 00 KEY_RIGHT WDTVLive 00000000219e7887 00 KEY_DOWN WDTVLive 00000000219e48b7 00 KEY_EXIT WDTVLive 00000000219e827d 00 KEY_MENU WDTVLive 00000000219eb24d 00 KEY_MUTE WDTVLive ^C
Zo dat klopt als een zwerende vinger. Nu starten we de irradiod deamon op en zorgen ervoor dat hij bij het starten van de Raspberry Zero automatisch opstart met
$ sudo systemctl enable irradiod radiod Created symlink /etc/systemd/system/multi-user.target.wants/irradiod.service → /lib/systemd/system/irradiod.service. Created symlink /etc/systemd/system/multi-user.target.wants/radiod.service → /lib/systemd/system/radiod.service. $ sudo systemctl start irradiod radiod
Controleer de status van de irradiod daemon met
$ sudo systemctl status irradiod radiod ● irradiod.service - Radio remote control daemon Loaded: loaded (/lib/systemd/system/irradiod.service; enabled; vendor pres> Active: active (running) since Tue 2022-09-20 13:22:11 CEST; 38min ago Main PID: 457 (python3) Tasks: 1 (limit: 407) CPU: 1.416s CGroup: /system.slice/irradiod.service └─457 python3 /usr/share/radio/remote_control.py nodaemon Sep 20 13:22:11 radio systemd[1]: Started Radio remote control daemon. Sep 20 13:22:14 radio sudo[528]: root : PWD=/ ; USER=root ; COMMAND=/usr/bi> Sep 20 13:22:14 radio sudo[528]: pam_unix(sudo:session): session opened for use> Sep 20 13:22:14 radio sudo[528]: pam_unix(sudo:session): session closed for use> Sep 20 13:22:15 radio sudo[546]: root : PWD=/ ; USER=root ; COMMAND=/usr/bi> Sep 20 13:22:15 radio sudo[546]: pam_unix(sudo:session): session opened for use> Sep 20 13:22:16 radio remote_control.py[547]: Protocols changed to unknown othe> Sep 20 13:22:16 radio remote_control.py[547]: Loaded BPF protocol xbox-dvd Sep 20 13:22:16 radio sudo[546]: pam_unix(sudo:session): session closed for use> ● radiod.service - Radio daemon Loaded: loaded (/lib/systemd/system/radiod.service; enabled; vendor preset> Active: active (running) since Tue 2022-09-20 13:44:44 CEST; 16min ago Main PID: 10891 (python3)
Opstarten van de irradiod- en radiod-daemons gaan goed en geven geen foutmeldingen. Nu testen of het werkt, stop de irradiod-daemon en start remote_control.py handmatig op
$ sudo systemctl stop irradiod $ sudo /usr/share/radio/remote_control.py nodaemon IR Remote control listener running pid 17027 Using pylirc module Protocols changed to unknown other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp cec imon rc-mm Loaded BPF protocol xbox-dvd Listening for input on IR sensor KEY_VOLUMEUP KEY_VOLUMEDOWN KEY_CHANNELUP KEY_CHANNELDOWN KEY_MUTE KEY_MENU KEY_UP KEY_DOWN KEY_LEFT KEY_RIGHT KEY_OK KEY_EXIT ^C('\nStopping remote control pid', 17027) Killed $ sudo systemctl start irradiod
en zowaar het werkt ! In de volgende stap gaan we de led die aangeeft dat de afstandsbediening een signaal stuurt installeren en testen.
Stap 4. Led die ontvangst IR signaal weergeeft installeren en configureren
Eerst de proefopstelling uitbreiden met de rode led en een 100 Ohm weerstand. Dit conform onderstaande pinout
Raspberry Zero | Led | Toelichting |
GND | Cathode (-), korte poot | |
GPIO16 (pin 36) | Anode (+), lange poot | Sluit deze in serie aan met de 100 Ohm weerstand |
Om het softwarematig werkend te krijgen is een aanpassing van de file /usr/share/radio/radiod.conf nodig, de waarde van parameter “remote_led” op regel 65 dient op 16 (GPIO16) gezet te worden
$ sudo vi /usr/share/radio/radiod.conf
dit deel van radiod.conf komt er dan als volgt uit te zien
60 # Output LED for remote control, default GPIO 11 (pin 23) or 61 # GPIO 13 (pin 33) for AdaFruit plate or PiFace CAD (40 pin RPi needed) 62 # Use GPIO 16 (pin 36) for designs using IQAudIO DAC cards etc. 63 # Use GPIO 14 (pin 8) for designs using IQAudIO Cosmic controller 64 # remote_led=0 is no output LED 65 remote_led=16 66
Sla de file op en test de werking met
$ sudo ./remote_control.py flash
Herstart de radiod- en irradiod-daemons om de werking in combinatie met de afstandsbediening te testen
$ sudo systemctl restart irradiod radiod
Stap 6. Bluetooth speaker koppelen
Zover dat je dat bij met koppelen van een bluetooth muis nog niet gedaan hebt, enable de Bluealsa service en start hem op
$ sudo systemctl enable bluealsa $ sudo systemctl start bluealsa
Nu kunnen we de bluetooth speaker koppelen met bluetoothctl
$ sudo bluetoothctl
Agent registered
[bluetooth]#
set de bluetooth speaker in de pairing stand en laat de Raspberry Zero naar bluetooth devices scannen met
[bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:D8:24:3F Discovering: yes [NEW] Device 00:A0:50:93:4B:E0 HwZ_fb1449f749000b2f20 [NEW] Device ED:7E:5A:8E:0C:9F N038L [NEW] Device DC:BC:5B:3D:7D:10 N005J [NEW] Device 9C:30:5B:4F:1F:04 Woonkamer-TV [NEW] Device 3C:A3:08:B2:E5:FB Speaker fitnessruimte
Je ziet mijn Bose soundtouch, met naam “Speaker fitnessruimte” als nieuw bluetooth apparaat verschijnen, pair dit apparaat met het mac-address ( in mijn geval 3C:A3:08:B2:E5:FB ) van de speaker
[bluetooth]# pair 3C:A3:08:B2:E5:FB Attempting to pair with 3C:A3:08:B2:E5:FB [CHG] Device 3C:A3:08:B2:E5:FB Connected: yes [CHG] Device 3C:A3:08:B2:E5:FB Connected: yes [CHG] Device 3C:A3:08:B2:E5:FB Modalias: bluetooth:v009Ep0801d4014 [CHG] Device 3C:A3:08:B2:E5:FB UUIDs: 0000110b-0000-1000-8000-00805f9b34fb [CHG] Device 3C:A3:08:B2:E5:FB UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 3C:A3:08:B2:E5:FB UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 3C:A3:08:B2:E5:FB UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device 3C:A3:08:B2:E5:FB ServicesResolved: yes [CHG] Device 3C:A3:08:B2:E5:FB Paired: yes Pairing successful
de speaker is nu gepaired met de Raspberry Zero, maar moet nu nog geconnect en getrust worden met
[Speaker fitnessruimte]# connect 3C:A3:08:B2:E5:FB Attempting to connect to 3C:A3:08:B2:E5:FB Connection successful [Speaker fitnessruimte]# trust 3C:A3:08:B2:E5:FB [CHG] Device 3C:A3:08:B2:E5:FB Trusted: yes Changing 3C:A3:08:B2:E5:FB trust succeeded [Speaker fitnessruimte]# exit
Je kunt nu het volume instellen met
alsamixer -D bluealsa

Door met de muis op de rood-wit-groene balk te klikken kun je het volume instellen. Een proefbestand afspelen kun je met
aplay -D bluealsa /usr/share/sounds/alsa/Front_Center.wav
Stel nu de audio settings van de radio opnieuw in met
$ sudo /usr/share/radio/configure_audio.sh
en kies voor optie 13 “Bluetooth device” en druk op “<Ok>” en “<Yes>”

Start de radio daarna opnieuw op. En test of de radio het geluid afspeelt via de bluetooth speaker zodra de Raspberry Zero opnieuw is opgestart
Stap 8. Radio configureren als bluetooth speaker
Ja je leest het goed, andersom kan natuurlijk ook. Als de radio straks uitgerust wordt met een paar stevige speakers dan is het ook heel handig om de radio te kunnen gebruiken als bluetooth speaker voor je telefoon of tablet. Dit configureren we als volgt. Zorg er eerst voor dat je Raspberry Zero bluetooth verbinding te vinden is door andere devices, dit doe je met
pi@radio:~ $ bluetoothctl Agent registered [bluetooth]# discoverable on [CHG] Controller B8:27:EB:D8:24:3F Discoverable: yes
Pak nu je telefoon of tablet erbij. In mijn geval gebruik ik een Oneplus 5T android telefoon. Klik op het bluetooth icoontje van je telefoon en klik op “+ Apparaat koppelen”

Het duurt soms even voor dat je radio zichtbaar wordt, even geduld dus, hij verschijnt vanzelf

En daar is hij al, klik op radio en de telefoon probeert te koppelen aan de radio, als de bluetooth-koppelcode getoond wordt, krijg je ook een melding op de desktop van de Raspberry Zero


Op je desktop

Klik op je desktop op “OK” en op je telefoon op “Koppelen”, in je terminal window zie je dat de telefoon gekoppeld wordt
pi@radio:~ $ bluetoothctl Agent registered [CHG] Device 94:65:2D:41:23:0F Connected: no [DEL] Device 94:65:2D:41:23:0F OnePlus 5T [NEW] Device 94:65:2D:41:23:0F OnePlus 5T [CHG] Device 94:65:2D:41:23:0F Modalias: bluetooth:v001Dp1200d1436 [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001103-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001105-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110a-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001112-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001115-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001116-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000111f-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000112d-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000112f-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001132-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001800-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001801-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: fafbdd20-83f0-4389-addf-917ac9dae5b2 [CHG] Device 94:65:2D:41:23:0F ServicesResolved: yes [CHG] Device 94:65:2D:41:23:0F Paired: yes [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001103-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001105-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110a-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110d-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001112-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001115-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001116-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000111f-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000112d-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 0000112f-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001132-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001800-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: 00001801-0000-1000-8000-00805f9b34fb [CHG] Device 94:65:2D:41:23:0F UUIDs: fafbdd20-83f0-4389-addf-917ac9dae5b2 [CHG] Device 94:65:2D:41:23:0F ServicesResolved: no [CHG] Device 94:65:2D:41:23:0F Connected: no
Connect en trust nu de radio en de telefoon met
[bluetooth]# connect 94:65:2D:41:23:0F [CHG] Device 94:65:2D:41:23:0F Connected: yes [OnePlus 5T]# trust 94:65:2D:41:23:0F [CHG] Device 94:65:2D:41:23:0F Trusted: yes Changing 94:65:2D:41:23:0F trust succeeded [OnePlus 5T]# exit
En je telefoon en radio zijn gekoppeld

Stel de radio bluetooth connectie nog even in door achter “radio” op het instellingen icoontje te klikken, en “HD-audio” en “Media-audio” op aan te zetten

Test het uit door bijvoorbeeld een Youtube filmpje te openen (als je even een van de volumeknoppen indrukt zie je dat de media-uitvoer naar bluetooth staat ingesteld), en als alles goed is gegaan hoor je prachtige klanken uit je radio “bluetooth speaker” komen

Stap 7. Airplay installeren en configureren
Om Airplay ondersteuning te installeren start je de configuratie wizard install_airplay.sh
$ sudo /usr/share/radio/install_airplay.sh
De Raspberry Zero staat flink te stampen om alle software componenten te installeren. Vervolgens activeren we de airplay ondersteuning in de radio. Zet hiervoor de parameter airplay op regel 290 op yes
$ sudo vi /usr/share/radio/radiod.conf
dit deel van de configuratiefile ziet er dan als volgt uit
287 [AIRPLAY] 288 289 # Airplay activation yes or no 290 airplay=yes 291 292 # Mixer preset volume for radio and media player if using sound card 293 # Set to 0 if using onboard audio or USB sound dongle. 294 # If using a sound card set to 100% initially and adjust as neccessary 295 # Old name was mixer_volume 296 mixer_preset=100 297
Vervolgens dien je de parameter mixer_volume_id nog van de juiste waarde te voorzien, deze kun je achterhalen met
$ amixer -D sysdefault controls | grep -i volume numid=5,iface=MIXER,name='PCM Playback Volume'
en stel je de waarde van de parameter mixer_volume_id met de waarde 5 in in /usr/share/radio/radiod.conf, dat ziet er dan zo uit (let op, dit deel kan ontbreken in je configuratiefile, voeg dit dan compleet onderin toe)
# Mixer volume ID (Airplay) Use command 'amixer controls | grep -i volume' # to identify mixer volume control ID mixer_volume_id=5
Tot slot zorgen we ervoor dat de ook shairport-sync de default soundcard “sysdefault” gebruikt. Hiervoor openen we de file /etc/shairport-sync.conf, en zoeken naar de parameter group “alsa” onder “// Back End Settings”
$ sudo vi /etc/shairport-sync.conf
Haal het //-teken weg voor output_device en verander “default” in “sysdefault”, dit gedeelte van de configuratiefile ziet er dan als volgt uit
// Back End Settings // These are parameters for the "alsa" audio back end. // For this section to be operative, Shairport Sync must be built with the following configuration flag: // --with-alsa alsa = { output_device = "sysdefault"; // the name of the alsa output device. Use "shairport-sync -h" to discover the names of ALSA hardware devices. Use "alsamixer" or "aplay" to find out the names of devices, mixers, etc. // mixer_control_name = "PCM"; // the name of the mixer to use to adjust output volume. If not specified, volume in adjusted in software.
Zorg dat de airplay ondersteuning automatisch op wordt gestart, en reboot
$ sudo systemctl enable shairport-sync $ sudo systemctl start shairport-sync $ sudo reboot
Pak nu een IOS device erbij en connect via Airplay met de radio. Open het bedieningspaneel op je IOS device (Hoe dat voor jou device werkt kun je naslaan op https://support.apple.com/nl-nl/HT202809), en klik op het Airplay icoon rechtsboven.

Er volgt nu een overzicht van beschikbare airplay apparaten, radio staat daar al tussen, klik die aan en het IOS device maakt verbinding met de radio


Kies nu je favoriete muziek app, bijvoorbeeld Google play, en start audio streaming naar de radio

Stap 8. Webpagina installeren
Altijd handig om als je op afstand van de radio met je laptop zit te werken, en je geen zin hebt om op te staan om de afstandsbediening te pakken of aan de knoppen te draaien, dat je de radio via een webpagina kunnen bedienen. Hiervoor installeren we eerst Apache2 inclusief wat bibliotheken
$ sudo apt-get install apache2 php libapache2-mod-php
En daar Bob Rathbone’s webpagina’s voor radio
$ cd $ wget http://www.bobrathbone.com/raspberrypi/packages/radiodweb_1.9_armhf.deb $ sudo dpkg -i radiodweb_1.9_armhf.deb $ echo 'ServerName radio' >> /etc/apache2/apache2.conf $ sudo systemctl reload apache2
En ta da, je webinterface is klaar

Stap 9. Spotify connect installeren en configureren
Installeer spotify connect met
$ cd $ curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
Open de file /lib/systemd/system/raspotify.service en commentarieer de parameters “Restart” en “RestartSec” uit, voeg tevens achter de parameter “ExecStart=/usr/bin/librespot” de optie “–device=sysdefault:sndrpihifiberry”
$ sudo vi /lib/systemd/system/raspotify.service
Na die aanpassing ziet de file er als volgt uit
[Unit] Description=Raspotify (Spotify Connect Client) Documentation=https://github.com/dtcooper/raspotify Documentation=https://github.com/librespot-org/librespot Documentation=https://github.com/dtcooper/raspotify/wiki Documentation=https://github.com/librespot-org/librespot/wiki/Options Wants=network.target sound.target After=network.target sound.target [Service] DynamicUser=yes SupplementaryGroups=audio # Restart=always # RestartSec=10 # Some of these may be implied by DynamicUser=yes RestrictRealtime=true RestrictSUIDSGID=true RestrictNamespaces=true RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK ProtectHostname=true ProtectControlGroups=true ProtectKernelLogs=true ProtectKernelModules=true ProtectKernelTunables=true ProtectProc=invisible ProtectHome=true ProtectSystem=strict ProtectClock=yes DevicePolicy=strict DeviceAllow=char-alsa rw DeviceAllow=/dev/null r DeviceAllow=/dev/random r DeviceAllow=/dev/urandom r UMask=077 CacheDirectoryMode=0700 CacheDirectory=%N StateDirectoryMode=0700 StateDirectory=%N ConfigurationDirectoryMode=0600 ConfigurationDirectory=%N PrivateTmp=true PrivateUsers=true ProcSubset=pid NoNewPrivileges=true PermissionsStartOnly=true LockPersonality=true MemoryDenyWriteExecute=true RemoveIPC=true CapabilityBoundingSet= #SystemCallArchitectures=native SystemCallFilter=@system-service SystemCallFilter=~@privileged @resources SystemCallErrorNumber=EPERM Environment=LIBRESPOT_NAME="%N (%H)" Environment=LIBRESPOT_CACHE=%C/%N Environment=LIBRESPOT_SYSTEM_CACHE=%S/%N EnvironmentFile=-%E/%N/conf ExecStart=/usr/bin/librespot --device=sysdefault:sndrpihifiberry [Install] WantedBy=multi-user.target
Reload de system deamon’s, en start de raspotify daemon opnieuw op
$ sudo systemctl daemon-reload $ sudo systemctl restart raspotify
Stap 10. Playlist maken
Playlist kun je maken in /var/lib/mpd/playlists, default is daar de playlist van Bob aanwezig, Radio.m3u. Een playlist is een simpel tekstbestand met de volgende opbouw per muziekzender:
#EXTINF: <The #EXTINF Directive reports that the playlist will be followed by the track/channel data.
-1-track duration, -1 is set to ignore track/stream duration, but can be set in seconds, for example #EXTINF: 362>
<URL stream># commentaar
De file dient te beginnen met #EXTM3U:
#EXTM3U is the title of the file, tells the device that it is really a playlist in the EXTM3U format and not some text document of arbitrary content. Also next to it can be a link to the file of the TV program if the playlist is used to watch TV. It looks like this : url-tvg=”http://playlistserver/xmltv mmm.xml.gz”
Meer info over alle instellingen die je in een playlist kan opnemen vind je hier: https://en.f-player.ru/extm3u-iptv-format
Mijn favoriete playlist ziet er zo uit:
pi@radio:/var/lib/mpd/playlists $ cat myList.m3u
#EXTM3U
#EXTINF:-1,100% NL
https://stream.100p.nl/100pctnl.mp3#100% NL
#EXTINF:-1,538
https://playerservices.streamtheworld.com/api/livestream-redirect/RADIO538.mp3#538
#EXTINF:-1,Qmusic
https://icecast-qmusicnl-cdp.triple-it.nl/Qmusic_nl_live_96.mp3#Qmusic
#EXTINF:-1,Radio 10
https://playerservices.streamtheworld.com/api/livestream-redirect/RADIO10.mp3#Radio 10
#EXTINF:-1,Radio Veronica
https://playerservices.streamtheworld.com/api/livestream-redirect/VERONICA.mp3#Radio Veronica
#EXTINF:-1,Sky Radio
https://playerservices.streamtheworld.com/api/livestream-redirect/SKYRADIO.mp3#Sky Radio
#EXTINF:-1,Slam!
https://stream.slam.nl/web14_mp3#Slam!
#EXTINF:-1,NPO Radio 1
https://icecast.omroep.nl/radio1-bb-mp3#NPO Radio 1
#EXTINF:-1,NPO Radio 2
https://icecast.omroep.nl/radio2-bb-mp3#NPO Radio 2
#EXTINF:-1,NPO 3FM
https://icecast.omroep.nl/3fm-bb-mp3#NPO 3FM
#EXTINF:-1,NPO Radio 4
https://icecast.omroep.nl/radio4-bb-mp3#NPO Radio 4
#EXTINF:-1,NPO Radio 5
https://icecast.omroep.nl/radio5-bb-mp3#NPO Radio 5
#EXTINF:-1,Omrop Fryslan
https://d3pvma9xb2775h.cloudfront.net/icecast/omropfryslan/radio.mp3#Omrop Fryslan
#EXTINF:-1,Waterstad FM
https://stream.waterstadfm.nl/waterstadfm#Waterstad FM
Via de userinterface van Radio kun je eenvoudig van playlist switchen:
Stap 11. Backup maken
Het gros van het installatie en configuratie werk is nu gedaan. Tijd om een backup te maken. Ik gebruik hiervoor het programma USB Image tool 1.7.0, dit tooltje kun je van verschillende websites downloaden, onder andere hier https://usb-image-tool.en.uptodown.com/windows/download
Sluit je radio af met
sudo shutdown now
Haal het SD-kaartje uit je Raspberry Zero en plaatst hem in de SD-kaartlezer van je laptop/desktop. Start USB Image tool, en klik op je SD kaart. In mijn geval SDXC Card (D:\)

Klik vervolgens op “Backup” rechts onderin. Geef de backup een plaats op je harde schijf en een zinvolle naam, en klik op “Opslaan”

Er wordt nu een bijna 1-op1 kopie van je SD-Card gemaakt, zorg ervoor dat je dus genoeg ruimte op je harde schijf hebt

Je kunt echter de img file nog comprimeren door hem te zippen. Dus zodra de USB image tool klaar is met het maken van de image file, sluit je de tool af. Open de verkenner en navigeer naar de plaats waar je de image file hebt opgeslagen. Klik met je rechter muisknop op de image file, en kies voor “Comprimeren naar ZIP-bestand

De 32Gb (in mijn geval) wordt nu teruggebracht naar een meer behapbare 1.7Gb. Ik upload deze zip-file vervolgens naar Google Drive, maar je kunt hem natuurlijk ook naar een USB thumbdrive of externe harde schijf kopieren en buiten je woning bewaren.
Je kunt nu de SD-card veilig verwijderen uit je laptop/desktop, en hem terugplaatsen in je Raspberry Zero.
Het software matige deel is nu klaar, we gaan nu letterlijk onze handen vuil maken met het aanpassen van de vintage radio zodat al die mooie nieuwe electronica er in gaat passen.
Stap 12. Philips radio uit elkaar halen
Om ruimte te maken voor de moderne electronica moet de oude buizenradio verwijderd worden uit zijn behuizing. Dit is een precair klusje, want ik wil koste wat kost de knoppen kunnen hergebruiken, en buitenkant van de radio mag natuurlijk niet beschadigd worden. Eerst draai ik de 7 schroeven van het achterpaneel los gedraaid en het achterpaneel verwijderd


Daarna de radio een kwart slag gedraaid, met de voorkant op de werkbank, en de 4 schroeven (3 schroeven in mijn geval, een ontbrak al) van het onderpaneel losgedraaid en het onderpaneel verwijderd.


Vervolgens de 4 knoppen aan de voorkant voorzichtig losgetrokken, dit ging gelukkig verrassend soepel.


Wederom de radio met de voorkant op de werkbank geplaatst en de 4 schroeven waarmee de binnenkant van de radio vast zit aan de behuizing losgedraaid, daarna voorzichtig de radio een stukje uit zijn behuizing gehaald.

De luidspreker zit nog aan de radio vast, die met een kniptang losgeknipt


Daarna kon ik de radio volledig losmaken van zijn behuizing. Als laatste de luidspreker losgemaakt van het frontpaneel door de 3 schroeven met klemmen los te draaien


Uiteraard komt er 60 jaar aan stof vrij uit de binnenkant van radio, daarom eerst maar eens een natte doek door de binnenkant gehaald, en ook de buitenkant voorzichtig afgesopt

Op de bodem van de radio ga ik een metalen plaat monteren waarop ik vervolgens alle electronica, zoals de Raspberry Zero, transformator, DAC, versterker en PCB op vastzet. Van een vorig project heb ik een deel van de metalen behuizing van een thinclient PC nog liggen, deze maak ik in de volgende stap op maat.
Stap 13. Nieuwe basis voor het binnenwerk maken
Ben eerst gestart met het maken van een CAD tekening van het frontpaneel van het nieuwe binnenwerk, dit om exact de posities van de rotary encoders en switch te bepalen, maar ook om de poulies van de zenderaanwijzer op de juiste plek terug te kunnen monteren. In feite maak ik zo’n soort van boormal voor het frontpaneel.
Eerst alle maten overgenomen m.b.v. een meetlint en digitale schuifmaat.

Noot: De 6mm gaatjes bleken net wat te klein voor de rotary encoders, daarom ze iets ruimer gemaakt met een 7 mm boortje. De rotary switch bleek een schacht van 9,2mm te hebben, deze uitgeboord met een 10mm boor.

Hier mijn CAD ontwerpen


De tekeningen zijn in CAD en PDF formaat te downloaden
File | Download |
FreeCad tekening Frontpaneel buizenradio | https://drive.google.com/file/d/1NoOT6KCy5qTouuTfLhOYngYP900Y7Wca/view?usp=sharing |
PDF file van Frontpaneel buizenradio | https://drive.google.com/file/d/1ZHLX0weAiR-EoI_E64aQpjCQdNOecB3J/view?usp=sharing |
Vervolgens het ik de CAD tekeningen uitgeprint, met de papiersnijder en schaar bijgesneden en met papierlijm aan elkaar bevestigd.


In de schuur vond ik een oud TL-armatuur. Het metalen deksel had de perfecte afmetingen, vorm en dikte voor het frontpaneel.


Vervolgens met een prikpen in het midden van de gaatjes in de boormal een perforatie aangebracht. De boormal daarna met plakband op het op maat gemaakte frontpaneel geplakt en met een viltstift het middenpunt van de gaatjes overgenomen van de boormal op het frontpaneel.

Met de boormachine alle gaatjes in het frontpaneel geboord. Dan is de onderplaat aan de beurt. Hiervoor gebruik ik de behuizing van een sloop thin cliënt PC. Ook hiervan komen de vorm, maten en dikte overeen met wat ik nodig heb. Met de flex maak ik hem op maat.

Aan de zijkanten bevestig ik met popnagels een paar op maat gemaakte hoekijzers.



Hier bevestig ik vervolgens met popnagels het frontpaneel

En pas het geheel in de behuizing van de radio


De gaten voor de Rotary encoders en switch komen exact overeen met de gaten van de behuizing van de radio. Alleen van de lengte van het onderpaneel moet nog iets af om het passend te krijgen, maar dat doe ik later wanneer de constructie van de aanwijzer er op zit, en de afstand tot de binnenkant van de voorkant van de radio exact bekend is. Maar voordat ik daar aan begin maak ik eerst nog een ontwerp voor het plaatsen van de electronica op de onderplaat. Aanname is dat deze ongeveer 28 bij 12 cm wordt. Eerst de maten van de verschillende componenten uit de respectievelijke datasheets gehaald.




Daarna op basis hiervan een CAD tekening gemaakt die wederom als boormal kan fungeren.
Noot: Nog geen exacte afmetingen van de Velleman K4003 versterker, deze voeg ik zodra deze binnengekomen is toe aan onderstaande tekening.

Ook deze is uiteraard weer te downloaden
File | Download |
Onderpaneel radio CAD file | https://drive.google.com/file/d/1TXkJWP6N7Au9GwSiuiBbn3Gf0TNEOaLs/view?usp=sharing |
Onderpaneel radio PDF file | https://drive.google.com/file/d/1HKt2X2_1RxbijZ6xwXEXAD0TKvZuEls7/view?usp=sharing |
Ook hier weer dezelfde procedure. Tekening op maat snijden met papiersnijder, en met plakband op onderpaneel vastzetten. Daarna met boormachine de gaatjes (4mm) boren.
Stap 14. Zenderaanwijzer monteren op metalen binnenwerk
Zoals al in de vorige stap beschreven staat wil ik de zenderaanwijzer werkend zien te krijgen in de nieuwe opzet. Mijn plan is om de radio software van bob uit te breiden met een preset-channel functie, bijv. met 8 of 12 preset-channels. De zenderaanwijzer wordt dan verbonden met de schacht van de rotary switch waarmee je de preset-channel kunt selecteren. Je kunt dan door de preset-channels “bladeren” terwijl je ook de zenderaanwijzer ziet bewegen, met een druk op de rotary switch selecteer je dan de preset-channel. Als eerste stap in deze functionaliteit de montage van de “oude” poelies en draad met aanwijzer op het nieuwe metalen binnenwerk. Onderstaand een foto van de montage van de verschillende onderdelen op de oude buizenradio, dit ter referentie

De compenten die ik overneem zijn:
- Links de poulie met bevestigingsbeugel
- Rechts de geleide poulie met bevestigingsbeugel
- Rechts de grote poelie met bevestigingspaneel
- Rechtsonder de schachthouder van de zenderkeuze
- Draad met veer
Helaas brak de draad tijdens het demonteren van de onderdelen, dus die moet ik vervangen. Onderstaand de gedemonteerde onderdelen

Vervolgens deze onderdelen vastgeschroefd op het frontpaneel

Voor testdoeleinden heb ik even de oude schacht van de zenderkeuze gebruikt, deze wordt later vervangen door een rotary switch met push-button. In mijn viskoffer vond ik een stevige gevlochten draad en twee wartels ter vervanging van de gebroken draad. Voor het kunnen bevestigen van de verschillende onderdelen heb ik nog wat kleine inkepingen moeten flexen/vijlen en gaatjes moeten boren, maar het voert te ver om deze hier ook allemaal te gaan beschrijven. De opstelling uiteraard ook getest met bevestigde zenderaanwijzer in de radio, en dit werkt allemaal naar behoren.


Nu kan ook de definitieve lengte van het onderpaneel bepaald worden, en het onderpaneel op maat gemaakt worden. De definitieve maten van het onderpaneel komen uit op 280 x 105 mm. Dit intussen in een aangepaste CAD tekening opgenomen zoals beschreven in de vorige stap.
<foto nog toevoegen na definitief maken ontwerp voor onderpaneel>
Om de nieuwe luidsprekers te bevestigen heb ik een plaatje 4mm MDF op dezelfde maat gezaagd met de oude luidspreker als mal. Tevens een uitsparing aan de onderkant gehouden voor het bevestigen van het printplaatje met IR ontvanger en RGB LED en gaatjes er in geboord om alle componenten erop te kunnen bevestigen.


Stap 15. Printplaat maken voor IR ontvanger en RGB LED
De IR ontvanger en RGB LED komen achter twee bestaande uitsparingen in het frontpaneel van de radio en worden op een printplaatje gesoldeerd. Onderstaand het schema van het printplaatje:

Onderstaand de specificaties van de RGB LED
Aanbevolen weerstanden bij een voltage van 5V:
Rood:
R = ( 5,0V – 2,4V ) / 20mA = 2,6V / 0,02A = 130 Ohm -> 150 Ohm
Groen:
R = ( 5,0V – 3,4V ) / 20mA = 1,6V / 0,02A = 80 Ohm -> 82 Ohm
Blauw:
R = ( 5,0V – 3,4V ) / 20mA = 1,6V / 0,02A = 80 Ohm -> 82 Ohm
Echter de Raspberry Pi geeft een voltage van 3.3v op de GPIO output pins, dus dan is er alleen voor de Rode pin een weerstand nodig:
R = ( 3,3V – 2,4V ) / 20mA = 2,6V / 0,02A = 45 Ohm -> 47 Ohm

Te gebruiken onderdelen:
- printplaatje
- RGB LED
- 6 pins header
- 47 Ohm weerstand
- 6-pins female header met kabel
- VS1838B IR Receiver
- 6-aderige dupont kabel female-female
De pinout voor de IR ontvanger en RGB led is als volgt:
Raspberry PI pin | IR ontvanger | RGB LED |
GPIO 25 (pin 22) | SIG (pin 1) | |
GND (pin 20) | GND (pin 2) | |
3.3v (pin 1) | VCC (pin 3) | |
GPIO 23 (pin 16) | Rood | |
3.3v (pin 1) | Anode (+) (lange poot) | |
GPIO 22 (pin 15) | Blauw | |
GPIO 27 (pin 13) | Groen |
Soldeer de componenten conform schema van het de IR ontvanger en RGB LED op de printplaat. Let daarbij op de de IR ontvanger en RGB LED goed “zichtbaar” zijn in het frontpaneel. Met zichtbaarheid van de IR ontvanger bedoel ik dat de IR communicatie tussen de afstandsbediening en de IR ontvanger niet geblokt wordt door het frontpaneel. Het resultaat ziet er dan zo uit.


Nu uiteraard weer testen. Sluit m.b.v. een 6 dradige female-female kabel en 6 male-male dupont kabeltjes de printplaat aan op de raspberry pi conform bovenstaande pinout. De werking van de RGB LED kun je testen met python. Start Python3 op en voer achtereenvolgens de volgende commando’s uit:
pi@radio:/usr/share/radio $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setwarnings(False)
>>> GPIO.setup(22,GPIO.OUT)
>>> GPIO.setup(23,GPIO.OUT)
>>> GPIO.setup(27,GPIO.OUT)
>>> GPIO.output(22,False)
>>> GPIO.output(22,True)
>>> GPIO.output(23,False)
>>> GPIO.output(23,True)
>>> GPIO.output(27,False)
>>> GPIO.output(27,True)
>>> exit()
Als het solderen en aansluiten op de raspberry pi goed is gegaan, dan zal bij de waarde False de betreffende led aangaan, en bij de waar True uit. De rode led brandde bij mij significant minder fel, dus misschien is de 47 Ohm weerstand toch iets te veel geweest. Maar dat laat ik voorlopig maar zo.
De IR ontvanger kun je wederom met het commando irw testen:
pi@radio:/usr/share/radio $ irw
00000000219e10ef 00 KEY_OK WDTVLive
00000000219e10ef 00 KEY_OK WDTVLive
00000000219e10ef 00 KEY_OK WDTVLive
00000000219e00ff 00 KEY_CHANNELDOWN WDTVLive
Tests geslaagd.
Stap 16. Rotary switch t.b.v. Menu keuze aansluiten en monteren
Met een rotary switch kun je meerdere standen selecteren door de knop rond te draaien. In de radio heeft dit de functie om tussen de verschillende menu’s te switchen. Namelijk:
- Radio stations laden
- Informatie (m.b.v. espeak)
- Zoek menu
- Laad media bibliotheek
- Her indexeer muziek bibliotheek
De rotary switch die ik besteld heb heeft 6 posities en 2 polen. Voor deze toepassing gebruik ik echter maar 1 pool. Door het toepassen van diodes en het aansluiten van 3 GPIO’s creëer je dan 6 menu posities die een waarde 1 of 0 opleveren. Zie ook onderstaand schema uit Bob’s handleiding. (Bob heeft een rotary switch gebruikt met 8 posities en 1 pool, maar omdat posities 7 en 8 niet gebruikt worden kun je ook volstaan met een rotary switch met 6 posities). Let op, GPIO25 onderstaand in Bob’s schema is al ingebruik t.b.v. de IR ontvanger, gebruik daarom GPIO24 hiervoor.

Schematisch weergegeven:

Benodigde onderdelen:
- rotary switch
- 4 IN4148 diodes
- 6 dupont kabels female/male-female
- 2 x 6 pins header
- 4-voudige jumperkabel female-female

Knip de female of male stekkers af van de 6 dupont kabels, strip de kabeleinden en soldeer deze op polen 2 t/m 5 en de centrale pool. Doe een drup lock-tide lijm tussen de male stekkers van de dupont kabels, en fixeer ze tijdelijk met een stukje tape. Soldeer de 2 6-pins headers parallel aan elkaar op het “moederbord” van de radio en verbind de pins van headers met elkaar volgens onderstaande beschrijving:
- pin 1 header 1 aan pin 1 van header 2 (GND)
- pin 2 header 1 aan pin 2 van header 2 (GPIO24)
- pin 3 header 1 aan pin 3 van header 2 (GPIO8)
- pin 5 header 1 aan pin 4 van header 2 (GPIO7)
Soldeer de IN4148 diodes aan header 1 conform bovenstaand schema. Steek de 6-voudige dupont kabel op header 1.





Nu testen. Sluit middels een 4-tal female-male dupont kabels header 2 aan op de raspberry pi conform bovenstaande beschrijving. Draai de knop van de rotary switch helemaal naar rechts (positie 1, niet in gebruik). Wederom gebruiken we python3 om de werking van de rotary switch te testen. Gebruik onderstaand python script om te checken of de juiste waarde wordt weergegeven als je aan de knop van rotary switch draait
pi@radio:~ $ vi rotary_switch.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(24,GPIO.IN)
GPIO.setup(8,GPIO.IN)
GPIO.setup(7,GPIO.IN)
while True:
if GPIO.input(24): gpio24=1
else: gpio24=0
if GPIO.input(8): gpio8=1
else: gpio8=0
if GPIO.input(7): gpio7=1
else: gpio7=0
print(gpio24 + (gpio8 * 2) + (gpio7 * 4))
time.sleep(2)
en start het script met
pi@radio:~ $ python3 rotary_switch.py
0
0
1
1
2
2
3
3
4
4
5
5
Als alles goed aangesloten is zie je dan achtereen volgens 0 t/m 5 op je scherm komen naarmate je de knop van de rotary switch naar links draait. Gelukt ?
Stap 17. Rotary encoder t.b.v. Volume en Mute aansluiten en monteren
De rotary encoder heeft twee functies, namelijk:
- het volume kunnen instellen
- en door de knop in te drukken kun je geluid uitzetten (mute-functie)
De rotary encoder die ik besteld heb heeft 5 aansluitpolen, twee aan en de ene zijde en drie aan de andere zijde. Dit is de pinout van de rotary encoder


De rotary encoder wordt als volgt op de radio aangesloten:
Functie | GPIO/Pin | Rotary encoder |
Volume up | GPIO15 (Pin 10) | Output B |
Volume down | GPIO14 (Pin 8) | Output A |
Mute volume | GPIO4 (Pin 7) | Output E |
GND (Pin 6) | Input C & D |
Schematisch weergegeven:

Benodigde onderdelen:
- rotary encoder met knop
- 2 x 4 pins male header
- 2 x 4-voudige jumperkabel female-female
Knip van één van de jumperkabels de stekker af, strip de kabeleinden en soldeer deze op de polen A, B, C en E van de rotary encoder. Verbind de polen C en D met een kort stukje draad. Soldeer de 2 4-pins headers parallel aan elkaar op het moederbord van de radio, en verbind de pins van de headers 1-op-1 met elkaar. Steek de 4-voudige jumperkabel met de rotary encoder op header 1, steek de andere 4-voudige jumperkabel op header 2 en verbindt deze met de raspberry pi conform bovenstaande pinout.




Nu testen. Sluit middels een 4-tal female-male dupont kabels header 2 aan op de raspberry pi conform bovenstaande beschrijving. In onderstaande video kun je mijn test zien, eerst test ik de mute knop, daarna volume up en volume down met succes.
Stap 18. Rotary encoder t.b.v. Tuner aansluiten en monteren
Met de tunerknop kun je tussen de verschillende radiokanalen switchen. Links omdraaien, channel down en rechts omdraaien, channel up. Knop indrukken is switchen van menu. Ook hiervoor gebruiken we een rotary encoder.


De rotary encoder wordt als volgt op de radio aangesloten:
Functie | GPIO/Pin | Rotary encoder |
Channel up | GPIO24 (Pin 18) | Output A |
Channel down | GPIO23 (Pin 16) | Output B |
Menu switch | GPIO17 (Pin 11) | Output E |
GND (Pin 25) | Input C & D |
Schematisch weergegeven:

Benodigde onderdelen:
- rotary encoder met knop
- 2 x 4 pins male header
- 2 x 4-voudige jumperkabel female-female
Knip van één van de jumperkabels de stekker af, strip de kabeleinden en soldeer deze op de polen A, B, C en E van de rotary encoder. Verbindt polen C en D middels een kort stukje draad. Soldeer de 2 4-pins headers parallel aan elkaar op het moederbord van de radio, en verbind de pins van de headers 1-op-1 met elkaar. Steek de 4-voudige jumperkabel met de rotary encoder op header 1, steek de andere 4-voudige jumperkabel op header 2 en verbindt deze met de raspberry pi conform bovenstaande pinout.


Testen: Sluit middels een 4-tal female-male dupont kabels header 2 aan op de raspberry pi conform bovenstaande pinout beschrijving. In onderstaande video kun je mijn test zien, eerst test ik channel-up, daarna channel-down met succes. Vervolgens druk ik de knop in en switched het menu.
Stap 19. Toonregeling
De toonregeling bevindt zich tussen de HifiBerry DAC en Velleman versterker en wordt aangestuurd middels een dual lineare rotary encoder. De toonregeling dient dubbel uitgevoerd te worden voor het linker en rechter audiokanaal, vandaar dat er ook een dual rotary encoder toegepast dient te worden. De toonregeling wordt middels een standaard 2x RCA-male Tulp audio kabel naar 3.5mm Jack male kabel aangesloten op de HifiBerry DAC.
De dual lineare potentiometer die ik besteld heb is een Alpha RV16A01F20KB100KM en heeft 6 aansluitpolen, 3 aansluitpolen voor het linker audio kanaal, en 3 aansluitpolen voor het rechter audio kanaal. Deze zijn galvanisch gescheiden.


De toonregeling is gebaseerd op onderstaand schema van muzique.com:

Uiteraard dient dit twee-voudig uitgevoerd worden voor een stereo signaal, dit levert het volgende schema op:

Benodigde onderdelen:
- Printplaat 5 x 7 cm
- 6-voudige male-header
- J1: Audio jack 3.5mm printplaat stereo
- R1/R4: 2 x 10K weerstand
- R2/R5: 2 x 47K weerstand
- C1/C2: 2 x 0.022uF condensator
- VR1/VR2: 2 x 100K trimpot
- R3: dual lineare potentiometer 100K
- J2/J3: 2 x 2 pins male header
- 6-voudige jumperkabel female-male/female
- 2 x 2-voudige jumperkabel female-male/female
- 1 x 2-voudige RCA-male Tulp audio kabel naar 3.5mm Jack male kabel

Soldeer de componenten J1, R1/R4, R2/R5, C1/C2, VR1/VR2 en J2/J3 conform bovenstaand schema op de printplaat. Voor het connecten van de dual linear potentiometer met de 6-voudige jumperkabel heb ik een 6-voudige male header op de printplaat gesoldeerd.


Knip van de 6-voudige jumperkabel de male/female stekker af, strip de kabeleinden en soldeer deze op de polen 1, 2, 3 van beide potmeters van de dual lineare potentiometer volgens onderstaand schema.
Dual linear potentiometer | Aansluiting op printplaat |
boven 1 | Rechts VCC (van condensator C2) |
boven 2 | Rechts Output naar trimpot VR2 |
boven 3 | Rechts GND |
onder 1 | Links VCC (van condensator C1) |
onder 2 | Links Output naar trimpot VR2 |
onder 3 | Links GND |


Testen: <nog uitwerken>
Stap 20. Velleman K4003 versterker assembleren

Uiteraard de kit-versie van de Velleman versterker besteld, en niet het kant en klare VM113 model. De kit bestaat uit de volgende onderdelen:
- print plaat
- 2 Elco’s
- 3 condensators
- pins
- koelblok
- 2 weerstanden
- een IC
- 4 diodes
- 2 1uK63 condensators
- wat boutjes en moertjes om het koelblok op de printplaat te kunnen bevestigen
- garantiecertificaat
- kleurcoderingen weerstanden
- kaartje waar op staat dat de handleiding online te vinden is



Ik volg de instructies uit de manual van Velleman voor het monteren van de verschillende componenten op de printplaat:
1. Monteer de weerstanden.
In de verpakking zitten twee weerstanden (8,2 Ohm). Buig de beide poten onder een hoek van 90 graden en plaats ze in R1 en R2. Maakt niet uit hoe je ze om plaatst.


2. Monteer de dioden. Let op de polariteit!
In de verpakking vindt je 4 diodes (1N5404). Buig de poten onder een hoek van 90 graden en plaats de diodes in D1, D2, D3 en D4. Let er daarbij op dat je de licht grijze band van de diode in dezelfde richting plaatst als het witte vlakje op de printplaat. Draai daarna de printplaat om en soldeer de weerstanden en diodes vast. Zorg er daarbij voor dat de componenten lekker strak tegen de printplaat komen te liggen.




3. Monteer de keramische condensatoren.
In de verpakking zitten twee gele condensatoren met nummer 223 (22nF) en één blauwe condensator met nummer 104 (100nF). Plaats een gele condensator met nummer 223 op posities C1 en C2, en de blauwe condensator met nummer 104 op positie C3. Ook bij condensatoren maakt het niet uit hoe je ze omdraait. Draai de printplaat om, en soldeer ook de condensatoren vast.


4. Monteer de printpennen.
In de verpakking zitten twee zakjes met PCB pennen, plaats die op posities L-IN, GND, LS-L, GND (Links), VA 12VAC, GND (2x), VB 12VAC (onder), R-IN, GND, LS-R en GND (rechts). Soldeer de pennen vast aan de achterkant.



5. Monteer de multilayer condensatoren.
In de verpakking zitten twee multiplayer condensatoren met het opschrift 1uK63 (1uF). Soldeer deze op posities C4 en C5. Ook hierbij maakt het weer niet uit hoe je ze omdraait.


6. Monteer de elektrolytische condensatoren. Let op de polariteit!
Je had het natuurlijk al gezien, per ongeluk in de tweede stap de twee ELCO’s al vastgesoldeerd ;-). Maar volgens de manual komen ze nu aan de beurt. Op de zijkant van de ELCO’s staat duidelijk met een – (min) teken aangegeven wat de – (min) is, het is de zijde met de korte poot. Plaats deze uiteraard op de min kant van posities C6 en C7. Dus de lange poot op de +, en de korte poot op de -. Soldeer de ELCO’s aan de achterzijde vast.


Knip aan de achterzijde alle pootjes netjes af.

7. Monteer het IC.
Monteer het IC met de metalen rugzijde naar de rand van de print. Monteer het zodanig hoog dat de aansluitingen NIET afgeknipt hoeven te worden. Monteer vervolgens het IC tegen de koelbalk zoals aangegeven in de figuur 1.0 Tussen het IC en de koelbalk moet men de isolatie mica (voorzie langs beide zijden eventueel wat warmte geleidende pasta, ordernr. : therm20) monteren.


8. Monteer het koelblok op de IC
In de verpakking zitten 2 M3 15mm boutjes en moeren, carroserieringen en borgringen. Voer het boutjes door de gaten in het koelblok, schuif de met koelpasta ingesmeerde mica isolatie (transparant kunststof plaatje met gaatje) op één van de boutjes, en schuif deze op de IC, plaats dan de carroserieringen, dan de borgringen en zet het geheel vast met de boutjes. Zie ook onderstaande tekening:



In volgende stappen gaan we de versterker aansluiten volgens onderstaand principe

De luidsprekers worden aangesloten op LS-L + GND en LS-R + GND, de toonregeling op L-IN + GND en R-IN + GND en de 2 x 12VAC transformator op VA + GND + VB.
Stap 21. Monteren van Raspberry Pi en voeding op “moederbord”
In deze stap monteren we de GPIO extender, de Raspberry Pi inclusief HiFiBerry DAC+ en 5v voeding op het moederbord.
Benodigde onderdelen:
- GPIO extender
- 4 M2 schroefjes
- Raspberry Pi Zero 2W inclusief HiFiBerry DAC+ erop gemonteerd (zie ook stap 2)
- 3D geprinte steun (zie verderop)
- 2-voudige terminal PCB-mount
- Mean-well voedingsblok 5V/3A
- Male 2 pin PCB mount connector
- Stukje 1.5mm draad
- 2 female-female jumperkabels
We starten met het monteren van de GPIO extender op het moederbord. Neem met een dunne fine-liner de posities van de gaatjes in de GPIO extender over op het moederbord. Boor vervolgens met een 2mm boortje de gaatjes in het moederbord. Monteer de meegeleverde afstandhouders en schroefjes op de GPIO extender. Helaas zaten er geen extra schroefjes bij de GPIO extender om het geheel vervolgens op het moederbord te bevestigen, hiervoor een greep gedaan in mijn bakje met allerhande schroeven.


Vervolgens het voedingsblok, de terminal voor de aansluiting van 230v en de male PCB connector op het moederbord gesoldeerd. Tussen de terminal en het voedingsblok een stukje geisoleerd 1.5mm draad gebruikt voor de 230v.



Met behulp van twee female-female jumperkabels de voeding aangesloten op de 5V en GND aansluiting van de GPIO extender. Daarna een snoer met stekker aan de terminal geschroefd en de stekker in het stopcontact gestoken. Met een multi-meter gechecked welke spanning het voedingsblok afgeeft, een keurige 4.9v.

Na deze controle de Raspberry Pi met DAC op de GPIO extender gestoken en getest of de Raspberry Pi goed functioneerde. De Raspberry Pi “hangt” nu los op de GPIO extender, niet echt een wenselijke situatie. Vandaar met FreeCAD een steun ontworpen tussen de Raspberry Pi en het moederbord.


Uiteraard zijn de ontwerp files te downloaden:
File | Download URL |
FreeCad ontwerp | https://drive.google.com/file/d/11ssinuEOQ02eJReh-hOq4NqkY9U9-BMI/view?usp=sharing |
STL | https://drive.google.com/file/d/1fNBbtkI6s5d1WCBLHkaPxWuKOn_Xf-tQ/view?usp=sharing |
Vervolgens de steun tussen de Raspberry Pi en het moederbord geplaatst, de gaatjes overgenomen en uitgeboord met een 3mm boortje. Tot slot de steun met schroefjes en boutjes vastgezet op de Raspberry Pi en het moederbord.

Stap 21. Voeding en montage Velleman versterker
Conform de specificaties van de Velleman K4003 versterker dient de versterker gevoed te worden met 2 maal 12V AC voeding die minimaal 50VA (50w) kan leveren. Daarom gekozen voor de EI 66/34,7 212 Transformator 50VA, 2x 12V, 2x 2080mA.


Onderstaand de pinout van de trafo:
Pin | |
Pri 1 | 230v fase (L) |
Pri 2 | 230v neutraal (N) |
Sec 3 | 0v |
Sec 4 | 12v |
Sec 5 | 0v |
Sec 6 | 12v |

Bovenstaand een deel van de tekening welke ook in stap 19 te vinden is, hierbij de voeding van de Velleman K4003 versterker uitgelicht. In dit voorbeeld staat een ringtransformator, echter dat maakt voor het principe niet uit. De voeding wordt als volgt aangesloten op de versterker.
Transformator | Versterker |
Sec 4 | VA |
Sec 3 & sec 5 | GND |
Sec 6 | VB |
Benodigde onderdelen:
- Block EI 66/34 Printtransformator
- 6 x kabelschoen female-disconnector 1/4″ (3x rood, 3x blauw)
- 1 x kabelschoen ring terminal #10 (geel)
- Stukje goed geïsoleerd 3×0,75mm apparaatsnoer (bruin, blauw, geel/groen)
- 2 stukjes 2×0,75mm apparaatsnoer (bruin, blauw)
- 5 M4 boutjes met moeren
Neem de gaten van de bevestigingsbeugels van de transformator over op het binnenwerk, en boor met een 5mm boortje gaatjes in het binnenwerk. Monteer met behulp van 4 M4 boutjes en moertjes de transformator op het binnenwerk. Boor een extra gaatje voor het aarden van het binnenwerk. Strip de draden van één van de uiteinden van het 3-voudige apparaatsnoer en knijp m.b.v. een kabelschoentang een rode female disconnector op de bruine draad, een blauwe female disconnector op de blauwe draad en de gele ring terminal op de geel/groene draad. Steek de female disconnectors op de primaire aansluiting van de transformator, de rode (fase draad) op Pri 1 en de blauwe (neutraal) op Pri 2. Monteer de ring terminal m.b.v. een M4 boutje met moer op het binnenwerk om het binnenwerk te aarden.
Strip beide uiteinden van de 2 stukjes 2-voudige apparaatsnoer en knijp op één zijde een rode female disconnector op de bruine draad en een blauwe female disconnector op de blauwe draad. Soldeer de andere zijde van het apparaatsnoer op de Velleman versterker, bruine draad op VA12VAC en blauwe draad op GND respectievelijk VB12VAC en GND. Steek de female disconnectors op de Secundaire aansluitingen van de transformator, de bruine draad aangesloten op VA12VAC op Sec 4, bruine draad aangesloten op VB12VAC op Sec 6 en de blauwe draden op Sec 3 en Sec 5.
Testen: Monteer (tijdelijk) een geaarde stekker aan het 3-voudige apparaatsnoer. Steek de stekker in het stopcontact en check met een multimeter de output van Sec 3 & 4 en Sec 5 & 6.
Stap 23. Assemblage radio
In deze stap gaan we alle componenten uit voorgaande stappen samenvoegen tot een werkende radio. We beginnen met het monteren van de Volume/mute rotary encoder (Stap 17), Tuner/menu switch rotary encoder (Stap 18), Menu keuze rotary switch (Stap 16) en Toonregeling dual linear potentiometer (Stap 19) in het nieuwe binnenwerk (Stap 13).
Van links naar rechts (vooraanzicht) komen de knoppen in de volgende volgorde: Volume/mute, Toonregeling, Menu keuze, Tuner/menu switch.
Te beginnen met de volume/mute knop. Draai een van de borgmoeren los, steek de schacht door het meest linker gat en draai de borgmoer stevig vast.
Daarna de Toonregeling. Draai de borgmoer los. De dual linear potentiometer heeft een klein uitsteeksel wat er voor zorg dat de potentiometer niet meedraait in het binnenwerk als er brute kracht wordt toegepast op de knop. Hiervoor met een 3mm boortje een klein extra gaatje naast het 7mm gat geboord.

Steek de schacht door het tweede gat van links en zorg er voor dat het uitsteeksel in het kleine gaatje valt, draai de borgmoer stevig vast.
De menu keuze knop heeft ook een klein uitsteeksel om deze te fixeren. Beetje inkt op het uitsteeksel gesmeerd om de positie van het gaatje hiervoor te markeren. Vervolgens met een 3mm boortje een klein gaatje geboord boven het 7mm gat.

De rotary switch kan qua ronddraaien begrenst worden. Draai de borgmoer los. Onder de borgmoer bevindt zich een ring met een klein uitsteeksel eraan. In de rotary switch bevinden zich een 12-tal gaatjes. Door het uitsteeksel in het juiste gat te plaatsen kun je ervoor zorgen dat de rotary switch niet helemaal rondgedraaid kan worden. Aangezien de rotary switch 6 menu-keuzes ondersteunt kun je het uitsteeksel in het 7de gaatje van links laten vallen, daarmee wordt het aantal klikken waarmee de knop rondgedraaid kan worden tot 6.

Zorg ervoor dat de ring op zijn plaats blijft terwijl je de schacht van rotary switch door het 3de gat van links steekt, en het uitsteeksel door het kleine gaatje valt. Fixeer het geheel door de borgmoer stevig vast te draaien.
Tot slot de Tuner/menu switch. Zelfde laken een pak als de volume/mute rotary encoder, borgmoer losdraaien, door het meest rechter gat steken en borgmoer stevig vast draaien.


Vervolgens de as-koppelaars op de schachten van de switches/encoders bevestigen. De schacht van de rotary switch bleek om een of andere reden 6.4mm dik te zijn. Daarom van één van de as-koppelaar het schroefje eruit gedraaid en met een 6.5mm metaalboor aan één zijde iets uitgeboord, daarna het schroefje er weer ingedraaid.

Tot slot de oude assen uit het binnenwerk van de oude radio gesloopt, op maat afgezaagd en op de as-koppelaars gemonteerd.

Nu het binnenwerk. Neem de gaatjes van de printplaat over op het binnenwerk.
Nu gaan we het moederbord (Stappen 15 t/m 18 en 20) op het nieuwe binnenwerk bevestigen. Plaats eerst moederbord, versterker en printplaat met toonregeling in het binnenwerk, en pas of het geheel in de vintage radio past. Hou er rekening mee dat de achterzijde nog afgesloten wordt met een plexiglas achterkant.

Neem de gaatjes van het moederbord over op het binnenwerk. Boor met een 2,5mm boortje de gaatjes. Schroef door de gaatjes 4 verhogers vast op het binnenwerk en schroef het moederbord vast op de verhogers.



Neem de gaatjes van de versterker over op het binnenwerk. Ik heb er voor gekozen om in het midden onder het koelblok een extra verhoger te plaatsen om het gewicht van het koelblok op te vangen. Schroef daarna 3 verhogers vast op het binnenwerk, en schroef de versterker vast op de twee verhogers.



Tot slot monteren we de printplaat met de toonregeling. Bij toeval paste die net op de rechterzijde van het binnenwerk. Met twee boutjes met moertjes de printplaat op de zijsteun geschroefd.



Stap 24. Achterpaneel maken en assembleren
Benodigdheden:
- HDMI chassisdeel
- USB chassisdeel
- Tulp audio kabel
- Chinch chassisdeel wit
- Chinch chassisdeel rood
- C14 Schakelaar met zekering
- Plexiglas 400x300x4mm
- 4x M2 bout + moer
Gereedschap
- Decoupeerzaag
- Schuurpapier/blok
- Vijl halfrond en plat
- Soldeerbout/tin
- Boormachine met 3, 4 en 6,5mm metaalboren
- Lock-tide secondenlijm
- Stanleymes
Het oude achterpaneel gebruik ik als mal voor het nieuwe achterpaneel van 4mm dik plexiglas. Ik zet het oude achterpaneel met twee M4 bouten en moertjes vast op het plexiglas. Eerst neem ik alle schroefgaten over met een 4mm boortje. Daarna volg ik de contouren van het oude achterpaneel met de decoupeerzaag.



Op mm papier neem ik de maten van de schakelaar, USB-chassisdeel, HDMI-chassisdeel en de twee chinch-chassisdelen over. Dit papier gebruik ik als mal voor het uitzagen en boren van de uitsparingen en steek ik tussen het beschermfolie en het plexiglas. Vervolgens boor en zaag ik de uitsparingen uit.


Daarna werk ik het plexiglas nog wat bij met stanleymes, vijl en schuurpapier (korrel 60) en verwijder het beschermfolie van beide kanten. Met behulp van een fineliner neem ik de boorgaatjes van de USB- en HDMI chassisdeel over en boor met een 3mm boortje de gaatjes uit. De M2 boutjes steek ik door het USB- en HDMI chassisdeel, en door het plexiglas en zet ik aan de achterkant vast met een M2 moertje.


De flens van de C14 schakelaar smeer ik in met Lock Tide secondenlijm, druk ik op zijn plaats en laat ik uitharden. Intussen knip ik een Tulp audio kabel doormidden, strip en vertin de uiteinden. Daarna schuif ik de borgmoer en groundaansluiting van het chinch chassisdeel alvast over de kabeluiteinden en steek de kabeluiteinden door de voorgeboorde gaten in het plexiglas. Vervolgens soldeer ik de plus draad op het middendeel van het chinch chassisdeel, trek de draad inclusief chinch chassisdeel terug door het gat in het plexiglas, schuif de groundaansluiting aan de achterkant over het chassisdeel tegen het plexiglas aan en draai de borgmoer vast. Met behulp van het stanleymes buig ik de groundaansluiting iets om zodat deze het plexiglas niet meer raakt, en soldeer de grounddraad vast.



Hiermee is het achterpaneel klaar.
He supergave site met leuke dingen…
Die radio heerlijk!!!
Kan hij ook met een bt box? en dan in domoticz?
Dat zou helemaal te gek zijn.
dummy spotify lijst aan.. muziek
dummy internet radio aan, kx fm
Enz
Hopelijk heb je zoiets..?
Derik, dank voor je berichtje. Zoals je wel hebt kunnen lezen is dit project nog steeds “onder handen”. Wacht eigenlijk op een nieuwe Raspberry Pi Zero 2W, maar die zijn al tijden niet leverbaar. Pas in het najaar weer. Maar maakt niet uit, zomers ben ik liever in de tuin en heb ik minder tijd voor m’n domotica en electronica hobby. Maar om op je vragen terug te komen, heb nog niet geprobeerd om er een Bluetooth luidspreker aan te hangen, maar dit lijkt me zeer goed mogelijk net als bijvoorbeeld een bluetooth hoofdtelefoon of oordopjes. Ook heb ik de aansturing van de Radio nog niet geintegreerd in Domoticz. Aangezien de Radio over een webinterface beschikt moet het niet al te moeilijk zijn om de integratie met Domoticz te realiseren. Desnoods schrijf ik er een API (voor Radio) en een Plugin (voor Domoticz) voor. Wordt vervolgd (in de herfst/winter)
Bij het opstarten krijg ik deze foutmelding:
pi@raspberrypi:~ $ sudo /usr/share/radio/remote_control.py nodaemon
Traceback (most recent call last):
File “/usr/share/radio/remote_control.py”, line 31, in
import RPi.GPIO as GPIO
ImportError: No module named RPi.GPIO
Graag verneem ik van u of er een oplossing voor is.
Verder speelt de radio fantastiesch
Vriendelijke groet,
Jan Wegter
Jan, denk dat je de Python 3 bibliotheek RPi.GPIO nog moet installeren: sudo apt-get -y install python3-rpi.gpio
Beste eigenaar van Syd’s Post,
Bedankt voor het delen van dit geweldige artikel over vintage internetradio’s! Ik ben dol op de charme en het karakter van vintage apparaten en deze radio’s zien er echt fantastisch uit. Ik waardeer het ook dat je nuttige informatie hebt verstrekt over de werking en de verschillende modellen.
Het is geweldig om te zien dat vintage technologie nog steeds relevant en gewaardeerd wordt. Het brengt me terug naar een nostalgisch gevoel en herinnert me aan vroegere tijden. Ik zou het geweldig vinden om er ook een in mijn collectie te hebben.
Ga vooral door met het delen van dit soort interessante artikelen. Ik kijk uit naar meer boeiende content zoals deze op Syd’s Post.
Met vriendelijke groet,
Mabel Chavez
Dank voor je mooie woorden Mabel, fijn dat je net zoveel plezier aan het lezen van mijn blog beleefd als ik van het schrijven ervan