Lolin32 D32 pro mit RC522 als RFID-Leser

Nachdem ich bereits verschiedene PCBs veröffentlicht habe, ist nun der nächste an der Reihe. Diesmal für den Lolin D32 pro, was den Vorteil mit sich bringt, dass ein ESP32-WROVER verbaut ist. Bei meinem hier ist sogar der WROVER-E drauf - die neueste Revision also.

Features

  • Passend für Wemos Lolin D32 pro (Lolin32, Lolin D32 oder Lolin32 lite passen nicht!)
  • Die Außenmaße sind 52 x 99mm
  • Es werden JST-PH 2.0-Konnektoren für Taster, Drehencoder, Neopixel, RFID und Batterieanschluss verwendet. Wichtig: Es handelt sich hier um 2mm-Abstand und NICHT das klassische 2,54mm-Lochraster!
  • Der Anschluss für MAX98357a besitzt dagegen einen normalen Lochrasterabstand, so dass das Ganze zum Breadboard passt. Achte drauf, die Pinleiste auf die richtige Seite zu löten, so dass Pin-Kompatibilität gewährt ist.
  • Ein Mosfet-Schaltkreis schaltet die Spannung von MAX98357a, Kopfhörerplatine (optional), RFID, und Neopixel ab, um Strom zu sparen, wenn der ESP32 im Deepsleep ist.
  • Sämtliche Peripherie wird mit 3.3 V betrieben! Den Neopixel betreibt man damit streng genommen außerhalb seiner Spezifikation, aber er funktioniert dennoch.
  • Falls die Kopfhörerplatine verwendet wird, so wird der MAX98357a auf lautlos gestellt, wenn ein Kopfhörer eingesteckt ist und umgekehrt.
  • Falls HEADPHONE_ADJUST_ENABLE einkompiliert wurde, erkennt der ESPuino das Einstecken und kann, sofern über die WebGUI entsprechend konfiguriert, die Lautstärke begrenzen. Dies macht deshalb Sinn, da der als Verstärker verwendete TDA1308 die Musik auf dem Kopfhörer recht laut machen kann.
  • Pin-Header für Reset (JST PH 2.0) und Serial (normaler Lochrasterabstand).

Vorraussetzungen

  • Ist keine Kopfhörerplatine angeschlossen, so muss HEADPHONE_ADJUST_ENABLE deaktiviert werden.
  • Zum Messen der Batteriespannung muss MEASURE_BATTERY_VOLTAGE aktiviert sein. Ein Spannungsteiler mit zwei Widerständen à 100 kOhm ist bereits integriert und fest mit GPIO35 verdrahtet. Diese Werte werden in der Develboard-spezifischen Konfiguration settings-lolin_d32_pro.h als Rdiv1 und und Rdiv2 konfiguriert. Leider ist der analoge Eingang des ESP32 auch nicht gerade ein Präzisionsinstrument und speziell im oberen Spannungsbereich läuft das Ganze in ein Plateau, wie man hier lesen kann. Sollte die gemessene Spannung systematisch falsch sein, so kann man sie mittels offsetVoltage korrigieren. Auch referenceVoltage lässt sich anpassen. Suuuuper genau ist es nicht, aber 0,1 V Genauigkeit ist aus meiner Sicht mehr als ausreichend.
  • In settings.hmuss HAL=4 gesetzt sein.
  • Deaktiviere SD_MMC_1BIT_MODE und SINGLE_SPI_ENABLE.
  • Aktiviere RFID_READER_TYPE_MFRC522_SPI.
  • Gleiche deine Konfiguration nun mit nachstehender Tabelle ab
ESP32 (GPIO) Hardware Pin Comment
MFET 3.3V SD-Board 3.3V
GND SD-Board GND
4 SD-Board CS
23 SD-Board MOSI
19 SD-Board MISO
18 SD-Leser SCK
MFET 3.3V RFID-Leser 3.3V
GND RFID-Leser GND
21 RFID-Leser CS/SDA
13 RFID-Leser MOSI
15 RFID-Leser MISO
14 RFID-Leser SCK
MFET 3.3V MAX98357 VIN
GND MAX98357 GND
25 MAX98357 DIN
27 MAX98357 BCLK
26 MAX98357 LRC
MAX98357 SD Info: liegt hier GND an so schaltet MAX auf lautlos
MAX98357 GAIN PullUp mit 100k auf 3.3V bewirkt weniger Verstärkung
34 Drehencoder CLK Tausche CLK mit DT, wenn du die Drehrichtung anpassen möchstest
39 Drehencoder DT Tausche CLK mit DT, wenn du die Drehrichtung anpassen möchstest
32 Drehencoder BUTTON
3.3 V Drehencoder +
GND Drehencoder GND
33 Taster(next)
GND Taster (next)
2 Taster (previous)
GND Taster (previous)
36 Taster (pause/play)
GND taster (pause/play)
MFET 3.3V Neopixel V
GND Neopixel G
12 Neopixel DI
5 N-channel Mosfet Gate
35 Spannungsteiler / BAT
22 Kopfhörerbuchse Optional: wenn auf GND gezogen, dann wird Kopfhörerlautstärke aktiviert

Anmerkungen

  • Löte den Lolin D32 pro nicht direkt auf den PCB auf, sondern verwende weibliche Konnektoren als Sockel. Die Kontaktierung funktioniert gut.
  • Falls du einen LiPo-Akku verwendest, dann stelle sicher, dass dieser einen integrierten Tiefeentladeschutz besitzt. Dies ist GANZ GANZ GANZ wichtig! Nutze z.B. einen Solchen.

Benötigte Teile

Herz dieses PCBs ist der ESP32 auf einem Wemos Lolin D32 pro Development-Board. Wichtig: Bevor dieser genutzt werden kann, muss zuerst der passende Treiber installiert werden für den USB/seriell-Chip darauf.

Teileliste

  • 1x IRL3103 (N-channel MOSFET)
  • 1x NDP6020P (P-channel MOSFET)
  • 1x 1k Widerstand
  • 2x 10k Widerstand
  • 2x 100k Widerstand
  • 4x JST-PH2.0-Konnektor (2 Pins)
  • 1x JST-PH2.0-Konnektor (3 Pins)
  • 1x JST-PH2.0-Konnektor (5 Pins)
  • 1x JST-PH2.0-Konnektor (6 Pins)
  • Weibliche Verbinder zum Sockeln des Lolin D32 pro

Hinweis zur Lautstärke

Der 100k-Widerstand ganz oben auf dem PCB ist dafür da, um die Lautstärke etwas zu reduzieren. Mir persönlich war ohne diesen Widerstand der ESPuino in den unteren Lautstärkestufen zu laut. Es gab jedoch auch schon Stimmen, die das anders sehen. Insofern meine Empfehlung: Lass’ den obersten 100k-Widerstand zuerstmal weg und schau, ob es für dich ok ist. Falls es zu laut ist, dann löte ihn im Anschluss erst ein.

Wo bestellen?

Wende dich vertrauensvoll an mich, wenn du gerne einen solchen PCB hättest.

Kann man da einen Kopfhörer anschließen?

Nein, aber mit der passenden Kopfhörerplatine dazu geht es: Kopfhörerplatine basierend auf UDA1334 / PJ306b.

Probleme?

Es gab vereinzelt (siehe unten in der Diskussion) Berichte, dass der von mir verlinkte MAX98357a keinen Ton von sich gegeben hat. Zum 22.9.2021 habe ich daher den Link angepasst in der Hoffnung, dass es nun keine Probleme mehr gibt.

6 „Gefällt mir“

Hallo biologist,

Ich habe eben gesehen, dass der I2C Pin 22 (SDA) vom RFID Reader benutzt wird. Ich würde gerne den seitlichen 4Poligen I2C Port nutzen, um ein 1.3" OLED anzusteuern. Wenn ich das im Datenblatt sehe, ist dieser Pin an mehreren Stellen des D32 pro herausgeführt.

Kann ich ein I2C Display verwenden oder gibt es mit diesem Board keine Möglichkeit mehr?

Grüße,
Moertsches

Das geht nicht, da ich bis auf GPIO0 alle GPIOs in Verwendung habe.
Grundsätzlich ist es aber so, dass man i2c auch auf andere GPIOs legen kann (man muss es nur entsprechend definieren). Wenn du also irgendwas von dem, was ich vorgesehen habe, nicht brauchst, dann kannst du dir an die passenden GPIOs auch was dranlöten (und die vorgesehenen Stecker halt nicht nutzen) und daran i2c anschließen.

Denkbar ist z.B auch, dass du einen Port-Expander anschließt. Dafür könnte man vielleicht die Taster NEXT (33) und PREVIOUS (2) opfern und diese beiden GPIOs für i2c nutzen. An den i2c-Bus hängst du dann dein Display und auch den Port-Expander. PullUp-Widerstände (4.7k) nicht vergessen.

Es gibt auch RC522-Boards, die mit i2c laufen.

Also du kannst da sicherlich einiges umbauen, wenn du das möchtest. Sind aber auf jeden Fall alles erstmal Sachen, die „custom“ sind und die du dann entsprechend testen (und ggf. entwickeln) musst.

Hi @biologist,
ich sitze auf einigen D32 Pro und habe mir dummerweise die PCBs für das D32 heimkommen lassen. Hast du denn noch ein (oder zwei) PCBs fürs Pro über?

Grüße,
webisdead

Per PM beantwortet :slight_smile:

Hi @biologist , hast du noch ne PCB wären interressiert.
Grüsse Marc

Na klar,
habe dir eine PM geschickt.

Hallo @biologist ich wäre auch an einer Platine interessiert. Hast du noch eine abzugeben? Würdest du die Dateien dazu auch auf Github oder hier veröffentlichen?

Danke und Grüße

Hallo,

die Anderen habe ich veröffentlicht. Diese hier möchte ich nicht veröffentlichen.

@alle:
Ich würde euch bitten, mir direkt eine PM zu schreiben, wenn ihr Interesse habt. Keine Angst, ich beisse nicht :grin:

@biologist Wird es auch eine Version mit dem PN5180 geben?
Bin mit dem RC522 nicht so glücklich und würde gern beim zweiten Versuch auf den PN5180 so wie den D32 Pro wechseln.

Hätte ansonsten ebenfalls Interesse an einem PCB :slight_smile:

Ich bin aktuell dabei, einen PCB zu machen, der Lolin d32 pro mit pn5180 verwendet. Zusätzlich würde ich aber einen externen SD-Reader nutzen (für SD MMC), einen Port-Expander nebst SMD-Mosfets und Widerständen benutzen.
Würde dir das weiterhelfen?

externen SD-Reader hätt ich da, aber Mosfets und Widerstände als SMD müsst ich extra Ordern.
Ist den die Nachfrage dazu hier wirklich vorhanden?

Das weiß ich so genau nicht. Mir ging es in erster Linie darum, mal eine Testplattform für den von mir unterstützten Port-Expander zu haben. Weil aktuell muss ich das immer umständlich zusammenstecken. Der Vorteil ist halt auch, dass ich dann sowas wie i2c rausführen kann, so dass man auch ein Display anschließen könnte.

Der Punkt ist halt, dass es mit den GPIOs eng ist, wenn man den pn5180 verwendet. Externer SD Slot mag etwas unsinnig erscheinen, wenn man schon einen internen hat. Jedoch ist der interne leider nur per spi anzubinden, was einerseits langsamer ist und andererseits nen GPIO mehr braucht.

Was vielleicht passen könnte ist Lolin d32 pro mit sdmmc, pn5180 - aber ohne Anschluss für Kopfhörerplatine.

Dann noch ohne SMD und ich hätte meine gewünschte Platine :joy:

Muss ich mal schauen, wann ich da Zeit finde. Für das AZ-Delivery-Board wollte ich ja auch noch einen machen. Fürs Erste kann ich nur das hier anbieten: Lolin32 mit SD (SD_MMC) und PN5180 als RFID-Leser.
Davon habe ich auch noch welche da.

Wie gesagt, lieber nen D32 pro mit Pn5180. Leider kann ich mit KiCAD noch nicht umgehen, sonst würde ich selbst ein Board designen :wink:

Hi, erst mal danke für deine Arbeit. Ich hätte auch Interesse an einem PCB wenn du noch eines hast.

Viele Grüße
Joachim

Hab dir ne PM geschrieben.

Na, schon bisschen nen fortschritt in Sicht? Oder bisher noch gar nichts geschafft?

An der SMD-Platine habe ich immer mal wieder ein bisschen gearbeitet, aber fertig ist sie noch nicht. Um es kurz zu machen: Es fehlt der Bock momentan :rofl: