RPi400extBrd: schlizbäda's Extension Board für den Raspberry Pi 400 mit Soundkarte, RTC und UART

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Der RPi400 und die GPIOs -- ein Trauerspiel

    Beim "normalen" RPi werden Erweiterungsplatinen (PiHATs) auf die stehende GPIO-Leiste des RPi aufgesteckt. Die Erweiterungsplatine ist also im angesteckten Zustand liegend über dem RPi. Deshalb sind vom Design her Bedienteile und/oder Steckverbinder meist auf der Oberseite der Erweiterungsplatine angebracht. Von der RPi-Foundation gibt es eine Spezifikation, an welche Regeln sich eine Aufsatzleiterplatte zu halten hat, um offiziell als PiHAT (HAT=Hardware Attached on Top) bezeichnet werden zu dürfen: Designing a HAT.

    Am RPi400 ist die Stiftleiste waagerecht an der Rückseite herausgeführt, ein Anschluss ist damit zwar grundsätzlich möglich. Aber die meisten PiHATs lassen sich nicht vernünftig bzw. ergonomisch anschließen:

    Bilderstrecke RPi400 mit SenseHAT

    Anschluss des Sense-HAT-Moduls am RPi400:

        

    Bilder 1 und 2:
    bei richtigem Anschluss zeigen die LEDs und Taster nach hinten. Eine Bedienung ist damit extrem lästig und beinahe unmöglich.

    Bild 3:
    Mit einem Flachbandkabel wird's nicht wirklich besser: Die erforderliche Drehung der Zusatzleiterplatte bringt nicht viel.

    ...und das (für mich) Schlimmere: Wo bleibt der Sound?  :fies:

    Bezüglich der vier(?) Möglichkeiten der Audioausgabe am RPi sieht's beim 400er wie folgt aus:
    * Klinkenbuchse: fehlt (ok, nicht schade darum) :stumm:
    * HDMI ist das einzige, was direkt funktioniert, aber viele PC-Bildschirme haben nach wie vor keine Lautsprecher :baeh2:
    * USB-Soundkarte: geht, nimmt aber eine der ohnehin nur drei USB-Buchsen weg. :X
    * I2S-Soundkarte an der GPIO-Leiste: kann man machen, sieht aber shice aus! :wallbash:

    Deshalb habe ich eine Platine mit KiCad erstellt, die diese Probleme (hoffentlich) einigermaßen beseitigt:

    Folgende Features hat die Leiterplatte:
    * Die GPIOs vom RPi400 (im Bild unten) werden 1:1 auf die Stiftleiste auf der Oberseite durchgeführt (im Bild oben).
    * Die Leiterplatte orientiert sich an der HAT-Konformität der RPi-Foundation bezüglich der Abmessungen und Montagebohrungen.
    * In den hinteren beiden Montagelöchern können Abstandsbolzen montiert werden, damit die Leiterplatte sicher auf dem Tisch steht und der RPi400 nicht hochkippen kann.
    * Multilayer-Platine mit vier Lagen (war notwendig, mir wären zwei Lagen auch lieber gewesen)
    * Die Bauteile sind nur auf der Oberseite bestückt. Unten befindet sich optional nur ein Supercap oder ein Halter für eine CR2032-Knopfzelle zur Pufferung der RTC.
    * Ausführung in 0603-SMD-Technik, eine Größe, die mit vernünftigem(!) Werkzeug gerade noch manuell bearbeitet werden kann. War aus Platzgründen erforderlich.
    * Die UART-Pins an der GPIO-Leiste des RPi werden auf den FTDI-Chip FT32RL geführt, um eine serielle Schnittstelle (RS232) über USB zum PC umzusetzen (virtual COM port).
    * Sockel für ein ID-EEPROM (z.B. 24LC32A) an den GPIO-Pins 27 und 28. Alternativ kann eine SMD-Variante bestückt werden.
    * I2S-Soundkarte mit PCM5122 (BurrBrown bzw. mittlerweile Texas Instruments) auf Cinch, dem gleichen I2S-DAC, der auf dem Hifiberry DAC+ verwendet wird.
    * Class-AB-Verstärker basierend auf dem LM4838, einem 2x2W (EDIT 16.07.2024: 2x1W) Stereoverstärker bei 4Ω-Lautsprechern. Damit hat man etwas Vergleichbares zum Hifiberry MiniAmp.
    * Vernünftige(?) Power Rail mit klarer Trennung zwischen GNDD und GNDA (digitaler und analoger Masse), um Störungen zu minimieren.

    Stromlaufplan:
    RPi400extBrd_2022_01_schematic.pdf

    Komponenten / Konfiguration:
    Das Ganze habe ich so konzipiert, dass die einzelnen Teilkomponenten autark sind und ggf. auch weggelassen werden können. Dies reicht bis in die Soundkarte rein: Nur PCM5122 für Hifiberry-DAC+-Funktionalität oder mit Verstärkerteil LM4838, um die Soundkarte zu einer Art MiniAmp+ auszubauen. MiniAmp+ deswegen, weil hier der "bessere" I2C-Wandler PCM5122 und nicht der PCM5101A verwendet wird und anstelle des Class-D-Verstärkerbausteins PAM8403 ein echter Class-AB-Verstärker, der LM4838 zum Einsatz kommt.

    * Der einfachste Fall wäre ein nacktes Board nur mit den beiden GPIO-Leisten für RPi400 und die klassische stehende Stiftleiste als mechanisches Aufsatzboard am RPi400
    * ID-EEPROM
    * UART
    * RTC
    * Hifiberry-kompatible Soundkarte, aufteilbar

    Ich habe gestern ein ein paar Platinen bestellt. Sie sollten in 14 Tagen (07.-08.02.2022?) da sein. Dann muss ich sie noch bestücken (oder bestücken lassen).
    Zwei Platinen sind schon für Interessenten hier im Forum reserviert, ich brauche selber natürlich auch mindestens eine :lol:

    Bei Interesse einfach bei mir melden, zum Preis kann ich noch nichts Genaues sagen, ich werde heute noch die BOM (Stückliste) zusammenstellen und das Ganze mal ausrechnen. Nur so viel: das nackte Board kostet mich knapp 16€.

    Wenn das Material da ist, werde ich die Boards aufbauen, testen und hier berichten. Stand heute ist alles noch graue Theorie.

  • RPi400extBrd: schlizbäda's Extension Board für den Raspberry Pi 400 mit Soundkarte, RTC und UART? Schau mal ob du hier fündig wirst!

  • Stückliste und Preise:

    wie angekündigt habe ich vor, insgesamt 10 Leiterplatten fertigen zu lassen. Einige relativ teure Bauteile (z.B. die samtec-Buchsen SSQ-120-03-G-D und SSQ-120-02-G-D) habe ich durch günstigere Bauteile ersetzt. Die RTC DS3232MZ+ (8,30€), U201 lasse ich unbestückt.

    Folgende Bauteile werde ich nicht bestücken, um den Preis noch etwas drücken zu können:
    * U501, FT232RL (virtual COM port) -- nicht lieferbar wegen des derzeitigen Chipmangels, 3,72€
    * L502, die dazugehörige Entstör-Induktivität für die USB-Leitungen -- nicht lieferbar wegen des derzeitigen Chipmangels, 1,07€
    * Deshalb ist auch die Mini-USB-Buchse X501 nicht notwendig -- mit 1,45€ relativ teuer
    * U201, der RTC-Baustein (8,30€) -- ist in einem SO8-Gehäuse und kann bei Bedarf relativ leicht nachbestückt werden...
    * C209, ein Supercap/Goldcap mit 1F als Alternative zu einer Knopfzelle CR2025 bzw. CR2032 (3,14€)
    * BT201, ein Batteriehalter für Knopfzellen vom Typ CR20xx (0,27€)
    * U204, PDIP-Variante des ID-EEPROMs 24LC32A/P + IC-Sockel (0,45€ + 0,28€)

    Damit komme ich auf einen Nettopreis (d.h. ohne MwSt) der Bauteile von ca. 27,13€. Brutto wären das dann 32,28€

    Zusammen mit dem Preis der Leiterplatte von 16,--€ würde ich mir erlauben, von Interessenten 50,--€ als Unkostenbeitrag für die bestückte Platine zu verlangen. --> Sowas wird einfach erst in größeren Serien billiger...

    Da ich einige der genannten Bauteile für mich trotzdem mitbestellen werde, könnte ich die bei Interesse mit liefern

    Anbei die Stückliste für die Prototypen:

  • Isch abe gar keine PI400 ???

    Aber ich finde deine Arbeit absolut toll!!! :bravo2::bravo2::bravo2::danke_ATDE::danke_ATDE:

    Display Spoiler

    Pi4 V1.1, 4 GB, USB3-Hub, 250 GB SSD, Bullseye 64, Mate-Desktop, SD-Card Extender (ruht)
    Pi3b Pihole (Buster)
    Pi3b, 128-GB-SSD, Buster, mit 10,1" Monitor als MM (ohne Spiegel ;) )
    orangepi zero, ohne Beschäftigung
    Pi 5 4 GB im GeekPi-Gehäuse mit externer SSD (Bookworm)


    Warnung: Raspi und Co. machen süchtig! :)

  • Ich vergaß noch zu schreiben, dass der untere Teil der Platine, wo sich der waagerechte Anschluss für den RPi400 befindet, so mit Vias perforiert wurde, dass dieser untere Teil weggebrochen werden kann. Dann hat man eine Leiterplatte in der Größe eines PiHATs, die man auf einen "normalen" RPi aufstecken kann.

  • Die Idee finde ich gut. Planst du noch ein Gehäuse dazu? Ich sehe beim so einstecken nämlich das Problem das ein metallischer Untergrund zu einem Kurzschluss führt oder die Pins vom P400 beschädigt werden können wenn etwas Druck auf die angesteckte Erweiterung ausübt. Davon abgesehen gute Arbeit.

  • Hi InterGeek ,

    ich habe kein explizites Gehäuse vorgesehen, aber geplant, die Leiterplatte über Abstandsbolzen M2,5 x 12 abzustützen. Alternativ kürzere Abstandbolzen (10mm Länge) mit Polyamid-Schrauben, die den Tisch nicht verkratzen. Meine Platine hat an den Befestigungslöchern die gleichen Kupferaussparungen (Durchmesser 6,0mm) wie der RPi. Somit entstehen bei Verschraubungen keine Kurzschlüsse (Siehe Bild in Beitrag #1).

    Über ein Gehäuse aus dem 3D-Drucker kann man natürlich nachdenken...

    EDIT -- aktueller Stand:

    Von den Bauteilen habe ich alle die derzeit lieferbaren bestellt und erhalten.
    Die Platinen sollten Mitte der Woche kommen (Mi, Do?)

    Dann ist geplant, am Wochenende die Leiterplatten zu bestücken --> das kann ich aber nicht versprechen!

    Blöd: Da sitze ich auf glühenden Kohlen wie ein Kind vor Weihnachten. Die Leiterplatten wurden am Di mit DPD verschickt und bis heute (Sa 12.02.) hängen sie laut Trackingverfolgung irgendwo im Auslieferzentrum herum :conf: Da muss ich mich wirklich wundern :fies:

    Ja genau, und am Montag, den 14.02.2022 -- kurz nach dem Wochenende -- sind die Leiterplatten dann gekommen. Danke DPD!

  • interessante Idee die du da hast, die GPIO-Leiste wie ein pcieslot zu benutzen, das bietet viele Einsatzmöglichkeiten . Plug n' play sozusagen was man grade braucht wird eingesteckt .

    aber noch zum pi 400 der hat noch Bluetooth damit geht die Audioausgabe auch, bei mir läuft das darüber zur zeit. ;)

    aber ich bin noch nicht so lange dabei ^^

    lg

  • Das ist die Frage, funktioniert die Erweiterung ohne zusätzliche Handarbeit von Haus aus oder braucht man spezielle Anpassungen am System um damit arbeiten zu können?

    ohne ein wenig Handarbeit kommt man selten drum herum. eine Grafikkarte installiert sich auch nicht wirklich von alleine, meisten Basistreiber werden geladen und den Rest muss man per Hand installieren, also sozusagen Plug n' play.

    Es gibt beim PI Einstellungensmöglichkeiten für die GPIO Schnittstelle, direkt eine serielle Schnittstelle und/oder eine I2S Schnittstelle zu erstellen die Schnittstellen gibt es ja da. soweit wie ich das verstanden habe ist es dann nur 2 schalter im Menü umlegen schon geht es los.

    Aber ich kann mich auch irren denn ich lerne noch :saint:

  • interessante Idee die du da hast, die GPIO-Leiste wie ein pcieslot zu benutzen, das bietet viele Einsatzmöglichkeiten . Plug n' play sozusagen was man grade braucht wird eingesteckt .

    nein, die GPIO-Pins werden mit meiner Leiterplatte NICHT in einen PCIe-Slot umgewandelt! Das geht technisch nämlich gar nicht.

    Hier werden lediglich die I2S-Signale an der GPIO-Leiste abgegriffen, die an den Pinnummern 12, 35 und 40 liegen. Die Schaltung mit dem PCM5122 entspricht (hoffentlich) dem Hifiberry DAC+, so dass beim richtigen Eintrag in der /boot/config.txt meine Soundkarte softwaremäßig wie der Hifiberry DAC+ funktioniert...

    Code: /boot/config.txt
    #dtparam=audio=on # diese Zeile auskommentieren oder löschen
    dtoverlay=hifiberry-dacplus

    Die Sache mit PCIe (oder auch SATA) kann man evtl. mit einem entsprechenden USB3-Gerät umsetzen, aber das ist nicht Bestandteil dieses Projektes!

    Ebenso Bluetooth -- auch das ist eine andere Baustelle.

  • Bestückung von 12 Leiterplatten auf zwei Nutzenleiterplatten (3x2)

    Am 19.02.2022 war's dann so weit. Ich durfte die Leiterplatten bei meinem Arbeitgeber bestücken lassen. Das lief grob in folgenden Schritten:
    1. Bereits im Vorfeld: Pick+Place-Daten für den Siemens-Bestückautomaten (Siplace) als Nutzenbestückung aufbereiten
    2. Rüsten der Bauteile über die einzelnen Feeder
    3. Lötpaste mit Lötschablone auf die Nutzenleiterplatten aufbringen ("rakeln")
    4. Handbestückung von Bauteilen am Manipulator, die nicht in der Siplace-Firmenbibliothek enthalten sind
    5. Reflow-Löten

    Hier noch ein paar Bilder als ZIP-Datei. Die einzelnen Bilder haben entsprechende Dateinamen inkl. Zeitstempel für den chronologischen Ablauf.

  • Test der Verstärkereinheit LM4838

    Als ich gestern nach dem Bestücken um 14:00Uhr nach Hause kam, wollte ich voller Tatendrang meine Platine(n) testen, nur leider war das Wetter (zu) schön: Deshalb musste ich meinen Elten beim Obstbäume zuschneiden helfen, ich wurde sozusagen "verhaftet". Meine Freude darüber hielt sich in überschaubaren Grenzen und die Begeisterung dafür war äußerst mittelmäßig...
    An sich ist mir der Obstgarten nicht wurscht, aber ausgerechnet heute!

    Zwei Einzelboards wurden in der Firma nur mit dem 2x1W Class-AB-Verstärkerbaustein LM4838 bestückt, ohne PCM5122, damit ich ohne RPi den Verstärkerteil testen konnte:

    Läuft passabel, ähnlich zum MiniAmp, gefühlt kaum leiser, an meinen 15-Zoll Profiboxen HK audio PRO-15X richtig brachial mit Bass, so weit man das bei 2x1W sagen kann :^^: -- auf jeden Fall erstaunlich gut.

    • Beim Ein- und Ausschalten knackt nichts (geil!)
    • Bei voller Lautstärke höre ich im Bass leichte Verzerrungen (Klirrfaktor) --> das müssen die Rückkoppelwiderstände demnächst richten: EDIT 05.03.2022: R418 (rechts) und R422 (links) wurden von 20k auf 33k erhöht, um die maximalen Eingangssignale vom PCM5122 unverzerrt zu verstärken.
    • Der Lautstärkeregler wird bei Drehung gegen den Uhrzeigersinn lauter. Bei allen Geräten, die ich kenne ist lauter im Uhrzeigersinn --> Layoutanpassung
    • Links/rechts beim Cinch-Eingang vertauscht (rot=links statt rechts, weiß ist bei mir rechts) --> Layoutanpassung
    • EDIT 05.02.2022: Die gesamte Audiokette ist aber richtig geroutet, denn Audio-links/rechts von speakertest -c 2 kommt an den auf der Leiterplatte entsprechend beschrifteten Lautsprecherausgängen. Fazit: Das von mir erstellte KiCad-Bauteil für die Cinch-Doppelbuchse ist rotzverkehrt!

    Mein persönliches Fazit: Dieser Teil passt

    Wenn's mich bockt, werde ich es vielleicht mit meinem Oszi noch tiefergehend durchmessen, mit definierten Frequenzen an 4R-Widerständen. Wobei bei Audio das beste Messgerät das eigene Ohr ist :lol:

    Impressionen vom ersten Betrieb

    Gesamtansicht mit kleinen Lautsprechern:

    Gesamtansicht mit Boxen von HK audio -- geil

       

    Betrieb am Netzgerät mit 4,6V, das mir mein Vater vor knapp 40 Jahren gebaut hat:

    RPi400extBrd -- nur mit Verstärkerbaustein LM4838:

      

    EDIT: Quercheck mit MiniAmp am Raspiblaster

    Der MiniAmp mit seinen 3W ist definitiv nochmals lauter und er ist so eingestellt, dass er auch bei 100% Lautstärke nicht übersteuert/verzerrt. Die Lautstärke ist (für mich) nicht das Problem, die 2W reichen für diese Anwendung locker, aber die Widerstände am LM4838 zur Steuerung des Verstärkungsfaktors (gain) müssen noch entsprechend angepasst werden...

    Vergleich mit MiniAmp bei gleicher CD und gleichen Lautsprechern:

  • Aufsatzplatine auf dem RPi400extBrd am Beispiel des SenseHAT

       

    Hier habe ich mein SenseHAT-Game gestartet, um zu testen, ob der SenseHAT auf meinem RPi400extBrd funktioniert. Es sieht gut aus -- aber nicht auf dem Foto, da haben die LEDs die Handykamera überbelichtet...

    Auf der anderen Leiterplatte lief vom CD-Spieler gerade Zähneputzen, pullern und ab ins Bett und das werde ich jetzt beherzigen ;)

  • Ach du grüne Neune -- BLÖD!

    Da ist mir ein mehr als saudummer Fehler unterlaufen: Am Bauteil der Cinch-Buchse habe ich den Signalinnenleiter mit dem Masseaußenleiter verwechselt. Ich dachte die beiden seitlichen Anschlüsse seien Masse und der mittlere wäre der Signalanschluss. Leider ist es genau andersherum. Damit habe ich einen Audio-Kurzschluss am Eingangssignal, wenn ein Cinchkabel an der Buchse angesteckt wird! :(

    Und das noch blödere ist, dass besagtes Massesignal (AGND) in einer Kupferfläche in einer Innenlage(!) liegt, so dass man an der Leiterplatte nicht einfach herumschnitzen kann! ;(

    Gott sei Dank habe ich die Buchse erst auf zwei Boards verlötet, denn die ist äußerst schwer zum Entlöten!

    Jetzt weiß ich wenigstens, wo diese seltsamen Geräusche im leisen Betrieb herkommen, die ich zunächst (in Beitrag #12) nicht bemerkt hatte.

    Aber ich wäre nicht der schlizbäda, wenn mir dazu nichts einfallen würde...

    EDIT 25.02.2022:
    Bei den Prototypen kann man die Cinchbuchse eben einfach nicht verwenden -- 's is hoid so...

    Ich habe dann zum Testen ein Cinchkabel auseinandergezwickt und die Kabel richtig am Einbauplatz für die Chinchbuchse angelötet. Doch die seltamen Störgeräuse im leisen Betrieb verschwanden nicht, trotz diverser Anpassungen an den Rückkoppelwiderständen. Dann nahm ich einen anderen Prototypen her, der noch nicht über Cinch am CD-Spieler angeschlossen war. Und siehe da, die Störgeräusche waren weg!

    Da habe ich wohl über die Fehlbeschaltung den Verstärker-IC beschädigt :(

    Beim Betrieb als "MiniAmp+", d.h. als RPi-Soundkarte mit PCM5122 und anschließender Verstärkung über den LM4838 wird die Cinchbuchse eh nicht benötigt. In dieser Variante ist die Leiterplatte also weiterhin tauglich. Da die Cinchbuchse hier nicht benötigt wird, kann man sie einfach weglassen. Der Fehler entsteht nämlich erst dann, wenn man ein Cinchkabel ansteckt und damit Masse und Audiosignal vertauscht bzw. über die Audioquelle (hier: CD-Spieler) kurzschließt. Obwohl der CD-Spieler und das RPi400extBrd eigentlich galvanisch getrennt sein sollten?

    (Naja, ganz verstehe ich es noch nicht...)

  • Betrieb am RPi400 mit PCM5122 und LM4838 (sozusagen als MiniAmp+)

    Na wenigstens war das plug+play:

    1. in /boot/config.txt das device tree overlay für Hifiberry DAC+ aufnehmen (wie in Beitrag #10 angekündigt)

    Code
    # Enable audio (loads snd_bcm2835)
    #dtparam=audio=on # diese Zeile auskommentieren oder löschen
    dtoverlay=hifiberry-dacplus

    2. Neustart und Überprüfung der ALSA-Soundkarten:

    aplay --list-devices

    Code
    **** Liste der Hardware-Geräte (PLAYBACK) ****
    Karte 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], Gerät 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 [HiFiBerry DAC+ HiFi pcm512x-hifi-0]
      Sub-Geräte: 1/1
      Sub-Gerät #0: subdevice #0
    ALSA-Standardkonfiguration vor Änderung der /boot/config.txt

    3. Lautsprechertest:

    a) Rosa Rauschen mit speaker-test -c 2

    b) Video abspielen mit "Riegler Hias feat. d'Hundskrippln - Gloana Bauer.mp4"

       

    Den Treiber für Hifiberry DAC+ habe ich mir in bester open-source-Manier ausgeliehen.
    Sogar die grüne LED auf meinem RPi400extBrd leuchtet, genau wie auf dem Original Hifiberry DAC+ :)

    Lautstärkeregelung:

    - blaues Poti (hinter dem linken vorderen Abstandsbolzen)

    - softwaremäßig, z.B. über den alsamixer

    EDIT:
    Ach ja, wem das Bild auf dem großen Bildschirm etwas seltsam vorkommt: Das ist mein neuer 4K-Bildschirm Samsung U28R554UQR mit Bild-in-Bild-Funktion: Rechts unten wird der RPi400 in 1080p eingeblendet (es wird gerade das Video "Gloana Bauer" abgespielt). Der Rest ist der zweite Desktop von meinem ubuntu-Laptop. Saupraktisch!

  • ID-EEPROM 24C32 an den Pins 27 (ID_SD) und 28 (ID_SC)

    Auch das funktioniert. Allerdings musste ich mich erst in die Materie einlesen. Die Thematik ist von der RPi-Foundation gut beschrieben:

    Raspberry Pi Documentation - Accessories
    The official documentation for Raspberry Pi computers and microcontrollers
    www.raspberrypi.com
    GitHub - raspberrypi/hats
    Contribute to raspberrypi/hats development by creating an account on GitHub.
    github.com
    hats/designguide.md at master · raspberrypi/hats
    Contribute to raspberrypi/hats development by creating an account on GitHub.
    github.com

    STICKY: HOWTO: Raspi HAT EEPROM and device-tree - Raspberry Pi Forums

    An den beiden I2C-Pins ID_SD und ID_SC hängt das empfohlene serielle EEPROM 24C32A mit 32Kbit bzw. 4096 Byte. Es hat außerdem einen WriteProtect-Eingang (lo=EEPROM beschreibbar, hi=schreibgeschützt). Der standardmäßig aktive Schreibschutz kann auf dem RPi400extBrd über Bestückung des Jumpers JP201 aufgehoben werden, um das EEPROM mit den gewünschten Daten zu beschreiben.

    An SDA, SCL und WP des EEPROMs hängen auf dem RPi400extBrd PullUp-Widerstände mit 3k9.

    Ich habe dies mit den Daten meines Hifiberry-DAC+-Moduls mal testweise nachvollzogen.

    Beschreiben des PiHAT ID-EEPROMs mit den Daten von Hifiberry DAC+

    1. Zugriff auf das ID-EEPROM freischalten:
    Der I2C-Bus an den Pins 27 und 28 der GPIO-Leiste ist der I2C-Bus des VideoCore-Moduls (GPU). Der Zugriff über den dazugehörigen Linux-Treiber erfolgt in der /boot/config.txt mit folgendem Eintrag:
    dtparam=i2c_vc=on

    Überprüfung nach Reboot:
    Die Gerätedatei für den Videocore-I2C-Bus lautet unter dem aktuellen Raspberry Pi OS Bullseye (desktop) /dev/i2c-0.

    hier sieht man an der 7bit-I2C-Adresse 0x50 das EEPROM.

    2. EEPROM Utils herunterladen und erstellen:

    Code
    pi $ cd /home/pi # ins Homeverzeichnis wechseln (falls man nicht eh schon dort ist)
    pi $ sudo apt install hexedit # Ein Hexeditor ist bei der Arbeit mit EEPROMs immer praktisch.
    pi $ git clone https://github.com/raspberrypi/hats.git # EEPROM utils
    pi $ cd hats/eepromutils
    pi $ make && sudo make install # EEPROM utils kompilieren und installieren

    3. Auslesen der Daten aus einem vorhandenen PiHAT, hier einem relativ alten Hifiberry DAC+:

    Dazu an der GPIO-Leiste das gekaufte Hifiberry-Modul anschließen.

    Nach Abschalten des RPi den Hifiberry entfernen und durch das RPi400extBrd ersetzen.

    Code
    pi $ nano RPi400extBrd.txt # Inhalt des ID-EEPROMs konfigurieren
    pi $ eepmake RPi400extBrd.txt RPi400extBrd.eep

    Aber das folgt später...

    4. Beschreiben des ID-EEPROMs mit den ausgelesenen Daten und überprüfen:

    Wenn man damit fertig ist, muss man für das automatische Laden der dazugehörigen Treiber Achtung: Unwort! nur noch ein Device-Tree-Overlay samt dazugehörigem Linux-Treiber installieren. Für den Anfang habe ich für mich entschieden, für den Verstärker den Hifiberry-DAC+-Treiber zu verwenden und für die RTC DS3232 den vorhandenen Treiber für den kompatiblen Baustein DS3231, allerdings ohne Zugriffsmöglichkeit auf das zusätzliche SRAM von 236 Bytes.

    Wenn das alles funzt, kann der Eintrag dtparam=i2c_vc=on in der /boot/config.txt wieder gelöscht werden.

    Achtung: (EDIT 25.02.2023)
    Wenn man das RPi400ExtBrd für seinen eigentlichen Zweck verwendet, weitere PiHATs bequemer anstecken zu können, sollte der EEPROM nicht bestückt sein, da er sonst mit dem des aufgesteckten PiHAT kollidieren kann!
    Lieber dann die einzelnen Treiber explizit in der /boot/config.txt eintragen...

  • Kurze Zwischenfrage zum VLC-Player:

    Betriebssystem: Raspberry Pi OS 11 "Bullseye" with desktop

    ja Greimfetzn...

    Ja Greimfetzn, den omxplayer gibt's ja leider(!) nicht mehr unter Raspberry Pi OS 11 "Bullseye". Es wird immer mehr ein Betriebssystem, das den Namen Raspbian nicht mehr verdient! :(

    Ich habe jetzt auch auf die Schnelle keine linuxnoobtaugliche Lösung gefunden, den omxplayer ohne viel Gefrickel unter Bullseye nachzuinstallieren. ;(

    Nutzt von Euch jemand den VLC-Player auf dem RPi zur Video- und Audiowiedergabe?

    Bei meinen Tests ist mir so nebenbei aufgefallen, dass der VLC-Player selbst bei reinen Audiodateien kurze Aussetzer hat, wenn man mit den Cursortasten 5(?)s vor-oder zurückspringt. Das Springen selbst erfolgt ohne Aussetzer, aber nach 1-2s treten welche mit kurzer Dauer <0,5(?) s auf.

    Als Gegenprüfung habe ich den Alsaplayer mit sudo apt install alsaplayer installiert und da fiel mir jetzt nix auf.

    Auf meinem RPi400 sind in Pulseaudio/ALSA drei Soundkarten aktiv, wobei physikalisch nur die HiFiBerry-Karte "card 2" funzt, da mein HDMI-Bildschirm keine Lautsprecher hat:

    aplay -l

    Code
    **** List of PLAYBACK Hardware Devices ****
    card 0: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 2: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 [HiFiBerry DAC+ HiFi pcm512x-hifi-0]
      Subdevices: 0/1
      Subdevice #0: subdevice #0

    Jetzt wollte ich wissen, ob es bei anderen auch so ist?
    * Hat der VLC-Player bei Euch auch die beschriebenen Aussetzer?
    * Welche Soundkarte verwendet Ihr dabei?
    * Ist das unter HDMI-Audio auch so?
    * Sonstige Erfahrungen...

  • Es ist so weit, ich habe noch ein paar Prototypen und kann die zum Selbstkostenpreis abgeben

    Nach erfolgreicher Testphase habe ich ein paar Leiterplatten übrig, die ich an Interessenten hier im Forum zum Selbstkostenpreis (30,--€ , unter Einkaufspreis wegen des Fehlers) abgeben würde. Bei Interesse einfach per PN bei mir melden.

    und hier noch ein PDF von einem DIN-A4-Werbezettel:

  • Hat eine Weile gedauert, aber dieses WE komme ich endlich mal dazu, wenigstens den Soundkartenteil zu testen.

    Gestern Abend hatte ich mich ziemlich doof angestellt und mich darüber gewundert, dass das was da rauskam sehr leise war, obwohl ich softwareseitig überall (VLC-Player / Taskleisteen-Lautsprechersymbol / alsamixer) die Regler voll hochgezogen hatte. Verwendet wurden zu diesem Test 220W Boxen und die Songs Roots von Sepultura und Böse von Knorkator, also nicht gerade die leiseste Musik.

    Heute ist mir eingefallen, dass das Board ja doch ein Poti für die Lautstärkeregelung hat. :shy: Kaum macht man es richtig und schon kam da ein richtig satter Sound aus den Boxen. :bravo2::cool:


    Jürgen Böhm Ein kleiner Tipp am Rande: Dreh das Poti bei Deinem ersten Test auf keinen Fall ganz nach links! Mich hat es fast aus vom Stuhl geblasen, weil ich auf diese Lautstärke absolut nicht gefasst war. ;)


    //Edit

    Fast vergessen... Störgeräusche wie Knacken bei Systemstart oder Knistern / Rauschen an leisen Stellen habe ich (im Gegesatz zum HifiBerry MiniAmp) nicht wahrgenommen.

Participate now!

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