Projekt HTPC zu Squeezebox mit Phono Eingang

  • Hallo,


    da mein alter HTPC nun nicht mehr gebraucht wird, möchte ich das schicke Gehäuse jetzt nutzen um mir eine Squeezebox zu bauen.


    Hierzu habe ich mir einen Pi 3, einen Phat DAC und eine Behringer USB Soundkarte mit Phono Vorverstärker besorgt. So kann ich dann hoffentlich auch unsere alten Schallplaten damit wiedergeben.


    Hauptsächlich soll er vom Logitech Media Server mit Radio oder MP3s versorgt werden. Im Phono Betrieb soll der Pi dann das Signal von der USB Soundkarte in einen Icecast einspeisen, dessen Stream dann vom LMS als Radio empfangen wird :tup Natürlich bekommt er auch eine FB und da das Gehäuse ein 7" Display verbaut hat soll dann auch Jivelite als GUI für Squeezelite installiert werden.


    Die Stromversorgung übernimmt das bereits vorhandene ATX Netzteil. Hierüber wird der Pi mit 5VSB dauerhaft mit Strom versorgt und bei Bedarf schaltet er das Netzteil über einen Transistor ein. Die Basis des Transistors ist direkt mit einem GPIO des Pi verbunden und schließt PS_ON des Netzteils mit Mass kurz. Das funktioniert bereits sehr gut nur habe ich hier eine Frage an unsere Elektronik Experten.


    Der Transistor ist ein BC547C. Ich habe keinerlei Widerstände zwischen GPIO und Basis oder PS_ON bzw. Masse und dem Transistor geplant. Ein Testaufbau auf dem Breadboard funktioniert so bereits. Auf Instructables verwendet allerdings jemand ein ATX Netzteil um einen 3D Drucker zu betreiben. Auf dem Schaltbild sieht man 1K Widerstände jeweils vor der Basis und dem Kollektor des 2n3904 Transistors. Warum verwendet der gute die Widerstände und benötige ich evtl. auch welche?

    Grüße


    Hannemann

  • Hi,


    interessantes Projekt,.. zu den Widerständen: im Augenblick verlässt du dich darauf,
    dass die internen pullup Widerstände vom GPIO (auf 3,3V) und vom Netzteil den Strom
    durch die Basis und im durchgeschalteten Zustand auf der Kollektor-Emitter Strecke limitieren,
    da können die 1K Widerstände zur Sicherheit nicht schaden, z.B. für den Fall dass sich der Transistor
    mal verabschiedet und der Raspi GPIO dann auf irgendwas oberhalb 3,3V geliftet wird,..


    viele Grüsse pbg4

    vdr1:Produktivsystem: Zotac Box mit Atom 525/ION 2.Generation yaVDR 0.6.1 und satip plugin, mit digibit r1/minsatip
    vdr2:Zotac CI-320 vdr für ARD radio transponder und VDR Aufnahmen server yaVDR 0.6.1,.. und weiterer minisatip-server + Hauppauge WinTV-Quad HD,
    vdr3: testsystem: Shuttle NC02U mit Skylake und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..
    vdr4: testsystem: Acer Laptop ES11-132 mit Braswell und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..

  • Danke für den Hinweis.


    Ich habe auf Youtube noch ein Video gefunden, da hat er (bei 1:00) einen Spannungsteiler zwischen GPIO, Basis und Masse eingebaut. Wäre so etwas empfehlenswert? Ein Breadboard aufbau funktioniert ebenfalls.

    Grüße


    Hannemann

  • Hi,


    wenn der GPIO auf logisch L geschaltet ist dann liegt (mit der Schaltung aus dem Youtube Video)
    der 1K parallel zum 10K gegen Masse, wenn der GPIO auf H geht, dann limitiert der 1K den Basisstrom
    des Transistors, der dann durchschaltet, ja, kann man machen mit dem 10K,..


    eigentlich macht man einen Widerstand parallel zur Basis-Emitter Strecke nur, wenn man verhindern will, dass der Transistor
    schon vom internen Pullup durchgeschaltet wird, dann müsste er aber kleiner sein,.. hmm,..


    viele Grüsse pbg4


    p.s. und bitte vom Endergebnis hier berichten, ich habe hier auch so ein Squeezebox Universum für die Musik am laufen,..

    vdr1:Produktivsystem: Zotac Box mit Atom 525/ION 2.Generation yaVDR 0.6.1 und satip plugin, mit digibit r1/minsatip
    vdr2:Zotac CI-320 vdr für ARD radio transponder und VDR Aufnahmen server yaVDR 0.6.1,.. und weiterer minisatip-server + Hauppauge WinTV-Quad HD,
    vdr3: testsystem: Shuttle NC02U mit Skylake und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..
    vdr4: testsystem: Acer Laptop ES11-132 mit Braswell und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..

  • Mahlzeit!


    Die gezeigte Schaltung im Link hat einen 1kOhm an +5V, d.h. es kann maximal ein Strom von 5V/1kOhm=5mA fliessen.
    Dein BC547C hat laut dem Link eine Stromverstaerkung von hFE=420, d.h. um 5mA am Kollektor fliessen zu lassen, brauchst du einen Basiseingangsstrom von 5mA/420, also ca. 12 Mikroampere IB...


    Der 1kOhm Basisvorwiderstand sorgt nun dafuer, dass im eingeschalteten Zustand ein Basisstrom von IB=(3,3V-0,7V)/1kOhm=2,6mA fliesst, also ca. das 200-fache des benoetigten Basisstroms. Falls der BC547C "durchhimmelt" waere das auch der Kurzschlussstrom am RPi GPIO. [KORREKTUR] Dann waeren es 3,3V/1kOhm=3,3mA im worst-case[/KORREKTUR]


    Du kannst also getrost den Vorwiderstand noch deutlich groesser machen, Faktor 10 (also 10kOhm) wird ohne Probleme funktionieren.
    Wird der Vorwiderstand allerdings zu gross (obwohl rechnerisch noch ausreichend, also z.B. 200kOhm), dann kannst du allerdings beim Sperren des Transistors in Probleme laufen (Leckstrom Kollektor-Basis, das koennte dann evtl. ein sicheres sperren verhindern).


    Das ganze auch ohne Beruecksichtigung der Schaltfrequenz, die fuer diese Anwendung aber vernachlaessigbar ist...


    Jetzt hoffe ich mal, ich habe da nicht was grundlegendes uebersehen :D

  • achja, und noch was zum Spannungsteiler an der Basis des Transistors.


    Faustregel (frueher, so vor ca. 30 Jahren!) war, dass der Strom durch den Widerstand parallel zu Basis-Emitter Faktor 10 des benoetigten Basisstroms ist, also in diesem Fall 10*12uA=120uA. Ergibt in Summe einen Strom von 10*IB+IB=132uA, die durch den Vorwiderstand fliessen sollen. Macht also fuer den Vorwiderstand dann 2,6V/132uA=20kOhm und fuer den Widerstand parallel zu Basis-Emitter 0,7V/120uA=6kOhm (grob gerundet).


    Dieser Faktor 10 ist allerdings eher fuer Analog-Anwendungen gedacht, im Schaltbetrieb reicht der Vorwiderstand wie oben beschrieben locker aus

  • Warum verwendet der gute die Widerstände und benötige ich evtl. auch welche?


    ohne Widerstand könnte der Basisstrom unkontrollierbar groß werden (je nach Sättigung). PG am ATX Netzteil ist zwar auch nur ein Steuerpin, das per Pegel reagiert, aber eine Begrenzung würde ich trotzdem einbauen, da die GPIO Pins nicht kurzschlussfest sind --> https://www.elektronik-kompend…/raspberry-pi/2002191.htm

  • Haha... Danke euch :)


    Leider haben eure Erklärungen für mehr Verwirrung als Erleuchtung gesorgt. Was Elektronik angeht bin ich leider leider nur gut im nachbauen ;)


    Wenn ich es also richtig verstanden habe, empfehlt ihr mir vor die Basis einen Widerstand von 10KOhm einzulöten, richtig?

    Grüße


    Hannemann

  • ja, so ist das, wenn man Fragen stellt.
    Aber über Spannungsteiler, Verstärkung, Schaltfrequenz brauchst Du dir keine Gedanken machen, der Transistor wirkt als normaler Schalter.


    Widerstandswert ist unkritisch, zwischen 1 - 100k sollte alles praktikabel sein ( je nach Fund in der Bastelkiste)

  • Also habe ich es richtig verstanden. Ich bin übrigens vom Phat DAC ab und habe den gegen einen Hifiberry DAC+ getauscht. Das ist natürlich einfache, weil der die GPIOs durchschleift. Flugs Pinheader eingelötet und läuft. Der Pi schaltet inzwischen mein Netzteil ein und damit auch gleichzeitig das Display des Gehäuses. Damit bin ich schon mal zufrieden und mach mich jetzt an das kompilieren von Jivelite als GUI.


    Squeezelite gibt es inzwischen in den Repos von Raspbian. Läuft OOTB.

    Grüße


    Hannemann

  • Füe jeden den es Interessiert: ich kommentiere die Fortschritte auf Github: https://github.com/hannemann/raspbin-jessie-squeezebox


    Füe heute reicht es erst mal. Autostart der Jivelite Oberfläche mit Tatstatur Steuerung sowie Musik Wiedergabe läuft mehr oder weniger OOTB. Als nächstes möchte ich die Taster am Gehäuse mit dem GPIOs verheiraten sowie Power on über den Power Switch und natürlich Lirc. Um zu ergründen ob und wie das alles gehen soll musste das Gehäuse erst mal komplett zerlegt werden. Das hat ganz schön Zeit gekostet. Das Display ist auch ein Touchscreen aber das ist IMO mehr nice to have. Wichtiger ist der Anschluss für den Plattenspieler sowie Icecast zum Streamen desselben.


    Danke noch mal an euch :tup

    Grüße


    Hannemann

  • Hi,


    das scheint ja gut voran zu gehen,.. alternativ zum icecast Ansatz für den Plattenspieler könntest
    du auch das waveinput plugin von bpa direkt für den lms testen, damit geht man dann auch so Problemen wie evtl.
    Brummschleifen etc. wg. dem Masseanschluss vom ATX Netzteil und der Verbindung zum Ground des Analog in
    für den Plattenspieler aus dem Weg, der Annonce thread vom waveinput plugin ist noch aktiv, siehe:


    http://forums.slimdevices.com/…ounce-WaveInput-for-Linux


    viele grüsse pbg4

    vdr1:Produktivsystem: Zotac Box mit Atom 525/ION 2.Generation yaVDR 0.6.1 und satip plugin, mit digibit r1/minsatip
    vdr2:Zotac CI-320 vdr für ARD radio transponder und VDR Aufnahmen server yaVDR 0.6.1,.. und weiterer minisatip-server + Hauppauge WinTV-Quad HD,
    vdr3: testsystem: Shuttle NC02U mit Skylake und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..
    vdr4: testsystem: Acer Laptop ES11-132 mit Braswell und Softhddevice VAAPI/HEVC für DVB-T2, Ubuntu Zesty, VDR von Hand auf Basis yaVDR,..

  • Coole Idee. Ich habs nur kurz überflogen (bin schon heia). Dann müsste ich den Plattenspieler an das NAS mit dem LMS anschließen. Hmmm...


    Vorhin habe ich noch nen Transistor eingebaut, der das Display schalten kann. Dafür gab es auf dem Bedienelement einen Taster. Den kann ich jetzt für was anderes Nutzen.


    Die Taster senden alle ein Signal mit verschiedenen Widerständen durch die selbe Leitung. Leider hat der PI ja keinen analogen Eingang also muss ich dafür 6 GPIO Pins nehmen. Die Möglichkeit die Ladezeit eines Kondensatirs zu messen war mir bei 220nf zu langsam und darunter wird es wohl zu ungenau als das man die Taster noch differenzieren könnte. Vielleicht mach ich hier noch was mit einem Arduino.

    Grüße


    Hannemann