ESPuino Complete

Bilder

Revision 5.1 Oberseite:

Revision 5.1 Oberseite und Unterseite:

Anmerkungen

  • Reset-Button (links oben) ist unbestückt, kann jedoch bei Bedarf kostenlos mitgeliefert werden. Es können auch zwei Litzen dort angelötet werden an „Reset“ und „GND“, so dass sich der Reset-Button woanders im Gehäuse befinden kann. Man muss aber keinen Reset-Button haben: Zum Testen kann man auch einfach die beiden Kontakte Reset und GND kurzschließen, um den gleichen Effekt zu erzeugen.
  • Rechts oben der fünfpolige i2c-Anschluss bleibt (vorerst) unbestückt, da er derweil nicht gebraucht wird und Verwechselungsgefahr mit dem Drehencoder-Anschluss besteht, der direkt daneben ist. Auf Wunsch kann ich die passende Buchse beilegen.
  • Ext. conn2 bleibt ebenfalls unbestückt, da er vermutlich nur von vereinzelten Leuten gebraucht wird. Auf Wunsch kann ich die passende Buchse jedoch kostenlos beilegen.

Achtung

Es gibt aktuell ein Problem mit der Polarität der LFP-Akkus (bei LiPo nicht): Wichtig: Polarität von LFP-Akkus. Ist nicht schwer zu beheben (sofern notwendig=, aber muss UNBEDINGT beachtet werden.

Einleitung

Die Complete ist der Nachfolger der bisherigen Sandwich-Konstruktion, die aus mini4L und Develboard besteht. Die Kopfhörerplatine kann auch weiterhin über eine 6polige Verbindungsleitung angeschlossen (optional). Gegen eine feste Integration der Kopfhörerplatine in die Complete habe ich mich entschieden, da nicht jeder einen Kopfhöreranschluss benötigt (spart Geld) und so zudem ein flexibleres Gehäusedesign möglich ist.

Technisches Design

Nachfolgend werden die Begriffe LFP und LiFePO4 synonym benutzt.
Platine mit vier Layern. Stromversorgung erfolgt per USB-C und/oder Akku (LFP oder LiPo). Zur Spannungsregulierung auf 3,3 V kommt ein Buck-Boost-Converter zum Einsatz.

Damit Akkus nicht zu tief entladen werden ist nun auch ein Spannungswächter an Board. Bzw. ab der rev 5.1 sogar zwei: Einer für LFP und einer für LiPo - nur einer ist aktiv. Er deaktiviert die Spannungsversorgung, wenn die Spannung unter ca. 2,75 V (LFP) bzw. unter 3,15 V (LiPo) absinkt. Bei den Revisionen 5.0 und 5.0.1 gab es getrennte Complete-Platinen für für LFP bzw LiPo-Akkus.

Nachdem die Polarität der LFP-Akkus denen der LiPo-Akkus angeglichen wurde, gibt es seit rev5.1 nur noch eine Platine, die mittels Lötjumper auf der Unterseite auf die jeweilige Zellchemie eingestellt wird.

Features

  • Größe: 72,2 x 70,6 mm mit vier Befestigungslöchern (3,2 mm)
  • ESP32-WROVER mit 16 MB Flash und 8 MB PSRAM
  • Stromversorgung (3,3 V) über Buck-Boost-Converter (TPS63000)
  • 2x Spannungswächter SGM809 (ersetzt nicht den Akkuwächter in deinem Akkupack!)
  • Akku-Laderegler TP5000 mit Status-LED; fest eingestellt auf max. 1 A Ladestrom
  • Unterstützung von LiFePO4- oder LiPo-Akkus
  • µSD-Slot, Anbindung per 1 Bit SDMMC an ESP32
  • MAX98357A (Verstärker), dessen Grundlautstärke dreistufig per Lötjumper eingestellt werden kann und 21-stufig per Software
  • Port-Expander (PCA9555) zur Erweiterung der Anschlussmöglichkeiten
  • Anschlüsse für bis zu fünf Buttons (je JST-PH 2fach)
  • Anschluss für Neopixel(ring) (JST-PH 3fach)
  • Anschluss für Drehencoder (JST-PH 5fach)
  • Anschluss für RFID-Reader (JST-PH 10fach)
  • Anschluss für Lautsprecher (JST-PH 2fach)
  • Anschluss für optionale Kopfhörerplatine (JST-PH 6fach)
  • Anschluss für externen Schalter, der alles außer der Akku-Ladelektronik ausschaltet (JST-PH 2fach)
  • Anschluss für externe Lade-LED (JST-PH 2fach)
  • (optional) Externer i2c-Anschluss möglich (JST-PH 5fach)
  • (optional) Integrierter Reset-Button
  • Zwei ext-Konnektoren mit Zugriff auf verschiedene Spannungen und GPIOs (3,3 V, GND, PE, Vin…)
  • Verpolungsschutz (+ / -) für USB- und Akkuanschluss

Hardware-Konfiguration über Lötbrücken (Kurzfassung)

Die Complete besitzt an der Unterseite mehrere Lötbrücken, die es zu beachten gilt :red_exclamation_mark:
Die von mir empfohlene Grundkonfiguration, die für die meisten Nutzer passen sollte, nachfolgend in aller Kürze. Hinweis: Je nach Revision der Complete können sich die vorhandenen Lötjumper und deren Bedeutung leicht unterscheiden.

Alle Boards, die ich rausschicke, werden von mir (je nach Bestellung) auf LFP oder LiPo vorkonfiguriert und weiterhin meine empfohlenen Einstellungen gesetzt.

Lötbrücke Empfehlung (Bedeutung)
JP1 nicht setzen (kein LPCD)
JP2 setzen (+3 dB)
JP3 nicht setzen (+15 dB)
JP4 setzen (Lade-LED), seit rev5.1 automatisch (ohne Löten) gesetzt
JP5 (sofern vorhanden) LFP: nicht setzen / LiPo: setzen (Akku-Ladespannung)
JP6 Rev5.1: 1+2 (für LFP) bzw 2+3 (für LiPo).
Rev5.0 und 5.0.1: 1+2 setzen (Aktivierung Spannungswächter)
JP7 Rev5.1: entfernt
Rev5.0 und 5.0.1: setzen (Puffer Spannungswächter)
JP8 2+3 setzen (kein LPCD)

Hardware-Konfiguration über Lötbrücken (Langfassung)

Nachfolgend eine ausführliche Beschreibung der einzelnen Lötbrücken. Dinge, die für die Grundkonfiguration wichtig sind, habe ich mit :red_exclamation_mark:markiert. Hinweis: Je nach Revision der Complete, können sich die vorhandenen Lötjumper und deren Bedeutung leicht unterscheiden.

Alle Boards, die ich rausschicke, werden von mir (je nach Bestellung) auf LFP oder LiPo vorkonfiguriert und weiterhin meine empfohlenen Einstellungen gesetzt.

Lötbrücke Beschreibung
JP1 Schließe 1+2, wenn du den RFID-Reader PN5180 zusammen mit dem Feature LPCD nutzen möchtest (RC522 kann dies nicht). Hierbei wird der IRQ-Ausgang des PN5180 auf den GPIO32 des ESP32 geroutet. Wichtig: Auf dem EXT-Konnektor 1 steht GPIO32 damit nicht mehr zur freien Verfügung, wenn dieses Feature aktiv ist. Vergiss nicht JP8 zu beachten, wenn du LPCD nutzen möchtest. Und natürlich benötigt der PN5180 eine passende Firmware.
JP2 :red_exclamation_mark: Schließen von 1+2 reduziert die Grundlautstärke des MAX98357a auf +3 dB. Standardmäßig, wenn weder JP2 noch JP3 geschlossen sind, ist sie auf +9 dB eingestellt, also lauter. Empfehlung: Teste zuerst, ob +3 dB ausreichend sind, denn weniger Grundlautstärke hat den Vorteil, dass die Lautstärke per Software (21 Stufen) feiner justiert werden kann. Das gilt speziell bei niedrigen Lautstärken, die z. B. beim Einschlafen der Kinder wichtig sein könnten. :red_exclamation_mark:Wichtig: Aktivere nicht JP2 UND JP3 gleichzeitig sondern immer nur einen der Beiden oder gar keinen.
JP3 Schließen von 1+2 erhöht die Grundlautstärke des MAX98357a auf (maximale) +15 dB. Standardmäßig, wenn weder JP2 noch JP3 geschlossen sind, ist sie auf +9 dB eingestellt, also leiser. Empfehlung: Teste zuerst, ob +3 dB ausreichend sind, denn weniger Grundlautstärke hat den Vorteil, dass die Lautstärke per Software (21 Stufen) feiner justiert werden kann. Das gilt speziell bei niedrigen Lautstärken, die z. B. beim Einschlafen der Kinder wichtig sein könnten.:red_exclamation_mark:Wichtig: Aktivere nicht JP2 UND JP3 gleichzeitig sondern immer nur einen der Beiden oder gar keinen.
JP4 :red_exclamation_mark: Seit rev5.1 automatisch geschlossen (ohne Löten). Vor rev5.1: Schließe 1+2, wenn du die interne Lade-LED (Akku) aktivieren möchtest. Ich würde dies standardmäßig empfehlen, da man sonst nicht sieht, ob der Akku voll ist bzw. ob er geladen wird. Sie zu deaktiveren macht nur dann Sinn, wenn man extern eine LED anschließen möchte und es mit gleichzeitigem Betrieb beider LEDs Probleme gibt. In meinen Tests funktionierte der parallele Betrieb jedoch einwandfrei.
JP5 (Sofern vorhanden) Schließe 1+2, wenn du die Spannung des Akku-Ladereglers von standardmäßigen max. 3,6 V (für LFP-Akkus) auf 4,2 V (LiPo-Akkus) erhöhen möchtest. TUE DIES AUF KEINEN FALL, WENN DU EINEN LFP-AKKU ANGESCHLOSSEN HAST, DA DIE SPANNUNG DANN VIEL ZU HOCH IST - BRANDGEFAHR! NUR SETZEN, WENN EIN LIPO-AKKU ANGESCHLOSSEN IST!
JP6 :red_exclamation_mark: Rev5.1: Schließe 1+2, um den Spannungswächter für LFP zu aktivieren (ca. 2,75 V). Schließe 2+3, um den Spannungswächter für LiPo zu aktivieren (ca. 3,15 V). Einer der beiden Spannungswächter muss immer aktiviert sein!

Rev5.0 oder rev5.0.1: Schließe 1+2, um den Spannungswächter zu aktivieren. Schließe 2+3, um den Spannungswächter zu deaktivieren. Hinweis: Der Spannungswächter dient dazu, dass Akkus nicht zu weit entladen werden. Dies ersetzt jedoch nicht die Schutzschaltung, die in deinem Akku integriert sein sollte. Empfehlung meinerseits: Spannungswächter aktivieren - dafür ist er da! Benutzt du keinen Akku sondern nur USB, so ist der Spannungswächter irrelevant. :red_exclamation_mark:Setzt du diesen JP gar nicht, so wird die Complete nicht funktionieren, da die 3,3V-Spannungsversorgung dann nicht aktiv ist.
JP7 :red_exclamation_mark: Rev5.1: Lötjumper entfernt, da Puffer fest integriert.
Rev5.0 oder rev5.0.1: Schließe 1+2, um den Puffer des Spannungswächters zu erhöhen. Erklärung: Zwischen Spannungswächter und Schaltregler befindet sich ein Puffer (Kondensator), so dass kleine Spannungseinbrüche nicht sofort zum Abschalten des Schaltreglers führen. Solltest du Probleme mit Abschaltungen haben, so könnte das Schließen von JP7 die Toleranz dagegen ein wenig erhöhen.
JP8 :red_exclamation_mark: Schließe 1+2, wenn du LPCD nutzen möchtest. Schließe 2+3, wenn du kein LPCD nutzen möchtest. Die meisten Leute werden LPCD nicht nutzen. :red_exclamation_mark:Setzt du diesen JP gar nicht, so wird dein RFID-Reader nicht funktionieren, da er dann nicht mit Spannung versorgt wird. Vergiss nicht JP1 zu beachten, wenn du LPCD nutzen möchtest.

Anschlüsse

Anschluss Beschreibung
Buttons Mit Btn_Prev, Btn_Pplay, Btn_Next, Btn_4 und Btn_5 stehen insgesamt fünf Buttons bereit, die per Software mit Aktionen belegt werden können. Buttons können entweder gar nicht, teilweise oder alle genutzt werden.
Zuordnung von Aktionen: 📗 Das dynamische Button-Layout.
Ext. CHRG-LED Hier kannst du eine externe Lade-LED anschließen. Beachte unbedingt die aufgedruckte Polarität. Ein Vorwiderstand (1 kOhm) ist auf der Platine bereits aufgelötet, so dass ein max. Strom von 5 mA fließen kann. Verwendungszweck wäre z.B., wenn man den Ladezustand an der Gehäuseaußenseite des ESPuinos sichtbar machen möchte.
Ext. Conn1 Hier stehen verschiedene Möglichkeiten zur Verfügung, die auf der Unterseite aufgedruckt sind. Mit „3,3 V switched“ sind 3,3 V gemeint, die nur anliegen, wenn der ESP32 aktiv ist (also nicht im Deepsleep), während „3,3 V“ immer vorhanden sind. Mit IO (0, 5, 32) sind Ein/Ausgänge des ESP32 gemeint (GPIOs). PE109 und PE112 sind Anschlüsse des Port-Expanders, die jedoch bisher noch keine Verwendung haben. Battery + ist der Pluspol des Akkus. Alles in allem dient dieser Anschluss dem Customizing und wird von den meisten ESPuino-Anwendern nicht benötigt.
Ext. Conn2 Hier stehen, neben GND, zwei Spannungen zur Verfügung. OOut: Sofern USB angeschlossen ist, liegen hier immer ca. 4,6 V an. Ist nur der Akku (kein USB) angeschlossen, so liegt hier die Akkuspannung an. Ist beides angeschlossen, so hat die USB-Spannung Vorrang. Vin ist das Gleiche wie OOut, jedoch mit dem Unterschied, dass PowerOff-Switch Vin unterbrechen kann. Alles in allem dient dieser Anschluss dem Customizing und wird von den meisten ESPuino-Anwendern nicht benötigt.
Ext. USB Für den Fall, dass die integrierte USB-C-Buchse nicht benutzt werden soll, sind alle notwendigen Pins zur Stromversorgung auf diesen Konnektor rausgeführt. Die Widerstände (5,1 kOhm) für CC1 und CC2 sind auf der Platine bereits integriert. An VUSB liegt USB-Spannung (5 V) an. Benutze diesen Konnektor nur, wenn du genau weißt, was du tust - er ist nicht gegen Verpolung gesichert!
Headphones-PCB Dient zum Anschluss der externen Kopfhörerplatine. Wird in die Klinkenbuchse der Kopfhörerplatine ein Stecker eingesteckt, so wird der Lautsprecherausgabe deaktiviert (und umgekehrt).
I2C extern Dient zum Anschluss eines externen I2C-Devices. Hierfür gibt es bei ESPuino bisher keinen Anwendungsfall und dient daher eher für zukünftige Entwicklungen. Wird daher ab Werk nicht bestückt - speziell auch, um Verwechselungen mit dem Anschluss des Drehencoders zu vermeiden (beide fünfpolig).
Neopixel Dient zum Anschluss des Neopixels (z.B. WS2812b). Kann eine einzelne Neopixel-LED sein, ein Streifen oder auch ein Ring. Beachte bitte die Beschriftung und verlasse dich NIE auf Farben beim Anschließen.
PowerOff-Switch Werden die beiden Kontakte (über einen Schalter) geschlossen, so wird die zentrale 3,3V-Spannungsversorgung für diese Zeit deaktiviert. In diesem Modus funktioniert nur noch das Aufladen des Akkus, sofern USB+Akku angeschlossen sind und der Akku nicht bereits voll ist. Der ESP32 ist also nicht im Deepsleep, sondern ist komplett ausgeschaltet - ist also nicht mit LPCD kompatibel. Vorteil: Reduziert Standby-Verluste. Nachteile: Der Start es ESPuino dauert etwas länger und man benötigt einen Schalter.
RFID Hier wird der RFID-Reader angeschlossen. Der 10Pin-Anschluss orientiert sich primär an den Bedürfnissen des PN5180, wobei jedoch auch der 5 V-Eingang mit 3,3 V beschaltet wird. Das bedeutet, dass die Pins 5 V, RST, BUSY und IRQ für den RC522 nicht benötigt werden. Hinweis: CS wird beim PN5180 an „NSS“ angeschlossen und beim RC522 an „SDA“.
Rotary Encoder Dient zum Anschluss eines Drehencoders. Empfehlung meinerseits: Drehencoder by ESPuino. Solltest du einen eigenen benutzen, so achte bitte darauf, dass dieser PullUp-Widerstände auf CLK, DT und BTN benötigt. Über den Drehencoder wird dein ESPuino standardmäßig lauter und leiser gemacht und der integrierte Button dient zum Ein- und Ausschalten. Sollte die Drehrichtung des Drehencoders im Betrieb „falsch rum“ sein, so kannst du das per Software über das Webinterface in den allgemeinen Einstellungen umkehren.
Battery Hier wird der Akku angeschlossen. Achte stets auf korrekte Polarität - sie ist auch extra auf die Platine neben dem Anschluss aufgedruckt! Bitte beachte vor rev5.1: Eine LFP-Platine unterstützt nur LiFePO4-Akkus und eine LiPo-Platine nur LiPo-Akkus.

Inbetriebnahme

Hierzu gibt es einen eigenen Artikel: 📗 Tutorial: Aufbau Complete-Platine samt Inbetriebnahme und Tipps.
Alle Boards, die ich verschicke, sind vorgeflasht mit ESPuino. Hierbei kommen die Standardeinstellungen zum Einsatz. Zusätzlich ist PORT_EXPANDER_ENABLE aktiviert, der Support für RC522 deaktiviert und weiterhin der Support für den RFID-Reader PN5180 aktiviert. Solltest du daran etwas ändern wollen, so musst du Visual Studio Code mit Platformio installieren und einrichten und eine eigene Firmware flashen. Hier ist Folgendes zu beachten:

  1. Als Profil muss complete gewählt werden in Platformio.
  2. In settings.h muss PORT_EXPANDER_ENABLE aktiviert werden. Siehe hier.

Achte auch darauf, dass für den Start zwingend die µSD-Karte eingelegt werden muss, sofern NO_SDCARD nicht aktiviert ist. Bei µSD-Karten gilt es zu beachten, dass sie FAT32-formatiert (nicht exFAT!) werden müssen. Karten größer 32 GB sind ab Werk üblicherweise exFAT-formatiert und müssen daher umformatiert werden. Es wurde mehrfach berichtet, dass sich SD Formatter dafür gut eignet.

Was kann die Complete nicht?

  • Im Gegensatz zur mini4L ist ein zweiter MAX98357a (Verstärker) für einen zweiten Lautsprecher nicht vorgesehen. Der Hauptgrund ist, dass er relativ selten (<10%) nachgefragt wurde und ich somit nicht verschwenderisch mit diesen Bauteilen umgehen möchte.
  • Sie arbeitet weiterhin lediglich intern mit einer Spannung von 3,3 V und nicht zusätzlich mit 5 V.
  • Die Complete besitzt keinen Coulomb-Counter. D.h. der Ladestand wird nur indirekt über die Akkuspannung gemessen. Möglich, dass sich dies in einer späteren Revision irgendwann nochmal ändern wird. Grundsätzlich bin ich offen für Vorschläge für ICs, die per i2c angebunden werden und möglichst kompakt sind. Eigentlich haben wir in dieser Sache schon Code für den MAX17055, jedoch wurde berichtet, dass dieser recht ungenau ist.

Spannungswächter

  • In meinen Tests konnte man die LFP-Akkus bis etwa 2,75 V entladen, ehe der Spannungswächter auslöste - bei LiPo waren es etwa 3,15 V. An für sich könnte man LFP-Akkus noch ein bisschen weiter entladen, aber wenn man 3 V erreicht hat dann fällt die Spannung recht schnell. Anders gesagt: Man gewinnt zwischen 2,7 V und 2,5 V höchstens ein paar Minuten Laufzeit - also gehen wir lieber auf Nummer sicher. Gleiches gilt auch für LiPo, die man nur bis 3 V entladen soll.
  • Der Spannungswächter löst eigentlich bereits aus, wenn die Eingangspannung wenige Millisekunden unter den Referenzwert fällt. Zu einem solchen Event kann es im normalen Betrieb kommen, wenn kurzzeitig mehr Strom aufgenommen wird, was durchaus regelmäßig passiert. Besonders zu erwähnen ist jedoch, wenn der USB-Stecker rausgezogen wird, wenn der Akku schon sehr weit entladen ist. Um ungewolltes Auslösen/Abschalten ein Stück weit zu unterbinden, habe ich als Puffer ein RC-Glied zwischen dem Spannungswächter und der Spannungsversorung eingefügt.
  • :red_exclamation_mark:Löst der Spannungswächter im normalen Betrieb bei fast leerem Akku aus, so versucht der ESPuino, im Anschluss neu zu starten. Das schlägt aber oft fehl, da die Spannung dann erneut einbricht - der Vorgang beginnt dann wieder von vorne. In meinen Tests zeigte sich das Problem für ca. 2-3 Minuten, ehe der gewollte Endzustand erreicht war, dass der ESPuino sich gar nicht mehr starten ließ. Diese „Übergangsphase“ kann ich leider nicht komplett unterbinden. Merke: Startet der ESPuino mehrfach hintereinander unerwartet neu, dann ist die Chance groß, dass der Akku ziemlich leer ist und geladen werden muss.
  • Seit rev5.1 sind zwei Spannungswächter an Bord der Complete, wovon einer immer aktiv sein muss. Die Auslösespannungen sind jeweils an LFP und LiPo angepasst.

Akkubetrieb

  • Die Complete kann natürlich auch gänzlich ohne Akku betrieben werden.
  • Wie oben beschrieben, besitzt die Complete einen Spannungswächter, so dass der Akku nicht tiefentladen wird. Normalerweise ist ein Tiefentladeschutz bereits in den Akkupacks integriert, jedoch sollte das Ziel sein, dass dieser letzte Notanker nicht greifen muss. Und genau dafür ist der Spannungswächter da.
  • Solltest du einen Akku verwenden wollen, so achte darauf, dass dieser mind. 2000 mAh an Kapazität besitzt. Grund hierfür ist der Ladestrom von max. 1 A: Das entspricht einer Laderate von 0,5 C und ist üblicherweise das, was gemäß Herstellerangabe nicht überschritten werden soll.
  • Empfehlung Akku (LiFePO4): EREMIT 3.2V 6Ah LiFePo4 Akku Pack oder Selbstbau.
  • Empfehlung Akku (LiPo): EREMIT 3.7V 2500mAh 104050
  • Zum Laden des Akkus befindet sich ein Laderegler auf der Complete, dessen max. Ladestrom auf 1 A eingestellt ist.
  • Es sei darauf hingewiesen, dass das Messen der Akkuspannung nur dann aussagekräftig ist, wenn USB nicht angeschlossen ist. Grund: Wird der Akku geladen, so misst man fälschlicherweise die Ladespannung und diese liegt höher als die eigentliche Akkuspannung.
  • ESPuino leitet den Ladestand des Akkus über die Akkuspannung ab. Das ist bei LiPo-Akkus kein Problem, da die Spannung sich innerhalb von 4,2 und 3 V in einem großen Bereich bewegt und halbwegs linear zum Ladestand verhält. Bei LiFePO4 (LFP) ist dies jedoch problembehaftet, da die Spannung sich von 10 bis 80 % Ladestand im Bereich von 3,2 V bewegt. Daher ist es wichtig, sich nicht komplett auf die Anzeige zu verlassen. So ab 3,1 V und spätestens ab 3 V, fängt die Spannung schneller an zu sinken: Erst hier weiß man, dass der Akku schon ziemlich weit entladen ist.
  • Nachfolgend sei noch die Bedeutung der Lade-LED erklärt:
Zustand LED Bedeutung
blinkt schnell USB angeschlossen ist, kein Akku angeschlossen.
leuchtet dauerhaft USB + Akku sind angeschlossen und der Akku wird geladen. Dies geschieht immer, wenn beides angeschlossen ist und so lange, bis der Akku vollgeladen ist.
ausgeschaltet USB + Akku sind angeschlossen und Akku ist bereits komplett geladen. Oder Akku angeschlossen, jedoch kein USB.

Verstärker

  • Als Verstärker für einen Lautsprecher befindet sich auf der Complete ein MAX98357a. Hierbei handelt es sich um einen Digitalverstärker (Class D) mit integriertem DAC.
  • Er wird mit 3,3 V betrieben, was zu einer Ausgangsleistung von etwa 1 W führt (an 4 Ohm). Das ist zwar recht wenig, reicht aber bei weitem für’s Kinderzimmer, um dort einen 4 Ohm-Lautsprecher wie z.B. den Visaton FR-7 anzutreiben. Dennoch macht es keinen Sinn, hier einen großen Lautsprecher anschließen zu wollen, da hierfür die Leistung einfach zu gering ist.
  • Per Software kann die Lautstärke in 21 Schritten eingestellt werden. Komfortabel geschieht das über einen optionalen Drehencoder, Taster/Buttons sind jedoch auch möglich.
  • Weiterhin lässt sich über JP2 und JP3 die Grundlautstärke einstellen. Hierbei gilt: Je höher die Grundlautstärke, desto weniger fein sind die 21 Schritte abgestuft. Am besten ausprobieren - meiner Meinung nach reicht +3dB (an einem Vistaton FR-7).
  • Die max. Lautstärke kann per Software über das Webinterface limitiert werden (für Lautsprecher und Kopfhörer getrennt).

RFID

ESPuino unterstützt die beiden RFID-Reader PN5180 und RC522. Der Anschluss (10 Pins) orientiert sich primär an den Bedürfnissen des PN5180, d.h. nicht alle Anschlussleitungen werden für den RC522 benötigt.

Anschluss Complete PN5180 RC522 Anmerkung/Bedeutung
5V +5V nicht benötigt Liefert nur 3,3 V, funktioniert aber dennoch am PN5180
3,3V +3.3V 3.3V Spannungsversorgung
RST RST nicht benötigt Kann vermutlich auch bei RC522 angeschlossen werden, bewirkt jedoch nichts.
CS NSS SDA SPI: Chip select / Slave select
MOSI MOSI MOSI SPI: Master out slave in
MISO MISO MISO SPI: Master in slave out
SCK SCK SCK SPI: Serial clock
BUSY BUSY nicht benötigt
IRQ IRQ nicht benötigt Kann vermutlich auch bei RC522 angeschlossen werden, bewirkt jedoch nichts.
GND GND GND Ground

µSD-Karten

Die Anbindung der µSD-Karte an den ESP32 erfolgt mittels 1Bit-SDMMC über drei GPIOs (2, 14, 15).
Damit ESPuino startet, muss die µSD-Karte mit FAT32 formatiert sein. Bei Karten bis 32 GB ist das für gewöhnlich am Werk der Fall, jedoch sind solche ab 64 GB üblicherweise exFAT-formatiert. Diese Karten müssen ZWINGEND auf FAT32 umformatiert werden! Unter Linux ist dies problemlos mit mkfs.fat möglich. Ansonsten wurde berichtet, dass folgendes Tool gut sei: SD Memory Card Formatter for Windows/Mac - SD Association. Weitere Infos findest du hier: Werden 64 Gb SD Karten unterstützt?.

Drehencoder

  • Die Complete besitzt einen fünfpoligen Anschluss für einen Drehencoder.
  • Mittels Drehencoder kann man die Lautstärke recht komfortabel einstellen. Darüber hinaus ist ein Button integriert, mit dem man standardmäßig den ESPuino aus- und anschaltet und auch die manuelle Akkuspannungsmessung anstößt.
  • Das Anlöten der fünf Anschlussleitungen an einen Drehencoder ist ein bisschen unschön, weswegen ich für ESPuino ein eigenes Drehencoder-Board entwickelt habe, welches man einfach nur dransteckt.
  • Du musst keinen Drehencoder verwenden und wenn du einen verwenden möchtest, so kannst du ihn auch woanders kaufen. Bedenke jedoch, dass die Anschlüsse CLK und DT jeweils einen 10k-PullUp-Widerstand benötigen.
  • Sollte die Drehrichtung deines Drehencoders falsch rum sein, so kannst du dies über das Webinterface in den allg. Einstellungen korrigieren. Es muss also nichts umgelötet werden.

Buttons

  • Die Complete bietet die Möglichkeit, bis zu fünf Buttons (Taster) anzuschließen. Der im Drehencoder integrierte Button kommt noch dazu.
  • Standardmäßig von mir vorgesehen sind drei Taster und ein Drehencoder. Man könnte es jedoch auch auf die Spitze treiben und mittels LPCD und Modifikationskarten gar keine Taster verwenden. Umgekehrt kann man natürlich auch fünf Buttons verwenden.
  • Einem Button kann man drei Aktionen zuweisen: Kurzer Tastendruck, langer Tastendruck und Tastendruck in Kombination mit einer zweiten Taste.
  • Welche Aktion jeweils passiert, wird in der settings.h festgelegt oder im Webinterface. Im Detail beschrieben ist das Ganze hier: 📗 Das dynamische Button-Layout.

Kopfhörerplatine

  • Die Complete bietet einen sechspoligen Anschluss zum Anschluss einer Kopfhörerplatine. Wird die Kopfhörerplatine mitbestellt, so wird sie mit einer Anschlussleitung mitgeliefert. Einfach einstecken - fertig.
  • Die Kopfhörerplatine muss nicht verwenden werden, deine Complete funktioniert auch ohne.
  • Funktionsweise: Wird der Stecker eines Kopfhörers in die Klinkenbuchse eingesteckt, so wird der Lautsprecher automatisch deaktiviert. Umgekehrt geht der Lautsprecher wieder an, wenn der Stecker wieder rausgezogen wird.
  • Die max. Lautstärke des Kopfhörerausgangs kannst du über das Webinterface von ESPuino in 21 Stufen begrenzen.

Neopixel

  • Die Complete bietet einen dreipoligen Anschluss für einen Neopixel. Achte UNBEDINGT darauf, dies korrekt anzuschließen: Die Belegung ist auf der Complete aufgedruckt. Verlasse dich NIE auf die Farben der Anschlussleitungen.
  • Ein Neopixel kann eine einzelne Neopixel-LED sein, ein Streifen mehrerer Neopixel-LEDs oder ein Neopixel-Ring.
  • Man kann den Neopixel auch weglassen, jedoch fehlt dann so ziemlich jegliches Feedback zum Benutzer. Dazu ein paar Informationen: 📗 Was zeigt der Neopixel des ESPuino alles an?.
  • Standardmäßig ist es vorgesehen, dass es sich um einen Ring handelt, bei dem die Anzahl der LEDs durch 4 teilbar ist. Die Anzahl der LEDs kann in der settings.h oder im Webinterface in den allg. Einstellungen konfiguriert werden.
  • Du kannst auch eine ungerade Anzahl an LEDs verwenden, jedoch sehen Animationen damit ggf. (teilweise) komisch aus. Gleiches gilt für eine einzelne LED.

USB-C-Anschluss

  • Die Complete besitzt einen USB-C-Anschluss, über die sie mit Strom versorgt oder auch die Firmware auf den ESP32 geflasht werden kann. Auch die Ausgaben der seriellen Konsole laufen darüber.
  • Der Strombedarf von ESPuino liegt (je nach Lautstärke und Anzahl/Helligkeit der Neopixel-LEDs) bei etwa 140 bis 350 mA. On top kommt ein Akkuladestrom von bis zu 1 A. Dein Netzteil sollte also sicher 1,5 A liefern können.

Schaltplan

LFP: Schaltplan rev 5.0.1.pdf (301,9 KB)
LFP + LiPO: Schematics_rev5.1.pdf (779,0 KB)

STEP-File

Complete with buck_boost_TP63001.step.zip (2,1 MB)

Weitere benötigte Teile / Vorschläge für ESPuino-Bau

Um einen ESPuino zu bauen, sind noch weitere Teile notwendig. Nachfolgend ein paar Vorschläge, du kannst sie aber auch gänzlich woanders kaufen.

Probleme?

Kein Problem, dafür gibt es dieses Forum hier. Schreib’ uns einfach! :slight_smile:

Sicherheitshinweise

Dies ist ein privat betriebenes DIY-Projekt. Ich habe die Complete-Platine nach bestem Wissen und Gewissen designed. Für den Betrieb und auch für Fehlbedienung übernehme ich keinerlei Haftung. Achte stets darauf, AUSSCHLIEßLICH Lithium-Akkus zu verwenden, die eine integrierte Schutzschaltung haben!
Beispiel LFP: EREMIT 3.2V 6Ah LiFePo4 Akku Pack
Beispiel LiPo: EREMIT 3.7V 2500mAh 104050

Interesse?

Hier gibt es die gesamte Preisliste, darüber kannst du mich auch kontaktieren. Die Platine kommt fertig gelötet zu dir. Das (optionale) JST-Anschlussset besteht aus 7x 2fach, 1x 3fach, 1x 5fach und 1x 10fach. Die Anschlussleitung 1x 5fach entfällt, wenn du einen Drehencoder mitbestellst, da diese dann nicht notwendig ist.

2 „Gefällt mir“

Hinweis

Es gibt inzwischen die Revision 5.1.0, die LiPO- und LFP-Funktionalität auf einer Platine vereint. Möglich geworden ist dies, da die Polarität des Akkuanschlusses von LFP-Akkus seitens Eremit denen von LiPo angeglichen wurde. Das war zuvor anders.

Oberseite rev5.0.1:


Unterseite rev5.0.1:

Nachdem die erste Charge (nur fünf Platinen, rev. 5.0) weg war, sind heute neue Platinen eingetroffen (rev 5.0.1). Dort habe ich folgende Anpassungen vorgenommen:

  • Für LiPo und LFP gibt es nun getrennte Platinen. Die Ladespannung für den Akku ist entsprechend fest eingestellt (bei der rev5.0 war das noch konfigurierbar). Der integrierte Spannungswächter für LFP liegt bei 2,63 V und bei LiPo bei 3,08 V, wobei in der Praxis die jeweilige Abschaltspannung ca. 0,1 V höher ist.
  • Auf der Rückseite habe ich die Schrift von 0,6 auf 0,8 mm erhöht, was auf jeden Fall Sinn gemacht hat.
  • Auf der Rückseite habe ich die von mir empfohlene Konfiguration zusätzlich an den jeweiligen Lötjumpern mit einem Strich flankiert.
  • Auf der Vorderseite habe ich die Schrift am Akku invertiert. Was im CAD-Programm gut aussah, ist in der Praxis aber leider zu klein und schlecht lesbar. Das werde ich wieder ändern und vor allem die Schrift vergrößern. Es steht aber auch auf der Rückseite noch LFP bzw. LiPo drauf, insofern ist das nicht weiter tragisch.
  • Vorderseite: Damit (hoffentlich) niemand am Lautsprecheranschluss den Akku anschließt (ich weiß nicht, was dann passiert), habe ich dem Lautsprecheranschluss ein Lautsprechersymbol spendiert.

Funktionieren tut alles wie gewünscht :+1:.

Ich muss jetzt mal ein bisschen darüber nachdenken, ob ich LiPo und LFP doch wieder auf einer Complete konvergiere, da ja kürzlich die Polarität der LFP-Akkus angeglichen wurde (das war der Haupthinderungsgrund bisher). Entsprechend müsste ich zwei Spannungswächter mit unterschiedlichen Spannungen integrieren, von denen man genau einen per Lötjumper zuweist. Die Möglichkeit zum Bypass des Spannungswächters würde ich damit entfernen. Und die Akkuladespannung muss auch wieder jumperbar sein.
Aus sicherheitstechnischer Betrachtung mag ich getrennte Platinen, aber es ist halt auch teurer, unflexibler und macht mir doppelte Arbeit in der Pflege. Mal schauen…
~

4 „Gefällt mir“

Danke für diesen tollen Beitrag. So ein ausführlich dolumentiertes Projekt habe ich in meinem langen Leben noch nicht gesehen.
Ich habe vor einigen Jahren meinen Enkeln einen Tonuino gebastelt und würde jetzt gerne mal den ESPUino ausprobieren. Nun zu meiner Frage:
Ich finde nirgends die genauen technischen Angaben wie Lochabstand der Complete Platine. Die Bilder sind zwar ein erster Anhaltspunkt, für ein Gehäuse Design müsste ich es aber genauer wissen. Die STEP Datei habe ich mal in Freecad geöffnet, aber auch da kann ich keine exakten Positionen auslesen. Wo finde ich die genauen Maße? Gibt es vielleicht eine technische Zeichnung?
Gruß
Matthias

Sowas?

Wobei die Löcher da jetzt bisschen groß wirken. Da sind noch die Schutzzonen dabei. Haben auf jeden Fall 3,2 mm Durchmesser.

Geht vielleicht noch eleganter in KiCad; weiß ich nicht.

Danke Torsten,

das ist genau was ich gesucht habe. In “KiCad” kann ich STEP DAteien gar nicht importieren, in FreeCAD geht das zwar, aber die Meßmöglichkeiten für STEP Dateien sind begrenzt. Ich habe auch keine andere (Linux) Software für STEP Dateien gefunden. Aber Dein Schema reicht mir völlig.

Gruß
Matthias

wow - tolle Arbeit.
Gibts für mini4L - User außer dem Formfaktor einen Grund upzudaten?

Also grundsätzlich ist es in weiten Teilen erstmal die gleiche Hardware, jedoch nur auf einer Platine weniger. Der Vorteil der Complete ist, dass sie auch aus kleineren Spannungen 3,3 V machen kann. Und sinkt die Akkuspannung zu weit ab, dann wird das Ganze abgeschaltet. Bei der mini4L sinkt die Spannung dann immer weiter ab und irgendwann fängt der ESP32 an, „komischen Kram“ zu machen. Aber wenn man halt weiß, dass spätestens dann, wenn der ESPuino komischen Kram macht, dass man dann aufladen muss, dann kann man sich ja drauf einstellen - war bei meinen Kindern auch so.

Insofern würde ich da kein Upgrade durchführen - dafür funktioniert die mini4L einfach viel zu gut :slight_smile:.

1 „Gefällt mir“

Update:
Nach ca. 50 versendeten Complete-Platinen stelle ich fest, dass der LiPo-Anteil doch höher ist, als ich erwartet hätte. D.h. etwas mehr als 1/3 der Platinen habe ich für LiPo vorkonfiguriert. Hätte ehrlich gesagt eher so 15 % erwartet.
Nun gut: Schön, dass ich jetzt wieder beides anbieten kann :slight_smile: