Trägerplatine für Lolin D32 Pro

In den letzten Wochen und Monaten habe ich eine Trägerplatine für den Lolin D32 Pro entwickelt. Folgende „Features“ sind enthalten:

  • Anschlüsse für 5 Taster
  • Anschluss für Neopixel oder LED (bspw. für beleuchteten Taster) – über Lötbrücken einstellbar
  • Anschluss für Rotary Encoder
  • Anschluss für RC522
  • Anschluss für MAX98357A-Board
  • Anschluss für Kopfhörer-Platine
  • LTC2954 On/Off Controller
  • PCA9555 Port Expander
  • Wake-Up kann wahlweise über Rotary Encoder oder Play/Pause-Taster erfolgen – über Lötbrücke einstellbar
  • ggf. MMC-Modus (siehe unten)
  • Abmessungen: 45mm x 80mm

Über Lötbrücken besteht die Möglichkeit, den auf dem D32 Pro enthaltenen SD-Karten-Slot per MMC anzusteuern, indem das Signal über die Trägerplatine zurück auf die richtigen Pins geführt wird. Dazu müssen einzelne Leitungen auf dem D32 Pro gekappt werden. Ich habe dies jedoch noch nicht getestet!

Wie bei der D32-Pro-Trägerplatine von @compactflash (https://forum.espuino.de/t/erlaeuterungen-zu-meinem-espuino32-board) muss auf dem D32-Pro-Board eine kleine „Erweiterung“ für VIN vorgenommen werden (siehe Fotos).

Ich habe die Platine bei JLC fertigen und bestücken lassen (nur SMD-Bauteile, den LTC2954 musste ich mangels Verfügbarkeit selbst auflöten).

Noch eine Ergänzung: Beim Testen sind mir folgende Verdrahtungsfehler aufgefallen:

  • die Leitung für den Kill-Pin des LTC2954 habe ich ESP32-seitig leider auf einen reinen Input-Pin (Pin 36) gelegt – diese Verbindung habe ich gekappt und eine Leitung an den freien Pin 5 angelötet
  • für den Pause/Play-Taster fehlt der Pullup-Widerstand, wenn dieser Taster als Wake-Up dienen soll – ich habe nachträglich einen 47k-Pullup-Widerstand gegen VIN ergänzt
  • evtl. ist der Pullup-Widerstand am Kill-Pin des LTC2954 zu schwach – habe die 100k testweise mal gegen 10k ersetzt

Nachfolgend findet ihr ein paar Fotos. Bei Interesse kann ich gerne die KiCAD-Dateien bereitstellen.

5 „Gefällt mir“

Was hast da für die PCBs so bezahlt?

Ich habe knapp 34 Euro bezahlt für 5 bestückte Platinen (nur SMD-Bauteile, ohne LTC2954) inkl. Versand.

Schöne Umsetzung und jetzt ist auch für Anfänger ein Board verfügbar und auch mit allen Optionen . Leider bleibt immer noch das Problem Kopfhörerplatine , weil JLC den PCM5102A auch nicht mehr hat . Dazu ist mir bisher nichts einfacheres eingefallen . Aber nicht jeder braucht eine und man kann es ja auch später nachrüsten .

Ich hatte mal vor längerer Zeit SD_MMC mit dem D32 Pro und externem Cardreader ausprobiert . Ich kann mich nicht erinnern da was getrennt zu haben , auch nicht die Pullup-Widerstände . Was meinst du damit ?

VG

Habe gerade gesehen dass es keinen Stecker für ext. Cardreader gibt und du den internen Reader für SD_MMC nutzen willst . Ich ziehe die Frage zurück .

Ich hatte vergessen, in meinem Beitrag auf (bisher festgestellte) Verdrahtungsfehler hinzuweisen – habe oben noch einen Absatz ergänzt.

Hi @ck1 , ich verstehe deine Schaltung um Pin 36 Power_Switch nicht . Pin36 ist doch ein reiner Eingang und eigentlich kein GPIO sondern ein GPI . Wie soll damit der LTC ausgeschaltet werden ?
R7 mit 100k ist auf jeden Fall ok . Habe ich in mehreren verschiedenen Schaltungen immer so bemessen und steht auch so im Datenblatt . Weniger erhöht auch den Standby-Strom .
VG

1 „Gefällt mir“

Dies ist einer der oben erwähnten Verdrahtungsfehler - habe die Verbindung zu Pin 36 gekappt und nutze anstelle dessen Pin 5.

Danke für den Hinweis, dann lag das Problem offenbar woanders…

Hallo CK1 ist es möglich die, Files online zu stellen? und welche Leitungen müssen für den MMC-mode gekappt werden? würde es mal testen. :slight_smile:

Habe die KiCAD-Dateien hier hingeschoben:

https://github.com/ck1-dev/ESPuino/tree/master/PCBs/Wemos%20Lolin%20D32%20Pro%20ck1

Probier mal, ob es funktioniert.

Folgende Belegung gilt für den SD- bzw. MMC-Modus:

  • CS: IO4 <> —
  • MOSI (DI): IO23 <> IO15
  • CLK: IO18 <> IO14
  • MISO (DO): IO19 <> IO2

Habe mir das gerade nochmal angeschaut. Vielleicht kommt man ohne das Kappen von Leitungen aus, indem man die SD-IOs als Input konfiguriert. Ob die erforderliche Signalqualität letztendlich erreicht werden kann (2 mal über einen Steckverbinder zu gehen, ist ja auch schon nicht unbedingt im Sinne des Erfinders…), wäre auszuprobieren. Du solltest auch noch einen Blick auf die Pullup-Widerstände am SD-Modul werfen: Wenn ich es richtig im Kopf habe, werden für CLK und MOSI Pullups benötigt, so dass R3 und R8 bleiben können. R10 für MISO müsste evtl. entfernt werden. Inwiefern der Pullup R2 am CS-Pin stört, weiß ich nicht.

Ich hoffe, das hilft dir weiter. Berichte gerne von deinen Erkenntnissen…

Habe für meinen beleuchteten Play/Pause-Taster die Led.cpp um eine simple Statusanzeige erweitert: Wenn Musik abgespielt wird, leuchtet der Taster dauerhaft; wenn die Wiedergabe pausiert oder die Playlist zuende ist, blinkt der Taster. Habe es bisher nur mit einfachen MP3-Playlists getestet, nicht mit Webstreams etc. Vielleicht kann es ja jemand gebrauchen… Ihr findet es in meinem Fork:

(aktuell ist es so umgesetzt, dass es nicht zusammen mit einem Neopixel-Ring funktioniert – dies sieht meine Platine auch nicht vor)

Funktioniert eigentlich der PCA9555 soweit ordentlich bei dir?
Mein PCB dazu ist ja noch unterwegs; ansonsten habe ich das nur mit Jumperwires getestet.

Eine Sache noch: Du kannst die Stackgröße in der Led.cpp bissl reduzieren. Ich hab’s kürzlich, nachdem ich die Funktion uxTaskGetStackHighWaterMark() entdeckt habe, auf 1512 gesetzt. Vielleicht kannst das in einer abgespeckten LED-Variante noch weiter reduzieren.

Bisher habe ich keine Probleme im Zusammenhang mit dem PCA9555 festgestellt - nutze ihn für die Taster Play/Pause, Vol+ und Vol-.

Das klingt spannend… Falls ich doch noch einen Expander einbaue, dann schaue ich mir das noch mal an