ESPuino-miniD32(pro): Lolin D32/D32 pro mit SD_MMC und Port-Expander (SMD)

Na das klingt doch gut.

Dazu steht aber auch was in der Doku oben:
Bildschirmfoto 2022-03-26 um 19.50.07
Im Endeffekt ist es halt so, dass die Neopixels nicht immer gleich beschriftet sind.

Hehe, meiner (der ist aber schon fast 7) fragt auch die ganze Zeit, wann er endlich seinen neuen ESPuino kriegt. Brauchen tut er den eigentllich auch nicht, weil er hat einen. Aber ich hatte es versprochen :woman_shrugging:.

Inzwischen gibt es eine neue Revision der Platine.
Hier mal ein Bild, das die rev2 (links) mit der rev1 (rechts) vergleicht:

Folgende Modifikationen wurden vorgenommen:
a) Im oberen Bereich wurde das Kupfer noch ein bisschen mehr ausgepart wegen der WLAN-Antenne.
b) Unterhalb der Kupfer-Aussparung gibt es nun zwei weitere „Löcher“. Hier kann man den Stützkondensator, der zuvor in Ext gelötet wurde, liegend unter dem D32 (pro) montieren. Er ist damit näher an der Stromquelle und es wird auch kein Platz in Ext weggenommen.
c) Unten gibt es nun links (von oben gesehen) einen Anschluss für einen auflötbaren Reset-Taster (siehe nachfolgende Bilder), den ich gerne kostenlos dazu gebe. Diesen muss man nicht verwenden, es gibt auch weiterhin die Möglichkeit, einen Reset-Taster per JST-PH anzuschließen, so dass man mit dem Gehäusedesign flexibler ist. Ist einfach nur eine alternative Möglichkeit.
d) Das Routing wurde etwas optimiert und zwecks besserer GND-Konnektivität sind diverse Vias dazugekommen.

Blöderweise ist mir im Bestückungsdruck ein Fehler mit der JP-Nummerierung unterlaufen.
JP5 ist eigentlich JP1
JP1 ist eigentlich JP4
JP4 ist eigentlich JP5
JP2 und JP3 sind vertauscht. Wobei das relativ egal ist, weil die würde man (wenn) eh nur paarweise ändern.
Also die Beschreibung rechts unten ist korrekt und auch die Schaltung ist korrekt. Was halt lediglich falsch ist, das ist die Beschriftung an den Lötbrücken selbst. Ich denke es ist nicht dramatisch, aber ich will es auch nicht verheimlichen :slight_smile:

Hier mal zwei Bilder vom neuen Reset-Taster. Den gebe ich übrigens kostenlos dazu und löte ihn auch kostenlos ein. Außer es schreibt mir jmd,. dass er explizit NICHT gewollt ist.


Von der alten Variante habe ich noch zwei Stück hier. Wer explizit davon eine möchte sollte sich beeilen :slight_smile:. Ansonsten steht nun wie gesagt die rev2 in den Startlöchern. Ich würde, wenn Bedarf bestünde, auch nen Euro abziehen für den Fehler im Beschriftungsdruck :slight_smile:

1 „Gefällt mir“

ich habe alles nach der Anleitung zusammengesetzt und auch die Solder-Jumper entsprechend gelötet. Die Software, also die settings.h und die lolin_d32_pro_sdmmc_pe.h habe ich auch entsprechend der Anleitung konfiguriert.

Das Flachen der Software funktioniert wunderbar aber wenn das abgeschlossen ist und ich den ESPuino starten möchte bekomme ich im Serial Monitor folgende Fehlermeldung angezeigt:

--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.wchusbserial1420  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Maximale Inaktivitätszeit wurde aus NVS geladen: 10
Exception in thread rx:
Traceback (most recent call last):
  File "/Users/Bobby/.platformio/penv/lib/python3.9/site-packages/serial/serialposix.py", line 575, in read
    buf = os.read(self.fd, size - len(read))
OSError: [Errno 6] Device not configured

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Bobby/.platformio/python3/lib/python3.9/threading.py", line 954, in _bootstrap_inner
    self.run()
  File "/Users/Bobby/.platformio/python3/lib/python3.9/threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/Bobby/.platformio/penv/lib/python3.9/site-packages/serial/tools/miniterm.py", line 499, in reader
    data = self.serial.read(self.serial.in_waiting or 1)
  File "/Users/Bobby/.platformio/penv/lib/python3.9/site-packages/serial/serialposix.py", line 581, in read
    raise SerialException('read failed: {}'.format(e))
serial.serialutil.SerialException: read failed: [Errno 6] Device not configured

--- exit ---

der Neopixel Ring dreht für einige zeit grün und blinkt anschließend rot. dann geht das ganze Setup vermute ich mal in Deepsleep.

ich stehe gerade mächtig auf dem Schlauch, was ich noch ändern soll…
Danke schon mal

Hmm, also das finde ich etwas seltsam. Wenn man den ESPuino einschaltet, dann leuchtet jeder zweite LED ja orange. Hat man keine SD-Karte eingelegt oder das SD-Modul hat keine Spannung, dann blinkt es kurz darauf rot. Und dann geht er auch in Deepsleep.
Kann von der SD gelesen werden, dann leuchten im Anschluss vier langsam zirkulierende LEDs in
weiß => Betrieb mit WLAN
grün => Betrieb ohne WLAN
blau => Betrieb mit Bluetooth

a) Hast du INVERT_POWER aktiviert?
b) Hast du POWER passend gemäß der Konfiguration von JP5 konfiguriert?
c) Hast du den Kondensator in Ext eingelötet?
d) Hast du an Ext mal zwischen 8 und 10 Spannung gemessen?
e) Ist der D32 pro auch nicht mit Versatz eingesteckt?

Vielen Dank für die schnelle Antwort… leider kam ich mal wieder nicht dazu es gleich umzusetzen…

sorry… mein Fehler. es kreiselte natürlich orange und blinkt dann rot. Hab’s auf die Schnelle vertauscht.

In der Zwischenzeit habe ich nochmal alles „gecleant“ und auch das Git Repo neu geklont
und alle Einstellungen von der oben stehenden Anleitung (Pull-Up am SD Reader entfernt, Hardware, Jumper und Software) nochmal komplett neu gemacht. Die Firmware kompiliert und lässt sich auch auf dem D32 pro flashen.

a) Hast du INVERT_POWER aktiviert?

Ja, das ist drin.

b) Hast du POWER passend gemäß der Konfiguration von JP5 konfiguriert?

bei JP5 ist 1+2 gedrückt und der Inder Firmware der PIN 32 definiert

c) Hast du den Kondensator in Ext eingelötet?

Ja, der ist drin… 8+ 10-

d) Hast du an Ext mal zwischen 8 und 10 Spannung gemessen?

zuverlässig und konstant 3,3V. Am SD Reader direkt habe ich 3.22V gemessen, natürlich nur solange der ESP D32 pro aktiv ist. Im Deepsleep liegen hier allerdings immer noch 1.23V an… ist das so OK?

e) Ist der D32 pro auch nicht mit Versatz eingesteckt?

Nein, das kann ich ausschließen

Habe auch zwei verschiedene SD Karten getestet… leider immer der gleiche Verlauf: Orange…rot… Deepsleep

Ich bin mit meinem Latein echt am Ende… hier nochmal zwei Fotos, vielleicht helfen die ja weiter.

Kann eigentlich der SD reader defekt sein?
Soll ich die SD Karten mal neu formatieren?

ich musste in der platformio.ini den upload_port und den monitor_port anpassen, damit der ESP D32 pro überhaupt gefunden wird.

[env:lolin_d32_pro_sdmmc_pe]
;https://docs.platformio.org/en/latest/boards/espressif32/lolin_d32_pro.html
board = lolin_d32_pro
;board_build.partitions = huge_app.csv
;board_build.partitions = custom_4mb_noota.csv
board_build.partitions = custom_16mb_ota.csv
upload_port = /dev/cu.wchusbserial1420
monitor_port = /dev/cu.wchusbserial1420
;monitor_filters = esp32_exception_decoder

darauf hin bekam ich folgende Fehlermeldung angezeigt:

Error: Multiple requests to rebuild the project "ESPuino-1" index have been received!
Automatic index rebuilding process has been terminated for 10 minutes. at A.value
(/Users/Bobby/.vscode/extensions/platformio.platformio-ide-
2.4.3/node_modules/platformio-node-helpers/dist/index.js:1:790605) at A.value (/Users/Bobby/.vscode/extensions/platformio.platformio-ide-
2.4.3/node_modules/platformio-node-helpers/dist/index.js:1:792714) at A.value (/Users/Bobby/.vscode/extensions/platformio.platformio-ide-
2.4.3/node_modules/platformio-node-helpers/dist/index.js:1:794550) at /Users/Bobby/.vscode/extensions/platformio.platformio-ide-
2.4.3/node_modules/platformio-node-helpers/dist/index.js:1:795342 ...

Ja, das ist normal. Wobei die Spannungs mit 1,2 V höher ist als das, was ich so kenne. Ich kenne das mit etwa 1 V ohne Kopfhörerplatine und 0,8x V mit. Der Punkt ist an der Stelle, dass über die restliche Verkabelung noch irgendwelche Querströme laufen. Also die Lösung ist nicht ganz perfekt mit dem Mosfet, aber mit ganz einfachen Mitteln erreicht man da schon viel. Also das passt erstmal.

Also im Prinzip fallen mir zwei Gründe ein, wenn sowas passiert:
a) SD hat keine Spannung, weil, aus welchem Grunde auch immer, der Mosfet nicht durchsteuert. Das ist bei dir ja offenbar nicht der Fall.
b) Irgendwas stimmt mit der SD-Karte nicht. Vielleicht formatierst du sie nochmal, aber achte auf jeden Fall drauf, dass sie FAT32-formatiert ist. Sind sind 32er-Karten aber eigentlich wenn man sie kauft. Anders sieht es bei 64er-Karten aus, die sind (soweit ich weiß) exFat-formatiert. Das macht dann Probleme.

Hast du mal irgendwelche Treiber installiert? Ich musste das auf meinem alten Mac auch und jeder hat mir immer gesagt, dass das doch einfach so ginge und sie meine Zeilen (exakt das, was du da jetzt hast) auskommentieren müssen. Seitdem ich meinen neuen Mac habe, geht das so.

Ggf. war er noch am Kompilieren und du hast einen neuen Compilevorgang angestoßen (ungewollt)!? Ist vermutlich nicht weiter wichtig.

Habe eben nochmal einen Blick auf deine Lötpunkte geworfen. Da ist die Menge an Lötzinn teilweise bisschen unterschiedlich und ich meine auch unterschiedliche Farbschattierungen am Lötzinn zu sehen. Also möglich, dass manche Stellen nicht lange genug gelötet wurde. Ich würde, OHNE(!) Zugabe von neuem Lötzinn, über alle Punkte mit dem Lötkolben nochmal drübergehen. Man muss bei den JST-Buchsen nur bissl aufpassen. Ich habe die Erfahrung gemacht, dass wenn man das zu lange macht, dann zieht es die Kontaktstifte ein Stück weit nach unten raus.

ich benutze ein uraltes Mac Book Pro (mid 2012), auf das ich vor Jahren mal die CH340 Treiber installiert habe. Die funktionieren auch… hatte kürzlich andere ESP8266, ESP32 und Arduino Projekte aus Platformio und der Arduino IDE programmiert und das gin immer problemlos…

Die Lötstellen sind nicht wirklich schön, das sehe ich genau so. Mir ist kürzlich das „gute alte“ Lötzinn ausgegangen und mit dem Bleifreien welches ich jetzt habe bin ich noch nicht so richtig warm geworden. ich gehe die alle mal durch und schau, ob hier vielleicht eine kalte, oder defekte Stelle dabei ist.

Danke nochmal für Deine Hilfe… ich werde berichten

Also meine Lötpaste ist auch bleifrei, aber beim Lötzinn bin ich letztlich doch wieder bei Blei hängengeblieben. Da kann ich dir Mechanic HX-T100 absolut empfehlen. Das hinterlässt wenig (und vor allem keine hässlichen) Rückstände und fließt super, ich löte das mit 350 Grad (300 ginge vermutlich genauso). Ich habe das in 0,4 und 0,5mm hier, wobei ich auf 0,4 eine kleine Präferenz habe. Ist das beste Lötzinn, das ich je hatte.

gestern Abend habe ich das zweite PCB bestückt und die Jumper konfiguriert (mit bleihaltigem Lötzinn :wink: )…
ESP D32 pro drauf, Firmware rein und ab ins WiFi… lief komplett problemlos.
Ich habe alles komplett identisch zum ersten Board gemacht, bis auf die komplett neuen Bauteile… vielleicht ist ja doch der SD Karten Reader kaputt?!?
Jetzt werde ich einen neuen Satz SD Reader und evtl. noch einen MAX98357 bestellen und mal schauen, wer der Übeltäter war.

Danke nochmal für die Hilfe! ich werde berichten, was ich herausgefunden habe…

1 „Gefällt mir“

Anfängerfrage: gibt es die Projektdateien für die Boards hier irgendwo, ich habe zwei eher halblinke Hände beim Löten und würde das Ganze daher am liebsten bei JLCPCB fertigen lassen. Ist das prinzipiell möglich oder eine halbgare Annahme? Ich bräuchte dann noch den Lollin D32 und Kleinkram wie Stromversorgung, Taster & Lautsprecher, richtig?
Falls grob missverstanden, bitte Nachsicht. :grin:

@Helge
Also tatsächlich hätte ich aktuell sogar noch einen einzigen original eingepackten D32 pro da. Die Platine selbst kann ich auch komplett löten/vorbereiten (siehe wie von @moin verlinkt). Aber du brauchst auf jeden Fall noch RFID-Reader, Taster, Neopixel, Lautsprecher und Drehencoder. Und die musst du an die Drähte dranlöten.

Also gänzlich ohne Löten kommst du nicht aus, aber das reduziert den Lötaufwand schon beträchtlich. Meldest dich bei mir, wenn du Interesse hast.

Oha, da habe ich nicht gut genug gelesen - da würde ich tatsächlich sehr gerne drauf zurückkommen, das würde helfen. Etwas löten kann ich ja, nur keine schwierigeren Sachen. Für die Taster eines anderen Abspielers hat es gereicht… :grin:

Neopixel, Taster, Drehencoder, Lautsprecher & RFID-Leser habe ich oder kann ich gut besorgen.

Hab dir eine PN geschrieben.

Gestern sind neue PCBs eingetroffen. Sie sind technisch unverändert, jedoch habe ich den Fehler mit dem Beschriftungsaufdruck hinten eliminiert.

Hier mal ein Bild von oben und unten von zwei fertig gelöteten ESPuinos

Wer sich fragt, was da links unten beim SD-Reader aufgelötet ist: Das ist ein Reset-Taster.
Auf der Rückseite sieht man, dass ich bei JP5 2+3 gelötet habe. Das hat zur Folge, dass der Port-Expander die Ansteuerung des Mosfets vornimmt und man den GPIO32 für andere Zwecke verwenden kann. Über EXT.13 kann man diesen dann „abgreifen“. POWER muss man entsprechend auf 115 statt 32 setzen und sowieso gilt für dieses Board, dass INVERT_POWER aktiviert sein muss.

Und hier mal eine Erklärung, was die einzelnen Elemente eigentlich sind:

  1. Button Next (JST ph 2fach)
  2. Button Pause/Play (JST ph 2fach)
  3. Button Prev (JST ph 2fach)
  4. Button 4 (JST ph 2fach)
  5. Button 5 (JST ph 2fach)
  6. Anschluss Neopixel (JST ph 3fach)
  7. Stützkondensator 100 µF
  8. P-Mosfet IRLML6401
  9. Port-Expander PCA9555
  10. SD-Modul
  11. MAX98357a
  12. Reset-Button (JST ph 2fach)
  13. Anschluss Drehencoder (JST ph 5fach)
  14. Anschluss RFID-Reader (JST ph 10fach)
  15. Anschluss i2c extern (JST ph 4fach)
  16. Anschluss Kopfhörerplatine (IDC-Konnektor)
  17. Integrierter Reset-Button
  18. EXT-Konnektor (doppelreihig 2,54 mm)
  19. Beschreibung EXT-Konnektor
  20. Beschreibung JP-Konfiguration (JP1 bis JP5)
  21. Pinsocket zum Sockeln des D32 pro/D32
  22. Pinsocket zum Sockeln des D32 pro/D32
4 „Gefällt mir“

Hallo zusammen,

ich habe ein ähnliches Problem wie onkelbobby, aber doch ein wenig anders:
Am Verstärker liegen noch wunderbare 3,3V an, an SD-Reader aber nur noch 2,2V.
Folglich startet der ESPUINO nicht und wirft Fehlermeldungen, dass er die SD Karte nicht finden kann.

Kann es sein, dass durch mein mangelhaftes Löten so ein Spannungsabfall ausgelöst wird?

Danke & viele Grüße
Kölly

Ohne Bilder kann ich dazu nix sagen.
Da sollten auf jeden Fall ebenfalls 3,3 V sein.


Verstärker und SD Reader habe ich direkt aufgelötet.

a) Die Lötpunkte sehen insgesamt ok, aber teilweise etwas gekleckst aus. Vor allem der GND-Lötpunkt am SD-Reader ist nicht so schön. Empfehlung: Gehe mit einem Lötkolben nochmal etwa 2s an jeden Lötpunkt dran, damit das Lötzinn besser fließt. Aufpassen musst du nur bei JST PH 10fach: Ich habe die Erfahrung gemacht, dass es die Pins gerne mal zum Lötpunkt hin „durchzieht“, wenn man da zu lange lötet.

b) Was hängen da für Kupferreste (oder was auch immer) am MAX98357a?

EDIT: Hast du einen Neopixel angeschlossen, der dir auch nen Fehler anzeigt (orange => rot blinkend)?

Guten Morgen,

tatsächlich war es einer der Lötpunkte.
Alles wie von Dir beschrieben nachgearbeitet und siehe da: läuft!

Leider kam aber kein Ton, daher habe ich angefangen nachzumessen. Irgendwie habe ich es dabei geschaft mind. ein Bauteil zu grillen. Kurz ein „Bzzz“, kleine Rauchwolke.
Espuino startet zwar, allerding blinkt der Neopixel jetzt manchmal komplett weiss und stürzt manchmal ab :frowning:

… ich tausche jetzt alle Teile Stück für Stück aus.