Update:
Die aktuelle Fassung sieht wiefolgt aus:
Zuerst ein Bild:
Einleitung
Kommerziell erhältlich gibt es eine ganze Reihe von ESP32-Develboards, die integrierten Akkubetrieb unterstützen. Integriert bedeutet, dass folgende Modi möglich sind:
- nur USB: Es ist kein Akku angeschlossen, der Betrieb wird rein durch USB-Versorgung gewährleistet.
- nur Akku: Der Betrieb wird rein durch Akku-Versorgung gewährleistet.
- USB + Akku: Die Versorgung erfolgt vorrangig durch USB und der Akku wird, sofern notwendig, durch eine spezielle Ladeschaltung geladen. Wird die USB-Versorgung getrennt, so übernimmt der Akku nahtlos die Versorgung (sofern dessen Ladestand ausreicht).
Allerdings geht es hier quasi immer um LiPo-Akkus. Und da LiFePO4-Akkus sich zunehmener Beliebtheit erfreuen, war das für mich Grund genug, mich dieser Sache mal anzunehmen und ein eigenes Develboard zu planen + löten. Die Forderung nach USB-C kam hier im Forum auch schon mehrfach auf, so dass ich das ebenfalls in die Waagschale geworfen habe.
FePo vs LiPo
Einen schönen Vergleich zwischen LiPo und LiFePO4 (nachfolgend FePo) gibt es hier. Kurz: FePo hat eine niedrigere Energiedichte als LiPo, gilt jedoch als sicherer, zyklusfester und hat eine Spannung, die „von Natur aus“ sehr gut zum ESP32 passt. Kurzum: Man könnte sich prinzipiell den 3.3 V-Festspannungsregler sparen. Tatsächlich brauchen wir ihn für unsere Zwecke natürlich trotzdem, da wir das Develboard auch mit USB-Spannung betreiben wollen und der ESP32 nur 3.3 V (Nennspannung) verträgt. Zum Spannungsverlauf von FePo habe ich auch mal eine Messreihe angefertigt.
Vergleich zum Lolin D32 pro
Pate für dieses Develboard stand der Wemos Lolin D32 pro. Das bedeutet, dass die funktionelle Anschlussbelegung der oberen beiden Pinreihen zu 100% identisch ist und auch ein ESP32-WROVER-E mit 16 MB Flashspeicher verbaut ist. Die technisch erwähnenswerten Änderungen sind:
- Verwendet als Akku-Laderegler den Chip TP5000 (anstelle TP4054).
- Unterstützt ausschließlich FePo-Akkus (anstelle ausschließlich LiPo-Akkus).
- Nur die USB-Versorgung läuft durch den Festspannungregler (ME6211). Die Batteriespannung wird erst hinter dem Festspannungsregler eingespeist (*).
- Max. Ladestrom des Akkus beträgt 1 A (anstelle 0,5 A beim D32 pro).
- USB-C-Anschluss (anstelle micro-USB).
- Auf der rechten Pinreihe gibt es einen Pin, der CHRG heißt. Hiermit lässt sich detektieren, ob der Akku gerade geladen wird (wird dann auf GND gezogen). Das klappt allerdings nur, wenn keine LED für die Ladekontrolle eingelötet ist. Beim D32 pro ist dieser Pin der Pinreihe unbelegt. ESPuino unterstützt das Auslesen von CHRG derzeit nicht. Kurz: Ist unklar, ob das jemals gebraucht wird, aber haben ist besser als brauchen
.
- Die Konnektoren für SD, I2C und Display sind auf meinem Board nicht vorhanden. Einerseits ist dafür eh kein Platz und andererseits machen wir das ohnehin extern.
- Spannungsteiler zum Messen der Akkuspannung ist 300k + 300k (anstelle 100k + 100k) => spart Strom im Akkubetrieb. Wenn man möchte, dann kann man das hier eintragen. Es ist aber nicht notwendig, da es gar nicht um die absoluten Zahlen geht, sondern nur um das Verhältnis beider Zahlen zueinander. Und hier macht 100/100 zu 300/300 keinen Unterschied.
- Statt einer roten LED ist eine blaue LED verbaut. Sie blinkt (mehr oder weniger schnell), wenn USB angeschlossen ist aber kein Akku. Sie leuchtet, wenn USB+Akku angeschlossen sind. Ist nur der Akku angeschlossen, so leuchtet sie nicht. In kurz etwa so
.
Stromaufnahme im Akkubetrieb
Gemessen mit/in ESPuino-miniD32(pro): Lolin D32/D32 pro mit SD_MMC und Port-Expander (SMD) inkl. Kopfhörerplatine:
- Deepsleep: ca. 1,4 mA
- Leerlauf: ca. 130 mA
- Betrieb bei mittlerer Lautstärke (SD): ca. 150 mA
- Betrieb bei mittlerer Laustärke (Webradio): ca. 185 mA
Empfehlungen für ESPuino-Betrieb
Wichtig: In diesem Zuge auch gleich die Werte für die Lautstärke überprüfen.
Schaltplan
Schematics_D32pro_FePo rev3.pdf (182,2 KB)
Schematics_D32pro_FePo rev4.pdf (210,7 KB) => wird zur Zeit erst noch getestet
Hinweise
- Auf keinen Fall darf ein LiPo-Akku angeschlossen werden. Der TP5000 unterstützt, wenn man ihn entsprechend beschaltet, zwar auch LiPo, ich habe ihn (aus Komplexitäts- und Platzgründen) jedoch fest auf FePo eingestellt. (*) Das Hauptproblem ist jedoch: Wird ein LiPo-Akku angeschlossen, so geht, je nach Akkuspannung (Ladung), mindestens das ESP32-Modul kaputt, weil die Spannung vom Akku (wie oben beschrieben und im Schaltplan sichtbar) nicht durch den Festspannungsregler läuft und Spannungen >3,6 V vom ESP32 nicht toleriert werden!!! LiPo liefert jedoch bis zu 4,2 V. Das Umgehen des Festspannungsreglers habe ich deswegen so gemacht, weil es die FePo-Spannung, die ja schon passt, unerwünscht reduzieren würde, wenn die Batteriespannung ebenfalls den gleichen Weg wie USB ginge.
- Über den Widerstand R5 kann der Ladestrom eingestellt werden. Ich habe hier 0,1 Ohm eingelötet, was zu max 1 A Ladestrom führt. Welche Widerstände für andere Ströme benötigt werden, kann man dem Datenblatt (TP5000_auto_translated_.pdf (471,6 KB)) entnehmen. An der Stelle jedoch der Hinweis, dass die Diode D2 nur 1 A Nennstrom unterstützt. Beim Laden erwärmt sie sich deutlich, heiß ist sie jedoch nicht. Insofern würde ich sagen, dass vermutlich noch Luft nach oben ist, aber das habe ich nicht getestet.
- Ein passender Akku mit integrierter Schutzschaltung wäre z.B.: EREMIT 3.2V 6Ah LiFePo4 Akku Pack oder https://www.eremit.de/p/3-2v-4000mah-pack-mit-schutz-flach. Achte darauf, ihn fertig konfektioniert mit Stecker JST PH 2.0 zu bestellen. Der Pluspol des hier vorgestellten Develboards ist links (siehe Aufdruck), einen dedizierten Verpolungsschutz habe ich (bisher) nicht eingebaut! Wichtig zu wissen: LiPo-Akkus konfektioniert Eremit eigentlich gemäß diesem Schema. Der Grund, warum die FePo-Akkus von Eremit davon abweichen ist, dass seine FePo-Akkus zu 95 % von Tonuino-Usern benutzt werden und er sich, nach eine Reihe von verbrutzelten Tonuinos, der „Tonuino-Stecker-Belegung“ angepasst hat. Alternativ könnt ihr euch natürlich auch selbst ein Akkupack mit BMS bauen. Auf jeden Fall aber IMMER mit BMS!
Prüft bei allem, was ihr anschließt, IMMER die Polarität!
Kompatibilität zu ESPuino
Wie schon erwähnt, ist das Board funktional 100% pinkompatibel mit dem D32 pro von Wemos. Das bedeutet im Gegenzug natürlich auch, dass man es ohne Einschränkungen z.B. für ESPuino-miniD32(pro): Lolin D32/D32 pro mit SD_MMC und Port-Expander (SMD) verwenden kann. Und das bedeutet gleichwohl, dass als Profil in PlatformIO ebenfalls lolin_d32_pro_sdmmc_pe
verwendet wird.
Die Parameter für die Akkuspannungen, die standardmäßig auf LiPo ausgerichtet sind, sollte man in der WebGUI noch anpassen, damit nicht ständig Spannungswarnungen angezeigt werden.
Gibt es Nachteile ggü. LiPo?
- Die Entladekurve ist extrem flach. Gleiches konnte ich durch einen Test auch bestätigen: Messreihe mit LiFePO4-Akku.
Für den Betrieb des ESP32 ist das eigentlich optimal und genau das, was man eigentlich will. Aber dadurch ist es viel schwieriger, den korrekten/ungefähren Ladestand des Akkus zu bestimmen. Aus meiner Sicht geht es jedoch hinreichend genau, so dass ich das nicht wirklich als Nachteil wahrnehme. - Durch die ggü. LiPo geringere Energiedichte sind die Akkus größer. Es scheint auch weniger unterschiedliche Akku-Kapazitäten zu geben.
Tipps und Tricks
- USB-Anschluss im Gehäuse nach außen führen: Magnet-USB-Stecker.
- Anschluss einer USB-C-Buchse: Anschluss einer USB-C-Buchse.
Ausblick
Für’s Erste habe ich fünf Exemplare gelötet, von denen ich vier abgeben möchte. Ich werde auch im Anschluss noch welche löten. Sollte dauerhaft mehr Nachfrage vorhanden sein, dann muss ich das löten lassen, da das manuelle Löten doch relativ zeitaufwändig ist. Also Aufruf an diejenigen, die (schon länger) auf FePo-Support gewartet haben: Jetzt ist die Gelegenheit, eines zu bekommen; first come first serve! Ich erwarte allerdings auch, dass das Board zeitnah getestet wird und ich Rückmeldung erhalte .
Hier mal ein Bild der kleinen FePo-Familie:
Update 13.06.22
Inzwischen habe ich noch zehn weitere Platinen bekommen, so dass ich noch ein paar weitere Develboards löten kann. Schreibt mich an, wenn ihr eins braucht.
Update 20.06.22
Es gibt nun ein ähnliches Board auch für LiPo: ESP32-Develboard "E32 LiPo".
Update August 2022
Bis auf Weiteres löte ich diese Boards weiterhin von Hand und habe immer mal wieder welche da. Schreibe mir eine PM, wenn du ein solches benötigst.