Mittwoch, 7. Oktober 2020

Philips 22RR600 iRadio mit SPI-Display

 

in diesem Radio steckte schon lange ein iRadio mit Textanzeige, war aber nie richtig fertiggestellt. Nun wollte ich mal sehen wie weit ich mit einer Animation auf einem SPI-Display komme

Bernhard hatte am Beispiel eines Display mit ST7735-Controller mal eine Anleitung erstellt, wie man per Framebuffer Displays dieser Art in iRadio einbinden kann. Hier nachzulesen:

12. Teil iRadio: Displayanbindung über Framebuffer

weitere Quellen, die mir weitergeholfen haben:

2.2“ SPI-Display (ILI9341) am Raspberry betreiben

ili9341 Raspberry Pi guide

als passenden Treiber für den ILI9341-Controler ermittelte ich den "rpi-display"-Treiber. Um erst mal eine Textausgabe zu realisieren ist in der /boot/config.txt diese Zeile einzutragen:

dtparam=sdtoverlay=rpi-display,speed=32000000,rotate=270 

die Umschaltung auf das kleine Display erfolgt dann mit:

 con2fbmap 1 1 

es kann Zufall gewesen sein, aber vermutlich stand der rpi-display erst nach einem rpi-update zur Verfügung.

Damit gab es schon mal eine Textanzeige. X11 verlangte noch weitere Konfigurationen.

so in der sudo /etc/modules-load.d/fbtft.conf:

spi-bcm2835
fbtft_device

und in sudo /etc/modprobe.d/fbtft.conf: 

options rpi-display name=rpi-display

X11 ist jetzt startfähig:


 Kommen wir zur Animation. Es bietet sich die Kassettenanimation von hmaisch/Bernhard an.

Da diese für ein 5" Display mit der Auflösung 800x480 geschrieben wurde und das SPI-Display nur 320x240 bietet wird erst mal nur ein Ausschnitt gezeigt:


 das ist aber eigentlich okay. Das Sichtfenster und damit das Display zeigen auch an dem Rekorder nur einen Teilbereich der Kassette.

Eine angepasste Auflösung liefert einen zu kleinen Massstab und damit eine unrealistische Animation:


 Nun wollte ich aber wenigstens die Wickelteller komplett zeigen und ging daher einen Kompromiss ein mit der Auflösung 600x360:


 der für uns wichtige Teil der rc.local:

..
con2fbmap 1 1

/usr/bin/vlcd
#/usr/bin/displayd &
/usr/bin/gpiod &
startx /home/pi/iRadio/display/x11/cassettensim/sdlskale &

..

An der rotary.c gab es die üblichen Änderungen:

#define RoAPin 23 // GPIO-Pin 13, Pinnummer 33
#define RoBPin 24 // GPIO-Pin 19, Pinnummer 35

Nun zum Radio selbst.


Die Senderabstimmung bedient nun einen Drehencoder und dient damit weiterhin zum Einstellen des Senders. Das Lautstärkepoti verblieb im Radio und liegt nun im Signalweg zwischen HDMI-DAC und TDA2030A-Verstärker. Als Netzteil setzte ich wieder ein Hi-Link Modul ein mit 5V / 2A, welches in der Kabelbox der Rückwand Platz findet. Gehalten wir das Modul durch eine Lochrasterplatte auf der Innenseite, die auch die Buchsenleiste für den aufgesteckten Verstärker trägt sowie eine kleine Potentialverteilung. Der originale Laustsprecher hat einen satten, vollen Klang.


 





und dann haben wir natürlich auch wieder ein Filmchen. Der akustische Verpixelung klingt schrecklich, aber bis jetzt wurde das Video noch nicht angemahnt.


 

Keine Kommentare:

Kommentar posten