Saba TV-Journey mit iRadio

  • die ersten 6 Bilder sind von Juli 2022. So lange bin ich schon am planen und überlegen wie ich dieses Mini-Fernsehen wieder nutzbar machen kann. Wie man sieht funktionierte es, hatte aber einen Displayschaden. Zum Testen speiste ich ein Modulatorsignal über die Antenne ein:

    Für eine Video-Wiedergabe kommen nicht viele Prozessorboards in Frage. Ein normaler Raspberry Pi findet keinen Platz im Gehäuse, zumal das Batteriefach alleine schon den halben Platz ausfüllt. Wohl aber ein Raspberry Zero, auch wenn der mit seinen Micro/Midi-Anschlüssen alles wieder komplizierter macht. Per fbcp-ili9341 soll er ein 2,4 Zoll SPI-LCD treiben. Player hatte ich schon mal einige vorgestellt. Ich entschied mich aber für iRadio von Bernhard. Es ist einfach am vielseitigsten, ich kann ganz gut damit umgehen und möchte auch in Übung bleiben.

    Einbau des Display

    die originale Elektronik wanderte bis auf das Tastenfeld und den Lautsprecher in die Bastelkiste. Wie üblich konstruierte ich einen Displayrahmen. Dieser wird an vorhandene Schraubbolzen montiert und trägt einen weiteren Rahmen zur Befestigung des Raspberry Zero.

    erster Installationsschritt

    Ich spielte ein Buster 10 Image auf eine 32GB MicroSD und installierte erst mal fbcp-ili9341. Hier sieht man den seitlichen Versatz der Anzeige und das Bild steht auf dem Kopf. Die seitliche Ausrichtung korrigierte ich durch Ändern des Displayrahmens, die Anzeige drehte ich durch einen Rotations-Parameter im build-string von fbcp-ili9341.

    Verkabelung des Display

    im ersten Versuch war das Display noch mit Dupont-Kabeln mit dem Zero verbunden. Die Konstruktion baute aber 3mm zu hoch und der Gehäusedeckel passte nicht mehr. Diese 3mm gewann ich durch eine geniale Idee. Ein 40pol Schneidklemmen-Pfostenverbinder, wie er bei alten IDE Kabeln üblich war, passt genau auf die GPIO-Leiste. So habe ich nicht nur den Platzgewinn, sondern auch eine sichere, steckbare Verbindung. Und die Kabel sind einfach abzuzählen. Die rote Markierung des Flachbahnkabels liegt auf Pin1 der GPIO-Leiste und die Zählung der Pin ist fortlaufend. Mit dem anderen Ende eines IDE-Kabels wäre auch die Kabelschleife weggefallen, aber ich hatte grad nur dieses Teilstück griffbereit. Es stammte aus einem Centronics-Adapter und deshalb fehlen ihm auch noch die letzten 4 Leitungen. Auch ein Grund warum ich den Stecker nicht umdrehen konnte.

    Die Steuerung

    zur Steuerung wollte ich die 5 vorhandenen Tasten nutzen. Das zugehörige flexible Flachbahnkabel lies aber keine Kontaktierung zu. Die leitende Beschichtung löste sich beim Löten einfach auf. Ich höhlte dann die Tasten aus und setzte Microschalter dahinter. Der Rahmen mit den Tasten wurde dann wieder eingesetzt und die originale Optik war wieder hergestellt.

    Audioausgabe

    Für die üblichen Arten der Tonausgabe über HDMI-Adapter oder USB-Soundkarte ist kein Platz vorhanden. Eine Klinkenbuchse gibt es am Zero nicht. Ein PWM Ausgang läßt sich aber nachrüsten, so wie hier beschrieben:

    Analogen Audioausgang beim Pi Zero nachrüsten

    Die Schaltung habe ich für Mono-Bertrieb etwas abgeändert. Und zwar führen die 270 Ohm Widerstände auch die beiden Kanäle zusammen und Hoch- und Tiefpass sind nur noch einmal vorhanden. So sieht mein Versuchsaufbau aus:

    hier hätte jetzt noch eine kleine NF-Endstufe eingebaut werden müssen. Wegen den Nachteilen (Platzbedarf und Störgeräusche) verwarf ich die PWM Lösung. Aber gut zu wissen dass es diese Alternative gibt. Stattdessen setzte ich einen Max98357-I2S Baustein ein, welcher direkt eine 3W Endstufe beinhaltet und wegen der digitalen Übertragung einen störungsfreien, hochqualitativen Sound liefert. Der machte es übrigends notwendig das Buster 10 durch ein aktuelles Bullseye 11 zu ersetzen.

    Auf dem folgenden Bild liegt der Max98357 noch lose im Gerät, zu Installationszwecken ist ein HDMI-Bildschirm und eine USB-Tastatur angeschlossen:

    hier ist der Max98357 mittels einer kleinen Halterung angeschraubt:

    Das Kabel des USB-Netzteiles für die Spannungsversorgung führt durch das Batteriefach und durch eine kleine Knabberstelle nach außen:

    damit steht die Hardware. Die Software beschreibe ich im nächsten Abschnitt.

    Software

    Bei der Beschreibung der Software will ich nicht wieder von ganz vorne beginnen. Das Aufspielen eines Raspbian oder Raspberry Pi OS und die Installation und Konfiguration von iRadio sind mehrfach und umfangreich bereits im Forum beschrieben. Vielmehr will ich nur auf Besonderheiten, Spezialitäten und Neuerungen eingehen.
    Ich benutze gerne eine älteres Buster 10 Image. Neuere Versionen von Raspberry OS bieten oft unangenehme Überraschungen. Für meine erste Lösung der Tonausgabe mit PWM-Nachrüstung war das auch in Ordnung. Meine zweite und endgültige Lösung mit einem I2S-Baustein Max98357 hingegen verlangte ein aktuelles OS. Diesen Baustein hatte ich bisher nur bei ESP32 Systemen eingesetzt. Das ist in Verbindung mit einem Raspberry also Neuland für mich.

    Zunächst einmal gelang es mir nicht dem Max98357 überhapt einen Ton zu entlocken. Egal nach welcher Anleitung ich ihn installierte. Bis ich feststellte dass ohne den Tastensteuerungsdaemon gpiod der Ton funktionierte. Den Fehler konnte ich dann einkreisen auf einen bestimmten gpio, nämlich gpio27 (Pin 13). Sobald ich diesem eine Taste zuwies verstummte der Ton. Die entsprechende Funktion (Programm-) legte ich dann auf gpio22 (Pin 15). Dann erwies sich der Baustein auf einmal als unproblematisch.

    Für den Max98357 gibt eine einfache Installation und eine aufwändige, die beide funktionieren. Auf beide will ich hier eingehen. Die einfache Variante besteht einfach aus ein paar Einträgen in /boot/config.txt:

    Code
    dtparam=audio=on 
    dtoverlay=hifiberry-dac
    dtoverlay=i2s-mmap

    Quelle: Raspberry Pi Zero, audio output via I2S

    Jetzt hat der Max98357 aber die unangenehme Eigenschaft in jeder Tonpause in einen Ruhemodus zu gehen. Und der Ton setzt dann mit einem störenden Knacken wieder ein. Die zweite Möglichkeit der Installation berücksichtigt diese Eigenart indem sie den Baustein durchgehend beschäftigt. Was aber auch etwas an Ressourcen beansprucht.

    Die Installation wird ausgeführt mit einem Script von adafruit, welches auf einem Ur-Script von Pimoroni aufbaut:

    Code
    curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

    Dieses muss mindestens 3x ausgeführt werden! Mit einer Abfrage (playback in background?) kann man entscheiden ob man die Anti-Knack-Massnahme mit installieren will. Wenn es also eng wird mit der Rechenleistung oder es irgendwelche Inkompatibilitäten gibt dann kann man die Massnahme auch abwählen.

    Quelle: Adafruit MAX98357 I2S Class-D Mono Amp

    Weiterhin erwähnenswert wäre noch der von mir verwendete build-string für fbcp-ili9341:

    Code
    cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=24 -DGPIO_TFT_RESET_PIN=25 -DSPI_BUS_CLOCK_DIVISOR=8 -DSINGLE_CORE_BOARD=ON -DARMV6Z=ON -DSTATISTICS=0 -DDISPLAY_ROTATE_180_DEGREES=OFF ..

    Den Tastensteuerungsdaemon (Quelldatei: gpiod.c) änderte ich in der Art dass ich die Funktionen "weiter" und "halt" durch "volup" und "voldown" ersetzte. Ausserdem ergänzte ich ihn um eine fünfte Taste für den Mediaplayer. Hierbei gab es auch wieder eine seltsame Erscheinung, die ich zwar in den Griff bekam, aber nicht erklären kann. Schauen wir uns diesen Abschnitt an:

    speziell die letzte Zeile. Das Kommando für den Mediaplayer (plst) sendet über einen anderen Port. Der originale Parameter "7230 -w 0" führte zu einem Einfrieren des gpiod bei Betätigung der Mediataste. Durch "7230 -w 10" arbeitet er jetzt problemlos. Ich weiß nicht warum das so ist.

    Quelle für den Mediaplayer: unsere FAQ zum iRadio post#420

    ich sehe aber alle Probleme als gelöst an und das Fernsehen/Radio/Videoplayer funktioniert hervorragend. Der kleine Lautsprecher klingt überraschend gut und klar. Was noch aussteht ist der Einbau eines USB-Sticks. Hierzu habe ich kurze Adapter bestellt, kann aber noch nicht sagen ob ich einen solchen im Gehäuse unterbringe.

    Nachtrag:

    hier noch die Landkarte

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

    Edited once, last by saarfranzose (July 17, 2023 at 1:06 PM).

  • Sehr gut umgesetzt Jupp. Ich weiß nicht ob ich es hier erwähnen soll oder nicht. Die Entwicklung vom iRadio wurde bekanntlich eingestellt. Hier die Mitteilung.

    https://github.com/BM45/iRadio#nachtrag-23022023

    Ich habe mit Bernhard in unseren Sonntagsrunden auf Kurzwelle diskutiert ob und wie es weitergeht. Vielleicht hat jemand mitgehört und ich erzähle nichts Neues. So langsam sind Raspberrys wieder lieferbar, wenn auch noch zu höheren Preisen als vor der Kriese. Das wird sich in meinen Augen aber normalisieren und die Verfügbarkeit der neusten Raspberrys soll bis Jahresende komplett hergestellt sein. Raspberry 1, 2, 3 wird keiner mehr herstellen, nur noch 4 und die neusten Zeros, das ist klar. Das andere Problem war der Umstieg von Raspbian auf Raspbery PI OS von Seiten des Herstellers. Das gab da viele Umbauaktionen und Probleme die aber nicht nur das iRadio betreffen. Raspberry Pi OS basiert bekantlich auf Debian in der Version 11 -Bullseye. Im Mai hat der Hersteller das Raspberry PI OS auf den Linuxkernel 6 angehoben, wohl auch weil eine neue Debianversion am 10.6.23 mit Codenamen Bookworm erschienen ist, die dann wieder ein paar Jahre stabil bleibt. Raspberry Pi OS wird im Herbstupdate also mit sehr großer Wahrscheinlichkeit Bullseye verlassen und auch auf Bookworm umschalten. Verfügbarkeit der Rechner und der Schritt auf Bookworm bedeuten wieder Projektstabilität. Wir arbeiten daher am Neustart unter dem Namen iRadio2 Ende 23 bis Mitte 24.

    iRadio (1) wird bei Github so bleiben, weil es viele Installationen mit eigenen Anpassungen da draußen gibt. Diese würden bei einem Update nicht mehr funktionieren, deshalb der Neuanfang mit dem Schritt auf das neue Debian Bookworm um ein paar Jahre Stabilität zu haben. Funktionell soll in V2 alles erhalten bleiben was das iRadio V1 auch konnte, nur wird alles auf die neue Codebasis und Betriebssystembasis umgestellt. Ob alte Zöpfe (Uralt-Pi) abgeschnitten werden müssen ist noch nicht bekannt. Vorerst konzentrieren wir uns auf das was dann an Raspberrys aktuell hergestellt wird, also Zeros und Pi4. Alles was an Softwarebibliotheken als deprecated und not for new design markiert ist fliegt raus. iRadio-Module die diese libs benutzen werden umgeschrieben.

    Bis dahin und danach auch noch, haben wir weiterhin iRadioMini für ESP32, was ich jetzt hin und wieder direkt selbst anpassen werde, da ich es mehrfach verbaut habe und nutze und es mir am flexibelsten erscheint (sofern man etwas Programmieren kann). Es ist wie das iRadio es immer war kein Endprodukt, sondern ein Baukasten und Grundgerüst für eigene Lösungen. Nichts für Leute die was fertiges suchen. Was dabei rauskommt sieht man hier in deinem Beitrag! :smiley58: Nochmal Applaus und entschuldige meinen Einschub. Vielleicht ist die iRadio-Wasserstandsmeldung doch woanders besser aufgehoben, aber dein Projekt ist ja ein iRadio.

    Grüße aus HH
    Otto

    Mehrfach Antrag auf Löschung des Nutzerkontos gestellt!

    Edited once, last by Nutzerkonto_löschen (July 17, 2023 at 1:03 PM).

  • Hallo Otto,
    danke für deine Informationen, und auch für dein Lob. Die Neuigkeiten passen schon zu diesem Thema, und ich bin immer froh überhaupt irgendwas aktuelles über iRadio zu erfahren. Der momentane Stand von Bullseye macht bei diesem Projekt keinerlei Probleme. Das kann man ruhig so wie beschrieben aufbauen. Bei anderen Konfigurationen kann man natürlich nicht ausschliessen dass noch unangenehme Überraschungen warten. Raspberries der Versionen 2 und 3 habe ich noch ein paar auf Vorrat, und solange ich was damit bauen kann werde ich es auch tun. Der ESP32 bietet nun mal keine Videoschnittstelle und ist damit für ein Fernsehgerät keine Alternative.
    Mal sehen was die Zukunft bringt. Irgendwann ist alles mal zu Ende, es kommt aber auch immer wieder was neues.
    Grüß mir doch bitte mal den Bernhard.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • danke Pitter!

    Mit den neuen Adaptern von Micro-USB auf USB bekomme ich den Stick gut erreichbar im Batteriefach unter.

    ich hab dann noch etwas mehr vom Batteriefachboden weggeschnitten und kann jetzt auch größere Sticks einsetzen.

    Dann war noch die Grundauflösung auf 320 x 240 einzustellen, damit man auch die Konsole lesen kann.

    Ich lasse iRadio automatisch im Mediaplayer-Modus starten. Internetfernsehen ist, warum auch immer, auf all meinen Geräten problematisch. Sehr lange Umschaltzeiten und kaum ein flüssiger Stream.

    Gruß,
    Jupp
    -----------------------------

    Wenn man ein Orakel nur über Tautologien würfeln lässt, hat es immer recht.
    (MAKE)

  • Was mir besonders gefällt ist die Idee mit dem Flachkabel. Ich hasse mittlerweile die Dupon-Verbindungen wie die Pest - die muss man gleich nach dem Kauf testen und ggf aussortieren. Und paar Raspberies habe ich noch, werde ein TV wieder nachbauen. Problem ist immer funktionierende Sender -Links zu finden..

    Gruß,
    Ivan

    Edited once, last by navi (July 20, 2023 at 8:14 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!