Hinweis
Diese Platine hat nun (01/2023) einen Nachfolger, der hier beschrieben wird: ESPuino-mini 4Layer. Die Unterschiede (Stand 01/2023) zwischen beiden Platinen findest du hier.
Natürlich gebe ich dennoch weiterhin auch Support für die hier beschriebene Platine.
Kompatibilität
Dieser PCB eignet sich für folgende Develboards:
Beide Boards sind vollständig pinkompatibel mit dem Unterschied, dass beim D32 pro IO16 und IO17 nicht existieren. An dieser Stelle ist am Develboard (und beim ESPuino-mini) entsprechend nichts angeschlossen, so dass das keinen Unterschied macht.
Einstellungen auf die Schnelle / Kurzfehlersuche
Weiter unten sind alle Einstellungen im Detail beschrieben, aber hier in einer Kurzzusammenfassung alle Einstellungen, die mindestens vorgenommen werden müssen, um diese Platine erfolgreich in Betrieb zu nehmen:
- Als Profil muss lolin_d32_pro_sdmmc_pe gewählt werden in Platformio.
- In der
settings.h
muss PORT_EXPANDER_ENABLE aktiviert werden: hier. - In
settings-lolin_d32_pro_sdmmc_pe.h
muss INVERT_POWER aktiviert werden: hier. - Schaue auf die Unterseite deiner mini-Platine und dort speziell auf JP5. Ist dort 2+3 gebrückt, so musst du POWER von 32 auf 115 ändern: hier. Für 1+2 bleibt 32 dort stehen - keine Änderungen also. Ist dort nichts gelötet/gebrückt, dann musst du das nachholen (und auch die restlichen JPs kontrollieren und nach der Beschreibung weiter unten konfigurieren!) und dich dabei für eine der beiden Varianten entscheiden.
Ist von den beschriebenen Einstellungen auch nur eine falsch konfiguriert, so wirst du in der seriellen Konsole eine solche Meldung kriegen:
[E][SD_MMC.cpp:85] begin(): Failed to initialize the card (263). Make sure SD card lines have pull-up resistors in place.
Bilder
Zum Größenvergleich habe ich eine RFID-Karte unter den PCB gelegt. Button 4 und Button 5 habe ich nicht bestückt. Rechts ist ein 100µF-Kondensator im Ext-Konnektor eingelötet, um die Spannung zu stabilisieren. Unten zwischen dem SD-Modul und dem MAX98357a sieht man den Spannungsteiler für MAX.SD, damit die Audioausgabe in stereo erfolgt.
Aktuelle Revision (2.3) mit onboard SD-Slot und JST-Konnektor zur Kopfhörerplatine
Ältere Revision mit Breadboard-SD und IDC-Konnektor zur Kopfhörerplatine
Revision fertig gelötet von oben und unten:
Und hier mal eine Erklärung, was die einzelnen Elemente eigentlich sind:
- Button Next (JST ph 2fach)
- Button Pause/Play (JST ph 2fach)
- Button Prev (JST ph 2fach)
- Button 4 (JST ph 2fach)
- Button 5 (JST ph 2fach)
- Anschluss Neopixel (JST ph 3fach)
- Stützkondensator 100 µF
- P-Mosfet IRLML6401
- Port-Expander PCA9555
- SD-Modul (ab rev. 2.3 ist der SD-Slot direkt als SMD-Teil aufgelötet)
- MAX98357a
- Reset-Button (JST ph 2fach)
- Anschluss Drehencoder (JST ph 5fach)
- Anschluss RFID-Reader (JST ph 10fach)
- Anschluss i2c extern (JST ph 4fach)
- Anschluss Kopfhörerplatine (IDC-Konnektor)
- Integrierter Reset-Button
- EXT-Konnektor (doppelreihig 2,54 mm)
- Beschreibung EXT-Konnektor
- Beschreibung JP-Konfiguration (JP1 bis JP5)
- Pinsocket zum Sockeln des D32 pro/D32
- Pinsocket zum Sockeln des D32 pro/D32
Schaltplan
Schematics_Espuino mini_D32pro_rev2.2.pdf (178,6 KB)
Einleitung:
Vor einer Weile habe ich Lolin D32 pro mit SD_MMC, PN5180, max. fünf Buttons und Port-Expander (SMD) ins Leben gerufen. Diesen PCB habe ich im Laufe der Zeit in mehreren Revisionen weiterentwickelt. Es wurden nachgelagert jedoch auch Dinge diskutiert, die noch verbessert werden konnten. Nicht zuletzt vor dem Hintergrund, dass ich für eigene Zwecke einen PCB gebraucht habe, der etwas kürzer ist, habe ich ESPuino-miniD32(pro) entwickelt. Weil es wird namentlich sonst einfach zu unübersichtlich.
Features
- Die Außenmaße sind 81x51 mm.
- Passend einerseits für Lolin D32 pro oder D32 pro FePo. Achte darauf, einen Lolin D32 pro mit 16 MB Flash zu kaufen, da du sonst das OTA-Feature nicht nutzen kannst. Flash-Speicher bitte nicht verwechseln mit PSRAM; hier sind die üblichen 4 MB mehr als ausreichend.
- Passend andererseits für Wemos Lolin D32. Diesen gibt es ausschließlich mit 4 MB Flash-Speicher. IO16 und IO17 werden vom hier vorgestellten PCB jedoch nicht verwendet.
- Die Peripherie (MAX98357a, SD, Neopixel und (optional) RFID) wird per Mosfet-Schaltung zum Stromsparen im Deepsleep spannungslos geschaltet. Aufgrund von Querströmen der restlichen Verdrahtung ist sie auch dann nicht 0 V sondern liegt bei etwa 1 V.
- RFID: orientiert sich primär an den Bedürfnissen für PN5180 via JST-PH 10fach, aber kann für RC522 ebenfalls verwendet werden. Für RC522 werden weniger Pins benötigt, so dass manche Pins ungenutzt bleiben.
- Port-Expander PCA9555 mit zwei Kanälen à acht Ein/Ausgängen; angebunden per I2C.
- Maximal fünf Taster, die allesamt über JST-PH 2fach angeschlossen werden und am Port-Expander hängen. Wieviele man verwendet und welche davon, das kann man sich aussuchen.
- Drehencoder wird über JST-PH 5fach angeschlossen. Dessen Button hängt immer am Port-Expander. DT und CLK optional auch, aber das unterstützt ESPuino (Stand 05/2022) nicht.
- Die GPIs, die für DT und CLK des Drehencoders verwendet werden, werden auch auf den doppelreihigen Pinheader (EXT) geführt. D.h. wird kein Drehencoder verwendet oder DT und/oder CLK auf den Port-Expander geroutet, so stehen diese GPI(s) anderweitig zur freien Verfügung.
- Die GPIOs 0 und 5 werden ebenfalls auf den Pinheader geführt. Sie sind unbeschaltet und können grundsätzlich frei verwendet werden. Weitere Infos hier: 📗 Die GPIOs des ESP32: Welche eignen sich für was?.
- PN5180 kann, sofern er mit einer Firmware-Version >=4.1 verwendet wird, den ESPuino auch aufwecken (LPCD, siehe Beschreibung oben). Wie man 4.1 auf den PN5180 kriegt, steht hier. Spoiler: Ist schon ein bisschen Arbeit .
- GPIO32 ist ebenfalls auf den externen Pinheader geführt und dann anderweitig nutzbar, wenn die Mosfet-Ansteuerung über den Port-Expander geschieht (siehe JP5).
- Alle Buttons (und RFID.IRQ), die am Port-Expander angeschlossen sind, können den ESPuino aufwecken. Hinweis: Nur alle oder keiner. Selektiv (z.B. nur ein Button) funktioniert (zumindest ohne Programmieraufwand) nicht.
- Alle Pins des Port-Expanders, die nicht benötigt werden, sind ebenfalls auf den doppelreihigen Pinheader rausgeführt. Dort befinden sich auch mehrere GND-Anschlüsse, 3.3V-Anschlüsse und geschaltete 3.3V (~0.8 V bis ~1 V im Deepsleep).
- Ein JST-PH 4fach führt I2C nach außen. Perspektivisch könnte hier z.B. ein I2C-Display angeschlossen werden, was ESPuino jedoch bisher nicht unterstützt.
- Ein Reset-Button kann via JST-PH 2fach optional angeschlossen werden. Sollte es mal zu einem unerwarteten Softwarefehler kommen, der dazu führt, dass der ESPuino nicht mehr bedienbar ist, ist man damit auch mit Gehäuse + Akkubetrieb noch handlungsfähig.
- Falls die Kopfhörerplatine #1 oder Kopfhörerplatine #2 verwendet wird, so wird der MAX98357a auf lautlos gestellt wenn ein Kopfhörer eingesteckt ist und umgekehrt. Das Aus- und Einschalten des MAX98357a übernimmt hierbei der Port-Expander über
PA_EN
. Der Port-Expander erkennt viaHP_DETECT
, ob ein Kopfhörer eingesteckt ist. - Über die Widerstände R7 und R8 kann der GAIN des MAX98357a gesteuert werden (nicht verwechseln mit der Lautstärkeregelung 0 bis 21 im Betrieb). Vielleicht für den Anfang beide mal weglassen und bei Bedarf entsprechend nachlöten. Deren Bedeutung ist auf dem PCB aufgedruckt. 0R bedeutet: Brücke. (Ich persönlich arbeite mit 3dB, da mir der ESPuino im unteren Bereich sonst nicht leise genug einstellbar ist an einem 4 Ohm-Lautsprecher. Hierfür braucht man für R8 einen Wert von 100 k).
Hardware
- Der Kern der Platine ist in SMD-Technik aufgebaut, die Peripherie in THT-Technik. Tipps zum Löten gibt es hier: 📗 (SMD-)Löten. Sölltest du dir selbst nicht zutrauen zu löten, so kontaktiere mich. Ich kann dir Teile (z.B. nur SMD) oder auch alles löten.
- (Ab rev 2.3 nicht mehr notwendig, da SD-Slot onboard!) Achte beim verlinkten SD-Board darauf, dass der SMD-PullUp-Widerstand (siehe Bild) an GPIO 2 (MISO) entfernt wird, da der ESP32 sonst nicht mehr in den Flashmodus geht (siehe nachfolgendes Bild). Über OTA ist er jedoch weiterhin flashbar.
Hardware-Konfiguration
- Auf Unterseite der Platine befinden sich mehrere Lötbrücken (JP1 bis JP6), die konfiguriert werden müssen. Sie werden im Folgenden beschrieben. Kursiv markiert ist die Konfiguration, die aus meiner Sicht „standard“ ist:
- JP1: Schließe 1+2, wenn du kein LPCD benötigst (Normalzustand). Schließe 2+3, wenn du LPCD benötigst. Auswirkung: Für LPCD wird das RFID-Modul dauerhaft mit Spannung versorgt, so dass eine erhöhte Stromaufnahme im Deepsleep anfällt. Vergisst du JP1 komplett, so wird dein RFID-Reader nicht funktionieren, da er (egal wann) keine Versorgungsspannung erhält. Hinweis: Willst du dieses Feature nutzen, dann musst du auch die Brücke von JP4 schließen. Sollte dir unklar sein, was LPCD bedeutet, so wirf am besten einen Blick in die FAQs, dort ist es u.a. beschrieben.
Pflicht! - JP2: Schließe 1+2, wenn DT des Drehencoders auf GPIO39 geroutet werden soll. Schließe 2+3, wenn GPIO39 frei sein soll und DT stattdessen auf dem Port-Expander (109) landen soll. Stand jetzt (01/2022) macht nur GPIO Sinn, da ESPuino hier den Port-Expander noch nicht unterstützt. Vergisst du JP2 komplett, so funktioniert die Drehbewegung deines Drehencoders nicht (sofern du diesen verwendest).
Pflicht wenn ein Drehencoder verwendet wird! - JP3: Schließe 1+2, wenn CLK des Drehencoders auf GPIO34 geroutet werden soll. Schließe 2+3, wenn GPIO34 frei sein soll und DT stattdessen auf dem Port-Expander (110) landen soll. Stand jetzt (01/2022) macht nur GPIO Sinn, da ESPuino hier den Port-Expander noch nicht unterstützt. Vergisst du JP3 komplett, so funktioniert die Drehbewegung deines Drehencoders nicht (sofern du diesen verwendest).
Pflicht wenn ein Drehencoder verwendet wird - JP4: Schließe diese Brücke, wenn du LPCD verwenden möchtest (beachte dafür unbedingt auch JP1!) oder wenn du aus anderen Gründen RFID.IRQ auf dem Port-Expander (106) brauchst. Hinweis: Der PN5180 wirft im normalen Betrieb recht viele Interrupts, weswegen ich eher davon absehen würde, JP4 zu schließen, wenn LPCD nicht benötigt wird.
Optional! - JP5: Schließe 1+2, wenn die Ansteuerung des Mosfets (Power) durch GPIO32 erfolgen soll. Schließe 2+3, wenn stattdessen der Pin 115 des Port-Expanders verwendet werden soll. Vergisst du JP5 komplett, so wird ESPuino nicht starten, da die Mosfet-Anschaltung nicht angesteuert wird und dann insbesondere das SD-Modul keine Versorgungsspannung hat. Weiterhin sind auch Neopixel und MAX98357a spannungslos.
- JP6: (ab rev2.2) Schließe 1+2, wenn der 3.3 V-Pin am externen I2C-Konnektor dauerhaft mit Spannung versorgt werden soll. Schließe 2+3, wenn er im Deepsleep des ESP32 spannungslos geschaltet werden soll. Da so gut wie niemand bisher externe I2C-Devices anschließt, hat ein Vergessen der Brücke erstmal keine Auswirkungen. Hintergrund der Anpassung ist hier beschrieben.
- Über den Spannungsteiler R9/R10 wird die Spannung an MAX.SD eingestellt. Für Stereoausgabe sollte hier (an MAX.SD) eine Spannung zwischen 0,17 V und 0,77 V anliegen, wenn keine Kopfhörerplatine verwendet wird oder wenn eine verwendet wird, jedoch kein Kopfhörer angeschlossen ist. Ist eine Kopfhörerplatine angeschlossen und ein Kopfhörer eingesteckt, so sollte die Spannung <0,17 V liegen und damit der MAX in Standby geschaltet werden. Ist das bei dir nicht der Fall, so musst du dir den Spannungsteiler anpassen. Infos zur Berechnung gibt es hier. 51 k / 10 k funktionieren bei mir perfekt und führen zu 0,538 V, wenn kein Kopfhörer eingesteckt ist.
Anmerkungen
- Der JST-PH-Stecker für den RFID-Reader ist 10 Pins breit. Alle Drähte werden für den PN5180 benötigt, für den RC522 jedoch nicht. Da sich kein kleinerer Stecker auflöten lässt, bleiben einige Drähte dann eben unbeschaltet. Achte drauf, dass die Drahtenden nicht frei herumliegen und mache etwas z.B. Isolierband darüber! BSY, RST, 5 V und IRQ benötigst du beim RC522 nicht. CS mappt beim RC522 auf SDA.
- Löte das ESP32-Modul nicht direkt auf den PCB auf, sondern verwende weibliche Konnektoren als Sockel. Die Kontaktierung funktioniert gut. Dagegen sollten MAX98357a und das SD-Modul ohne Sockel aufgelötet werden, da die Kontaktierung ansonsten möglicherweise nicht dauerhaft fehlerfrei funktioniert.
Software-Konfiguration
- Ggf. musst du Treiber für den USB/seriell-Chip (CH340) auf dem Lolin D32 pro installieren. Bei aktuellen Versionen von Mac OS, Linux oder Windows muss man dies (soweit ich weiß) nicht tun. Weitere Infos dazu gibt es bei Wemos (siehe Links weiter oben).
- Auf deinem Rechner benötigst du Visual Studio Code als Programmierumgebung (IDE) mit PlatformIO als Plugin. Hier ein paar Tipps zur Einrichtung: 📗 Einrichtung von Visual Studio Code mit Platformio.
- Lade dir ESPuino aus meinem GitHub-Repository herunter. Wie das geht steht hier: 📗 ESPuino in Platformio anlegen und mit git aktuell halten. Dort erfährst du auch, wie du die Software aktuell halten kannst.
- Wähle nun das passende Profil aus. Für den D32 pro:
lolin_d32_pro_sdmmc_pe
und für den D32:lolin_d32_sdmmc_pe
. Wie das geht steht hier: Projekt- und Profilwechsel in Visual Studio Code. - Nun müssen
src/settings.h
undsettings-lolin_d32_pro_sdmmc_pe.h
bzw. settings-lolin_d32_sdmmc_pe.h` editiert werden. Alternativ sei an dieser Stelle für Profis noch das hier beschrieben: 📗 Override: Eigene Settings und Boards verwenden. Dessen sollte man sich jedoch IMMER bewusst sein, wenn man sich dazu entscheidet, es zu verwenden. settings.h
: Zwingend müssen hierPORT_EXPANDER_ENABLE
undSD_MMC_1BIT_MODE
aktiviert werden. Benutzt du einen PN5180 (anstelle eines RC522), so musst duRFID_READER_TYPE_MFRC522_SPI
auskommentieren undRFID_READER_TYPE_PN5180
aktivieren. Weiterhin wirdPLAY_MONO_SPEAKER
auskommentiert, damit die Musikausgabe in stereo erfolgt. Ich würde empfehlenHEADPHONE_ADJUST_ENABLE
ebenfalls zu aktivieren, auch wenn keine Kopfhöreplatine angeschlossen ist. Warum? Weil es nicht stört .settings-lolin_d32_pro_sdmmc_pe.h
/ settings-lolin_d32_sdmmc_pe.h: Aktiviere
INVERT_POWER. Solltest du für die Power-Ansteuerung den Port-Expander verwenden wollen (JP5 beachten!), so trage hier 115 anstelle von 32 ein.
INVERT_POWER` benötigst du aber dennoch zwingend!- Möchtest du die Drehrichtung deines Drehencoders umkehren, so aktiviere
REVERSE_ROTARY
. - Schließe deinen ESPuino mit einstecktem Lolin D32 (pro) per USB an deinen Rechner an und klicke auf
Upload and Monitor
. Wenn alles klappt, wird nun die Firmware kompiliert und anschließend auf deinen ESP32 geladen. - Hat alles funktioniert, dann startet dein ESPuino und es geht hiermit weiter: 📗 Der erste Start deines ESPuino. Ansonsten (allgemein): Anleitungen - ESPuino :: Rfid-controlled musicplayer.
Probleme?
Dafür gibt es dieses Forum hier. Schreib’ uns einfach!
Ggf. hilft auch das: Lolin D32 Pro Upload - Timeout. Startet der D32 (pro) aus dem Deepsleep nicht mehr, so könnte dies an einem fehlenden Kondensator liegen.
Pinout
Zur Referenz sei nachfolgend das Pinout beschrieben. Es ist in settings-lolin_d32_pro_sdmmc_pe.h
bzw. settings-lolin_d32_sdmmc_pe.h
bereits alles entsprechend voreingestellt (bis auf INVERT_POWER). GPIO-Werte zwischen 0 und 39 sind GPIOs des ESP32, solche zwischen 100 und 115 zeigen, dass der Anschluss über den Port-Expander PCA9555 erfolgt. Der Port-Expander besitzt zwei Kanäle mit je 8 Pins, die per Software wahlweise beliebig zu Ein- und Ausgängen konfiguriert werden können. Der erste Kanal besitzt bei ESPuino die Nummern 100 bis 107 und der zweite 108 bis 115. Die nicht benutzten Pins sind auf den zweireihigen Pinheader Ext. rausgeführt. Deren Nutzen ist aktuell (Stand 02/2022) sehr begrenzt, aber möglicherweise für künftige Anwendungen noch sinnvoll. Gleiches gilt für den I2C-Anschluss. Deaktiviert werden Pins mittels der Nummer 99.
ESP32 (GPIO) | Hardware | Pin | Kommentar |
---|---|---|---|
MFET 3.3V | SD-Board/Slot | 3.3V | |
GND | SD-Board/Slot | GND | |
xx | SD-Board/Slot | CS | entfällt bei SD_MMC! |
15 | SD-Board/Slot | MOSI | |
2 | SD-Board/Slot | MISO | |
14 | SD-Board/Slot | SCK | |
MFET 3.3V / 3.3V | RFID-Leser | 5V | Ja, 3.3V muss an 5V angeschlossen werden. |
MFET 3.3V / 3.3V | RFID-Leser | 3.3V | Obwohl 3.3V schon an 5V hängt, muss es hier auch dran. |
GND | RFID-Leser | GND | |
16 | XXX | XXX | Nur bei D32 verfügbar. Wird von diesem PCB nicht genutzt. |
17 | XXX | XXX | Nur bei D32 verfügbar. Wird von diesem PCB nicht genutzt. |
21 (CS) | RFID-Leser | NSS | Bei RC522 an SDA anschließen |
23 | RFID-Leser | MOSI | |
19 | RFID-Leser | MISO | |
18 | RFID-Leser | SCK | |
22 | RFID-Leser | RST | Bei RC522 nicht benötigt. |
33 | RFID-Leser | BUSY | Bei RC522 nicht benötigt. |
106 | RFID-Leser | IRQ | Dafür muss die Lötbrücke JP4 geschlossen werden. Bei RC522 nicht benötigt. |
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. Für Lautsprecherbetrieb ist der Spannungsteiler R9/R10 wichtig, wenn Stereoausgabe erfolgen soll. |
— | MAX98357 | GAIN | Verstärkung über R7 / R8 einstellbar. |
34 | Drehencoder | CLK | Wird konfiguriert über JP3. Aktiviere REVERSE_ROTARY , um die Drehrichtung des Drehencoders umzukehren. |
39 | Drehencoder | DT | Wird konfiguriert über JP2. Aktiviere REVERSE_ROTARY , um die Drehrichtung des Drehencoders umzukehren. |
103 | Drehencoder | BUTTON | |
3.3 V | Drehencoder | + | |
GND | Drehencoder | GND | |
102 | Taster (next) | ||
GND | Taster (next) | ||
100 | Taster (previous) | ||
GND | Taster (previous) | ||
101 | Taster (pause/play) | ||
GND | Taster (pause/play) | ||
104 | Taster 4 | ||
GND | Taster 4 | ||
105 | Taster 5 | ||
GND | Taster 5 | ||
MFET 3.3V | Neopixel | V | |
GND | Neopixel | G | |
12 | Neopixel | DI | |
32 | P-channel Mosfet | Gate | Steuert Mosfet-Schaltung an, wird konfiguriert über JP5. Alternativ kann auch 115 diese Ansteuerung übernehmen. |
107 | Kopfhörerbuchse | Optional. Wenn auf GND gezogen, dann wird eingesteckter Kopfhörer erkannt (HP_DETECT). | |
36 | PCA_Interrupt | xxx | Löst Interrupts ausgehend vom Port-Expander aus und weckt ESPuino auf. |
4 | I2C_SCL | xxx | I2C-SCL (wird verwendet von Port-Expander und ist verfügbar über JST-PH 4fach) |
13 | I2C_SDA | xxx | I2C-SDA (wird verwendet von Port-Expander und ist verfügbar über JST-PH 4fach) |
109 | EXT.1 | xxx | CLK des Drehencoders wenn über JP2 aktiviert (gelötet). |
SW 3.3 V | EXT.2 | xxx | Geschaltete 3.3 V zur freien Verwendung. |
110 | EXT.3 | xxx | DT des Drehencoders wenn über JP3 aktiviert (gelötet). |
SW 3.3 V | EXT.4 | xxx | Geschaltete 3.3 V zur freien Verwendung. |
111 | EXT.5 | xxx | Port-Expander: Ist unbeschaltet und kann frei verwendet werden. |
3.3 V | EXT.6 | xxx | 3.3 V zur freien Verwendung. |
112 | EXT.7 | xxx | Port-Expander: Ist unbeschaltet und kann frei verwendet werden. |
3.3 V | EXT.8 | xxx | 3.3 V zur freien Verwendung. Empfehlung: Kondensator (+) einlöten. |
113 | EXT.9 | xxx | Port-Expander: Ist unbeschaltet und kann frei verwendet werden. |
GND | EXT.10 | xxx | GND zur freien Verwendung. Empfehlung: Kondensator (-) einlöten. |
114 | EXT.11 | xxx | Port-Expander: Ist unbeschaltet und kann frei verwendet werden. |
GND | EXT.12 | xxx | GND zur freien Verwendung. |
32 | EXT.13 | xxx | GPIO 32 zur freien Verwendung, wenn anstelle von 32 der PE 115 zum Ansteuern des Mosfets verwendet wird. |
GND | EXT.14 | xxx | GND zur freien Verwendung. |
5 | EXT.15 | xxx | GPIO 5 zur freien Verwendung. Achtung: Da hängt eine LED mit drauf, die ggf. zu unvorhergesehenen Effekten führt! |
0 | EXT.16 | xxx | GPIO 0 zur freien Verwendung. Achtung: GPIO 0 ist ein Bootstrap-GPIO und darf beim Einschalten des ESP32 nicht LOW sein. Ist er LOW, so geht der ESP32 in den Programmiermodus und verweilt in diesem, bis man ihn spannungslos macht. Hier kann ein 4.7k-PullUp-Widerstand helfen, wie man z.B. hier lesen kann. |
115 | P-channel Mosfet | Gate | Steuert (alternativ zu GPIO32) die Mosfet-Schaltung an und wird konfiguriert über JP5. Wird 115 hierfür verwendet, so steht GPIO32 zur anderweitigen Benutzung über EXT.13 zur Verfügung. |
Benötigte Teile / Vorschläge
Herz dieses PCBs ist der Mikrocontroller ESP32. Beim D32 pro als ESP32-WROVER. Beim D32 als ESP32-WROOM. Die nachfolgende Liste spiegelt nur Vorschläge wieder. Bestelle die Sachen wo immer du willst. Sollte ein Link kaputt sein, so teile mir das bitte mit.
- MAX98357A
- Verschiedene SMD-Widerstände in SMD-Größe 0805 oder hier
- Port-Expander PCA9555PW
- Mosfet P-Channel IRLML2244 (z.B. IRLML6401 geht alternativ auch)
- Kondensator 100 uF (zur Spannungsstabilisierung des D32 pro)
- µSD-Board (nur für 3.3V!) (ab rev. 2.3 nicht mehr notwendig!)
- RFID-Leser PN5180 oder hier
- RFID-Leser RC522
- RFID-Karten
- Neopixel-Ring
- Drehencoder
- Taster
- Lautsprecher
- µSD-Karte: Muss keine super schnelle sein. Mit 32 GB läuft das Ganze auf jeden Fall. Mit 64 GB auch, jedoch muss etwas beachtet werden.
- JST PH-2.0-Konnektoren 2, 3, 4, 5, 10fach
- Weibliche Verbinder zum Sockeln des D32 (pro)
- (optional für Kopfhörerplatine) IDC-Verbinder weiblich 6pin für Kopfhörerplatinen-Anschluss
- (optional für Kopfhörerplatine) IDC-Verbinder männlich 6pin ür Kopfhörerplatinen-Anschluss
- (optional für Reset) Mikroschalter
- (optional für Akkubetrieb) LiPo-Akku => mit JST-PH-Anschluss bestellen - nicht für FePo-Boards verwenden!!!
- (optional) Magnet-USB-Ladeleitung
Sonstige Teileliste
- 1x IRML2244 oder IRLML6401 (P-channel MOSFET) (SMD SOT23)
- 1x Port-Expander PCA9555PW (SMD TSSOP24)
- 1x 1k Widerstand (SMD 0805)
- 2x 4.7k Widerstand (SMD 0805)
- 2x 10k Widerstand (SMD 0805)
- 1x 51k Widerstand (SMD 0805)
- 2x 100k Widerstand (SMD 0805)
- 6x JST-PH2.0-Konnektor (2 Pins) (ggf. auch weniger, wenn keine fünf Buttons und/oder kein Reset)
- 1x JST-PH2.0-Konnektor (3 Pins) (für Neopixel)
- 1x JST-PH2.0-Konnektor (4 Pins) (kann weggelassen werden, wenn kein externer I2C-Anschluss gebraucht wird)
- 1x JST-PH2.0-Konnektor (5 Pins) (für Drehencoder; kann weggelassen werden, wenn kein Drehencoder benutzt wird)
- 1x JST-PH2.0-Konnektor (10 Pins) (für RFID)
- Weibliche Verbinder zum Sockeln des Lolin D32 (pro) (2,54 mm)
- (optional) Männliche Pinheader (doppelreihig) für unbelegte Port-Expander-Pins (2,54 mm)
- 1x Kondensator 100 uF (Spannungsstabilisierung)
Interesse?
Falls du Interesse an einem solchen PCB hast, dann melde dich bei mir. Sachen wie MAX98357a, SMD-Bauteile, Pinsocket, Kondensator, JST-Konnektoren, Kondensator und Develboards für LiPo oder FePo kann ich üblicherweise mitschicken, so dass du nicht bei zehn Händlern Ware bestellen musst. Was grundsätzlich jeder jedoch selbst besorgen muss, das sind RFID-Reader, Neopixel, Drehencoder, Lautsprecher und die Buttons. Optional löte ich auch die SMD-Teile auf oder löte gleich die ganze Platine (inkl. Funktionstest).
Kann man da einen Kopfhörer anschließen?
Nicht direkt, aber mit der passenden Kopfhörerplatine geht es: Kopfhörerplatine basierend auf UDA1334 / PJ306b oder Kopfhörerplatine basierend auf MS6324 und TDA1308 bzw. LM4808M. Sie wird einfach per IDC-Konnektor angeschlossen - Plug’n’Play! Melde dich bei mir, wenn du eine solche benötigst - egal ob in fertig gelötet oder als Bausatz zum Selbstlöten. IDC-Konnektoren habe ich üblicherweise auch hier.