ESPuino-mini 4Layer

Eine doofe Frage: Gibt es auf dem Board irgendwo einen line-out, den man sich abzwacken könnte? Ich habe mich für den Sonoro Troy als Gehäuse zum Ausschlachten entschieden, möchte mittlerweile aber versuchen, möglichst viel ganz zu lassen, sprich einfach nur einen der Klinkenanschlüsse zu befeuern und den vorhandenen Amp übernehmen zu lassen. Komme ich irgendwo an das unverstärkte Analogsignal heran? Wenn der Amp des ESPuino dabei funktionsuntüchtig wird, wäre das zu verschmerzen, ich brauche ihn ja nicht.

Nein, dafür bräuchtest du zB die Kopfhörerplatine. Also der Punkt ist, dass das Signal digital per i2s aus dem ESP32 rauskommt und dann brauchst du einen DAC, der daraus ein analoges Signal macht.
Wenn du jetzt hingehst und in die Klinke vom Kopfhörer reingehst, dann ist es auch verstärkt, jedoch nur schwach für Kopfhörer. Also wenn du wirklich unverstärkt haben willst, dann müsstest du an den Ausgang des DACs auf der Kopfhörerplatine gehen (MS6324). Das geht dann normalerweise in den TDA1308 (OP-Amp).

Danke für die irre schnelle Antwort. Ich hatte auch nichts auf der Platine finden können, was mir Mut gemacht hätte, aber nachfragen wollte ich dennoch. Dann werde ich mich wohl nochmal bei Dir per PN melden.

Die Platine funktioniert bei mir nun auch super.
Ursprünglich hatte ich Stereo geplant, mit eingelötetem zweiten MAX98357a sind R13/R14 vom fest verbauten MAX98357a leider nicht mehr zugänglich. R13/R14 so zu verschieben, das diese immer zugänglich sind (sofern das Routing das erlaubt) dürfte daher entsprechend sinnvoll sein. R7/R8 könnte man etwas weiter weg von dem JST Anschluss legen. Bei mir hat es beim Heißluftlöten die Kunststoffteile etwas in Mitleidenschaft gezogen. Mehr Abstand zu Kunststoff-Teilen würde es für Löt-Amateure sicher einfacher machen den Gain zu verändern.

Beim I2C Header könnte man anstelle sich für Dauer-power oder SW_POWER entscheiden zu müssen, beides herausführen (Analog zu J3) um flexibler zu sein.

1 „Gefällt mir“

Also die einfachste Möglichkeit, das Problem mit den Widerständen zu adressieren, wäre eine Platzierung selbiger an der Unterseite. Umrouten müsste ich dafür gar nix, ich müsste es nur auf der Unterseite platzieren, Vias setzen und ggf. die Platinenbeschriftung etwas verschieben. Problem: Ich muss dafür das teurere Lötprogramm nehmen und zudem kostet doppelseitiges Löten (völlig zurecht) Aufpreis. Ich bestelle üblicherweise immer Chargen mit 30 Platinen; da würde jede Platine 1,80 € teurer werden.
Ich hatte auch schon überlegt, ob ich immer direkt zwei MAX drauflöten lasse. Also unterm Strich ist das nur 1 € Aufpreis pro Platine. Da jedoch der Anteil derer, die hier einen zweiten MAX bei mir mitbestellen, nur etwa bei 15 % liegt, habe ich es bisher nicht gemacht. Jetzt nicht wegen des Geldes, sondern weil’s halt unnötig Ressourcen frisst. Auf jeden Fall wären dann keine Widerstände verdeckt. Allerdings wird man das Problem (außer doppelseitige Montage) mit Hitze+Plastik nicht los. Ich meine du schreibst halt einfach „mehr Abstand“ hin. Nur: Woher soll er kommen? Da muss die ganze Platine größer werden.

Nicht falsch verstehen: Ich nehme das durchaus als konstruktive Verbesserungsvorschläge auch. Aber ich versuche halt normalerweise einen Mittelweg zu gehen, der unterm Strich für die meisten Leute am besten passt.

Wegen I2C: Klar, das kann man problemlos machen. Im Prinzip bräuchte es für den Fall, dass man die geschalteten 3,3 V verwendet, eigentlich eh (kleine) Reihenwiderstände für SDA und SCL, da sonst der i2c-Bus „runtergezogen“ wird und dann der ESP32 nicht mehr über den Port-Expander aufweckbar ist. Allerdings ist oben rechts auf der mini4L auch nicht wirklich viel Platz. Also da müsste ich auf Verdacht mal zwei 0402-Widerstände integieren. Ich habe jedoch nix, was ich da anschließen müsste. Insofern habe ich da bisher auch noch nix forciert.

Nachtrag: Warum hast du den zweiten MAX nicht einfach per Heißluft ausgelötet von unten? Das funktioniert auf jeden Fall. Habe ich bei der mini4L noch nicht gemacht, jedoch öfter schon bei anderen Platinen.

1 „Gefällt mir“

Was ich vorhin vergessen habe: Ich schaue mal, was davon umsetzbar ist. Grundsätzlich kann die Platine sicherlich punktuell noch verbessert werden :grin:.

Ich vermute, das in die 3V Schiene noch ein Kondensator sollte.
Ich habe bei mir beobachtet, dass problematische SD-Karten ohne LED-Ring zickig starten, mit LED-Ring ist alles super. Ich hätte es anders erwartet aber ich vermute, dass die Kondensatoren vor den LEDs die Schiene etwas stützen. Ist aber eine Vermutung, mit dem Oszi habe ich das noch nicht gemessen, da müsste ich die Box mit auf Arbeit nehmen und da war ich bisher zu faul.

Gut, also das wäre problemlos möglich und kostet quasi gar nix. Ich kann zB gerne im SD-Bereich nochmal ein oder zwei 10 uF hinzufügen. Oder auch oben im Bereich des ESP32.

Ist wie gesagt eine Vermutung und falls du eine neue Revision planst, dann wollte ich dich schon mal vorbereiten :slight_smile:
Ist aber momentan eine Vermutung. Ich wollte es mir mal auf dem Oszi anschauen, bevor ich die Pferde scheu mache…

In der aktuellen mini4L-Charge gibt es leider ein kleines Problem. Und zwar habe ich diese (30 Stk.) am Dienstag erhalten und zwei mini4L selbst gelötet. Diese Platine habe ich schon echt richtig oft gelötet (wir reden nur von den Durchsteckteilen; den SMD-Teil macht JLCPCB) - arg schwer ist das nicht. Umso erstaunter war ich, dass einer der Pins ums Verrecken kein Lötzinn annehmen wollte. War gefühlt wie Telfon, obwohl der Lötpunkt optisch erstmal gut aussah.

Auf dem nachfolgenden Bild meine ich den Pin, der ganz unten ist in der Mitte ist - auf dem Bild ist alles ok!
Detailaufnahme mit Entlastungsspalt

Dabei handelt es sich um GND für den Develboard-Sockel. Das Problem ist Folgendes: Flächen auf einem PCB, wo keine Leiterbahnen laufen, versieht man aus EMV-Gründen gerne mit GND-Planes. Das sieht man im Detailbild auch: GND-Plane sind dort, wo die Platine satt grün ist. Man sieht am betroffenen GND-Pin, dass die Verbindung zur umliegenden GND-Plane nicht vollflächig ist sondern nur über vergleichsweise dünne Kontaktpunkte (vier Stück). Das ist ein sog. thermal relief oder auf deutsch ein thermischer Entlastungsspalt.

Warum macht man das? Ganz einfach: Will man den Lötpunkt setzen, dann hat man ohne ein solches Relief das Problem, dass die ganze Wärme in die GND-Plane geht und die Lötstelle nicht heiß genug wird. Und exakt das ist in der aktuellen Charge (aus meiner Sicht) das Problem: Der GND-Lötpunkt hat zwar eine thermische Entlastung, aber diese ist zu klein (das obige Bild ist aus einer älteren Charge - da gab’s keine Probleme).

Muss jetzt ein Problem bei der Fertigung gewesen sein, weil ich habe bei JLCPCB immer nur auf Re-order geklickt, so dass das zugrundeliegende File immer das gleiche war und es gab zuvor noch nie ein Problem.

Ich habe es schließlich hinbekommen, indem ich den Lötpunkt extra nochmal gereinigt habe (vermutlich hat das nix geändert), mit Lötpaste (statt Lötzinn) versehen (um besser in die Ecken zu kommen) und länger als sonst mit dem Lötkolben die Stelle erwärmt habe. Zwischenzeitlich dachte ich auch, dass ich plötzlich zu doof zum Löten sei, aber nachdem mir gestern @KlausMu das Gleiche berichtete, bin ich der Sache nochmal nachgegangen und konnte das Problem vorhin bei einer weiteren Platine reproduzieren. Ärgerlich, aber kein Weltuntergang.

Was folgt daraus:
a) Den Rest der Charge werde ich (notgedrungen) nur fertig gelötet verschicken können. Man kriegt das zwar hin das sauber zu löten und der Lötpunkt sieht im Anschluss auch aus wie der Rest, aber es ist nicht trivial. Insofern übernehme ich das.
b) @Meimarter, @ChriScha, @Alexander, @ClausiusMaximus: Neben @KlausMu seid ihr von dem Problem leider betroffen - sorry an dieser Stelle. Ihr könnt mir die mini4L zurückschicken oder es selbst probieren. Übertreibt es mit Letztgenanntem aber bitte nicht, falls es nicht klappt. Weil wenn der Lötpunkt kaputt ist, dann kriege ich es auch nicht mehr hin - dann muss man sich GND per Brücke von woanders holen.
c) Künftig werde ich die Reliefs etwas größer machen, um diese Fertigungstoleranzen zu „überbrücken“.

1 „Gefällt mir“

Könnte man die Bohrungen der Platine auf 4mm aufbohren oder liegt irgendwas kritisch in der Nähe

4 mm ist kein Problem. Bei 6 mm wird’s nach unten nur langsam eng.

Nabend,
ich hab aktuell das Problem, dass ich auf die Platine eine fehlerhafte Firmware geflasht habe und die SD Karte nicht mehr erkannt wird. Hatte das mit Power auf 115 setzen vergessen. Jetzt kann ich aber irgendwie keine andere Firmware mehr drauf flashen. Habe schon probiert, jeweils mit Devboard und ohne angesteckt:

  • Upload → Fehler
  • Upload und wenn „connecting Com 5“ reset kurz drücken → Fehler
  • Upload und Reset bis connecting gedrückt halten → Fehler
  • erase flash mit den oben beschriebenen Reset optionen → jeweils Fehler

Fehlernachricht: A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode.

Habt ihr noch ne Idee, was ich versuchen könnte?

a) Hast das Develboard mal ausgesteckt versucht zu flashen?
b) Kürzlich kamen von Windows-Usern immer mal wieder die Meldung, dass es helfen kann, zum Flashen die Reset-Taste zu drücken.

Genau, beides versucht. Also angesteckt und nur die ESP Platine allein. Und auch mit gedrückter Taste. Hab auch schon ne Ubuntu VM aufgesetzt. Da war aber Platformio super langsam. Scheint da auch irgendwelche allgemeinen Probleme zu geben grad

Hier gibt’s noch ein paar Infos:

Sind für diese 4L-Platine Gerber-Dateien verfügbar?

Nein, die gibt’s bei mir nur fertig.

Haben Sie Bretter zur Verfügung?

Nach über einem Jahr (keine andere Platine war so lang unverändert bei mir) habe ich die weit verbreitete mini4L jetzt mal ein bisschen überarbeitet. Folgende Dinge sind nun angepasst:

  1. Alle JST-Konnektoren und auch der Reset-Button werden von nun an schon von JLCPCB aufgelötet. Nicht, dass das bisher schwer zu löten war, aber am Ende des Tages wollten die meisten User die mini4L möglichst „fertig“ und ich war es irgendwann leid, dass ich ständig den Lötkolben schwingen muss. Ganz zur Seite legen kann ich ihn weiterhin nicht, allerdings sind jetzt nur noch die beiden Pinsockets in der Mitte einzulöten. Das könnte ich ebenfalls JLCPCB machen lassen, ich habe jedoch Bedenken, dass das am Ende zum gesockelten Develboard nicht passt.
  2. Der JST-Konnektor für I2C (bislang wird er nicht benutzt - perspektivisch könnte man dort ein Display anschließen) ist nun fünfpolig statt vierpolig. D.h. man muss jetzt nicht mehr lötjumpern, ob die 3.3 V im Deepsleep ausgeschaltet sein sollen oder dauerhaft anliegen, sondern es ist beides vorhanden. Nachteil: Es ist jetzt fünfpolig wie auch der Drehencoder. Insofern: Obacht beim Einstecken!
  3. Im unteren Platinenbereich befinden sich die Widerstände, um nachträglich eine generische Lautstärke-Anpassung der MAX98357a vornehmen zu können. Hier war es bislang so, dass ein zweiter MAX98357a seine zugehörigen Widerstände verdeckt hat, was natürlich unpraktisch ist, weil man später dann nicht mehr drankommt (User-Feedback!). Ich habe sie daher, zusammen mit den Widerständen für den integrierten MAX98357a, weiter in der Mitte platziert. D.h. die Widerstände sind nicht mehr verdeckt und sollten zudem einfacher auszulöten sein.
  4. Ich habe ein paar zusätzliche Kondensatoren eingefügt; speziell für den ESP32 selbst, für den Port-Expander, den SD-Reader und den externen I2C-Konnektor.
  5. Für den externen I2C-Konnektor habe ich zwei Serienwiderstände (aktuell 0 Ohm) in SCL und SDA vorgesehen. Für den Fall, dass das externe I2C-Device den Bus runterzieht, hat man dort die Möglichkeit, diese entsprechend zu erhöhen.
  6. Der Konnektor für die Kopfhörerplatine hat an der Unterseite jetzt auch eine Pin-Belegung draufgedruckt. Wird für die meisten Leute egal sein, aber es bringt Transparenz und kostet nix extra :slight_smile:.

Der Bausatz ist nun überschaubar: Zusätzlich mitgeliefert werden jetzt nur noch zwei Bauteile:

Fertig sieht das Ganze nun so aus:

Ich werde diese Punkte in Kürze oben noch einarbeiten, aber ich wollte das hier transparent hinschreiben, so dass es nicht irgendwie im stillen Kämmerlein passiert.

5 „Gefällt mir“