Hinweis
Diese Platine ist „veraltet“. Ein aktuelles Design wäre beispielsweise ESPuino-mini 4Layer.
Link zu GitHub
Es geht um das hier: https://github.com/biologist79/ESPuino/tree/master/PCBs/Wemos%20Lolin32
Bilder
Hinweis: Entgegen der Bilder MAX98357a + µSD-Board lieber direkt auflöten und nicht gesockelt.
Features
- Passend für Wemos Lolin32 (Lolin D32, Lolin D32 pro oder Lolin32 lite passen nicht!)
- Die Außenmaße sind 56 x 93mm
- 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!
- Die Anschlüsse für MAX98357a und das µSD-Board besitzen dagegen einen normalen Lochrasterabstand, so dass das Ganze zu den beiden Breadboards passt. Achte drauf, die Pinleisten auf die richtige Seite zu löten, so dass Pin-Kompatibilität gewährt ist. Entgegen den Bildern, die man hier findet, sollten beide direkt aufgelötet werden statt über weibliche Pinleisten gesockelt. Speziell beim MAX98357a hat sich einfach gezeigt, dass die gesockelte Variante zu schlechtem Kontakt und damit Störungen führt.
- Ein Mosfet-Schaltkreis schaltet die Spannung von MAX98357a, Kopfhörerplatine (optional), RFID, Neopixel und µSD-Board ab, um Strom zu sparen, wenn der ESP32 im Deepsleep ist.
- Sämtliche Peripherie wird mit 3.3 V betrieben! Bedenke das bei der Auswahl des µSD-Baords. Den Neopixel betreibt man damit streng genommen außerhalb seiner Spezifikation, aber er funktioniert dennoch.
- Falls die Kopfhörerplatine #1 oder Kopfhörerplatine #2 verwendet werden, 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. - Ab der rev2 ist euch eine Reset-Pinheader vorhanden. An diesen kann man z.B. einen Mikroschalter anschließen, den man (mehr oder weniger versteckt) am ESPuino-Gehäuse anbringt. So kann man den ESPuino auch im eingebauten Zustand resetten, was insbesondere dann von Bedeutung ist, wenn man ihn im Batteriebetrieb hat.
Vorraussetzungen
- Ist keine Kopfhörerplatine angeschlossen, so muss
HEADPHONE_ADJUST_ENABLE
deaktiviert werden. - Zum Messen der Batteriespannung muss
MEASURE_BATTERY_VOLTAGE
aktiviert sein. Zusätzlich ist ein Spannungsteiler notwendig, da die Spannung von max. 4,2 V für den ESP32 sonst zu hoch wäre. Ich habe zwei 130 kOhm-Widerstände benutzt, die das Multimeter mit jeweils 129 kOhm vermessen hat. Diese Werte werden in der Develboard-spezifischen Konfigurationsettings-lolin32.h
alsRdiv1
und undRdiv2
konfiguriert. Ursprünglich hatte ich mal mit einem großen und einem kleinen Widerstand hantiert, weil ich in meiner Ausbildung (lange ist’s her) mal gelernt habe, dass man in einem Messbereich am besten in das obere Drittel geht, da der Fehler (relativ) dann am kleinsten ist. 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. Also bin ich dann, wie Wemos beim Lolin D32 und D32 pro auch, bei 50% zu 50% gelandet. Sollte die gemessene Spannung systematisch falsch sein, so kann man sie mittelsoffsetVoltage
korrigieren. AuchreferenceVoltage
lässt sich anpassen. Suuuuper genau ist es nicht, aber 0,1 V Genauigkeit ist aus meiner Sicht mehr als ausreichend. - In
settings.h
muss HAL=1 gesetzt sein. - Deaktiviere
SD_MMC_1BIT_MODE
undSINGLE_SPI_ENABLE
. - Aktiviere
RFID_READER_TYPE_MFRC522_SPI
. - Gleiche deine Konfiguration nun mit nachstehender Tabelle ab
ESP32 (GPIO) | Hardware | Pin | Kommentar |
---|---|---|---|
MFET 3.3V | SD-Board | 3.3V | |
GND | SD-Board | GND | |
15 | SD-Board | CS | |
13 | SD-Board | MOSI | |
16 | SD-Board | MISO | |
14 | SD-Board | SCK | |
MFET 3.3V | RFID-Leser | 3.3V | |
GND | RFID-Leser | GND | |
21 | RFID-Leser | CS/SDA | |
23 | RFID-Leser | MOSI | |
19 | RFID-Leser | MISO | |
18 | 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 |
35 | Drehencoder | DT | Tausche CLK mit DT, wenn du die Drehrichtung anpassen möchstes |
32 | Drehencoder | BUTTON | |
3.3 V | Drehencoder | + | |
GND | Drehencoder | GND | |
4 | Taster (next) | ||
GND | Taster (next) | ||
2 | Taster (previous) | ||
GND | Taster (previous) | ||
5 | Taster (pause/play) | ||
GND | Taster (pause/play) | ||
MFET 3.3V | Neopixel | V | |
GND | Neopixel | G | |
12 | Neopixel | DI | |
17 | N-channel Mosfet | Gate | |
33 | Spannungsteiler / BAT | Optional: Spannungsteiler zur Batteriespannungsmessung | |
22 | Kopfhörerbuchse | Optional: wenn auf GND gezogen, dann wird Kopfhörerlautstärke aktiviert |
Anmerkungen
- Bestellt man JST-PH-Konnektoren in China via Aliexpress, so sind es immer mind. zehn Stück. Damit man sich einen 6fach-Konnektor für RFID sparen kann, habe ich zwei 3fach benutzt, denn 3fach benötigt man für Neopixel eh schon.
- Im Unterschied zum Lolin D32 besitzt Lolin32 keinen integrierten Spannungsteiler zur Spannungsmessung. Am unteren Konnektor auf dem PCB wird der Akku angeschlossen. Auf dem PCB werden dann zwei Drähte aufgelötet, die mittels JST-PH in den Lolin32 gesteckt werden (siehe Bilder oben). Es ist dabei immer darauf zu achten, unabhängig von Farben, dass (+) immer links und (-) immer rechts ist!
- Löte den Lolin32 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 Lolin32 development-board. Wichtig: Bevor dieser genutzt werden kann, muss zuerst der passende Treiber installiert werden für den USB/seriell-Chip darauf (CH2102).
- MAX98357A
- µSD-Board (nur für 3.3V!)
- RFID-Leser
- RFID-Karten
- Neopixel-Ring
- Drehencoder
- Taster
- Lautsprecher
- µSD-Karte: Muss keine super schnelle sein. Mit 32 GB läuft das Ganze auf jeden Fall.
- JSP PH-2.0-Konnektoren
- Weibliche Verbinder
- (optional) IDC-Verbinder weiblich 6pin für Kopfhörerplatinen-Anschluss
- (optional) IDC-Verbinder männlich 6pin ür Kopfhörerplatinen-Anschluss
- (optional) Mikroschalter
- LiPo-Akku (2500 mAh) mit JST PH 2.0mm-Konnektor
Teileliste
- 1x IRL3103 (N-channel MOSFET) [anstelle von IRF530NPbF, da IRL3103 eine niedrigere Vgs besitzt]
- 1x NDP6020P (P-channel MOSFET)
- 1x 1k Widerstand
- 1x 10k Widerstand
- 2x 100k Widerstand
- 2x 130k Widerstand (kann auch durch 2x100k ersetzt werden)
- 5x JST-PH2.0-Konnektor (2 Pins)
- 3x JST-PH2.0-Konnektor (3 Pins)
- 1x JST-PH2.0-Konnektor (5 Pins)
- Weibliche Verbinder zum Sockeln des Lolin32
- rev2: (optional) 1x 10 µF Kondensator (2.0mm-Raster) zur Glättung der Spannungsmessung
Kann man da einen Kopfhörer anschließen?
Nein, aber mit der passenden Kopfhörerplatine dazu geht es: Kopfhörerplatine basierend auf UDA1334 / PJ306b.
Wo bestellen?
Ich habe meine Platinen bei jlcpcb bestellt. Es müssen mindestens fünf Stück abgenommen werden, die Lieferzeit beträgt üblicherweise etwa zwei Wochen nach Deutschland. Alles, was du dafür brauchst, ist das Gerberfile (gerber.zip
) im Projektordner auf Github. Dessen Inhalt kannst du dir vorab auch auf Gerberlook anschauen.