ESP32 lädt Firmware nicht, wenn die Stromversorgung über VIN Pin erfolgt

Zoker

Lt. Junior Grade
Registriert
Okt. 2013
Beiträge
325
Hallo zusammen,

Ich versuche aktuell einen ESP32 (diese Version: https://www.espressif.com/en/products/modules/esp-wroom-32/overview) für die Steuerung eines be quiet PWM Lüfters zu programmieren. Da ich in meinem Smarthome auf Home Assistant setze und schon für einige andere Geräte (unter anderem Sonoff Geräte) auf ESPHome gesetzt habe, wollte ich das hier auch wieder verwenden.
Und tatsächlich gibt es auch eine Möglichkeit in ESPHome Lüfter zu steuern:
https://esphome.io/components/output/esp8266_pwm.html

Bzw für den ESP32:
https://esphome.io/components/output/ledc.html

Hier noch das Pin Diagram von meinem ESP:
ESP32-Pinout.jpg


Ich hab also die Firmware erfolgreich erstellt und auf den ESP32 geladen. Wenn ich den ESP32 nun per USB mit Strom versorge, booted die Firmware ganz normal und ich kann per Webinterface auf das Gerät zugreifen und meinen Lüfter steuern.

Wenn ich nun statt USB den VIN Pin mit 5V und den GND direkt darüber verwende, bootet das Board nicht mit der Firmware und verbindet sich nicht mit meinem WLAN. Allerdings leuchtet die rote LED auf dem Board, genau wie bei der Stromversorgung via USB. Laut meiner Recherche kann das Board so bestromt werden:
https://rntlab.com/question/can-i-power-esp32-with-5v-via-the-vin-pin/

Ich hab nun diese Seite gefunden, aber ehrlich gesagt werde ich da nicht so wirklich schlau daraus:
https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection

Muss ich noch irgendwelche Pins verbinden, damit das Board mit der installierten Firmware bootet wenn ich es per VIN Pin bestrome?
Vielleicht hat ja hier jemand Erfahrung mit dem Board und kann mir weiterhelfen :)

Vielen Dank!
 
bei der boot mode selection geht es darum, dass man den bootloader des ESP mit verschiedenen pins in den flash modus schicken kann. das übernimmt aber auf dem dev board der usb to serial IC in verbindung mit zwei transistoren, die dann GPIO0 und 2 entsprechend schalten.

man muss also aufpassen, falls man an den GPIOs 0 und 2 (und ein paar anderen) etwas angeschlossen hat, dass die pins beim booten im richtigen zustand sind. hast du bspw. an 0 einen pull-down widerstand gegen GND oder etwas anderes, das den 0 auf LOW zieht, dann geht der ESP in den flash modus.... außerdem muss GPIO2 unverbunden / HIGH sein (HIGH level ist beim ESP 0,75 * Versorgungsspannung, also i.d.R. (bei 3,3V) alles > 2,475 V).

hier eine ganz nette übersicht, welche pins wie belegt sind und welche gefahrlos nutzbar sind: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

falls du also aktuell keinen der sensiblen pins verbunden hast, hast du ein multimeter zur hand? ich würde mal ganz banal nachkucken ob da auch wirklich 5V anliegen... woher kommen deine 5V? an und für sich sollte der spannungsregler da aber ziemlich tolerant sein. den kannst du theoretisch mit bis zu 15V versorgen... falls du also eine 12V spannungsquelle zur verfügung stehen haben solltest, zum testen. allerdings muss man dabei wissen und beachten, dass ein spannungsregler im gegensatz zu bspw. einem buck-converter die spannungsdifferenz "verheizt" und dadurch dann doch auch irgendwann heiß wird/werden kann. bei 5V ist das aber relativ gefahrlos, da der ESP ja nur max. ein paar hundert mA zieht und das dann letztlich vielleicht ein halbes watt verlustleistung im peak macht, das geht ohne kühlung. bei 12V sieht die sache auf dauer eher anders aus, daher nur kurzzeitig zu empfehlen :D

im endeffekt macht die frage nach den IO pins aber eigentlich ja nun nicht so wirklich viel sinn, da es im USB-modus auch klappt. sonst würde der normalerweise auch dann im flash modus verweilen... wie stellst du denn fest, dass er mit der firmware gar nicht bootet? stellst du das nur anhand der fehlenden wlan verbindung fest? hast du einen externen usb to serial adapter, mit dem du schauen könntest, was der ESP über seriell spricht, wenn du ihn manuell mit strom versorgst?

ansonsten.. es reichte bei mir bisher immer, nur den VIN und irgendeinen GND zu verbinden. würde natürlich nicht schaden, die GNDs alle durchzuprobieren.. aber eigentlich sollten die ohnehin alle miteinander verbunden sein.

home assistant + ESP ist eine coole kombi, keep it up :daumen: bei weiteren fragen über das threadthema hinaus kannst du dich auch gerne an mich wenden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 0-8-15 User und Zoker
  • Gefällt mir
Reaktionen: Zoker
Cai-pirinha schrieb:
falls du also aktuell keinen der sensiblen pins verbunden hast, hast du ein multimeter zur hand? ich würde mal ganz banal nachkucken ob da auch wirklich 5V anliegen... woher kommen deine 5V?

Zu erstmal: Vielen vielen Dank für die ausführliche Antwort!

Die 5V kommen von so einem Netzteil:
https://amazon.de/dp/B07HSPT57Y

Und dann noch so einen Adapter:
https://amazon.de/dp/B009PH1J5Y

Cai-pirinha schrieb:
falls du also eine 12V spannungsquelle zur verfügung stehen haben solltest

Ist bestellt und kommt übermorgen an, dann kann ich das testen (brauch ich für den Lüfter eh, wobei der auch theoretisch mit 5V läuft).

Cai-pirinha schrieb:
home assistant + ESP ist eine coole kombi, keep it up :daumen: bei weiteren fragen über das threadthema hinaus kannst du dich auch gerne an mich wenden.

Ja ich nutze HA schon echt ne lange Zeit inzwischen (ich glaub ich hab so mit 0.60 oder so angefangen) :D
und bin immer noch sehr begeistert :D Auf das Angebot komme ich sehr gerne zurück :) Da können wir uns gerne auch mal so austauschen. Bist du auf dem HA Discord?

AlphaKennyBody schrieb:
Vergiss deine Recherche. Das Board will da 7-12V haben. Es gehen sogar 6-20V, wenn's sein muß. Schau mal hier: https://docs.zerynth.com/latest/official/board.zerynth.doit_esp32/docs/index.html
Hab erst gestern damit ne LED-Beleuchtung gesteuert. Dem Board hab ich die selben 12V gegeben, wie den LEDs. Läuft wunderbar.

Hmm interessant, das ist genau das Board das ich habe (also von DoIt). Werde das übermorgen mal mit dem 12V ausprobieren und schauen, ob das funktioniert :)
Und mit 12V nimmt das Board keinen langzeit Schaden?
 
in den allermeisten fällen ist auf diesen dev boards ein AMS1117-3.3 spannungsregler verbaut und der funktioniert ab (ausgangsspannung + 1,5V) sprich ab 4,8V.

das DoIt board hat genau diesen spannungsregler auch verbaut, so wie ich das sehe. merkwürdig, dass zerynth nun selbst schreibt, wie in dem link von @AlphaKennyBody zu sehen, dass 7V+ benötigt werden. denn logischerweise kommen auch über USB nur 5V an... der ESP selbst frisst so oder so seine 3,3V, also kommt dessen betriebsspannung ohnehin IMMER vom spannungsregler. also macht das eigentlich überhaupt keinen sinn, wenn hier geschrieben wird, 7V sei das minimum - wie gesagt, das widerspricht ja sowieso der versorgung per USB. komisch! bin gespannt, ob es mit 12V funktioniert.

hast du die anderen GND anschlüsse auch ausprobiert?

nee, ich bin leider nicht auf dem discord. aber du kannst mir gerne eine PN schicken o.ä.. vielleicht komme ich dann spontan auf den discord, wenn es gerade passt :D
dann bist du sogar länger bei HA als ich, ich habe irgendwo bei 80 angefangen :D

das board hält die 12V schon aus fürs erste. du kannst das auf jeden fall mindestens mal zum testen so betreiben.
 
  • Gefällt mir
Reaktionen: 0-8-15 User
Mein ESP32 DEVKIT V1 Board hat noch eine Diode als Verpolungsschutz am V_in. Da fallen nochmal rund 0,7V ab.
 
@Kanibal stimmt, da ist noch ne diode zwischen USB V+ und Vin... habe auch ein "DEVKIT V1" und die diode mal gemessen: immerhin eine 0,3V schottky. sonst wäre es dann auch direkt sense am AMS1117 mit den "mindestens 4,8V"... die sind aber auch so nicht zu halten - bei mir resultiert das ganze in 4,7V Vin (über USB), aber das reicht dem spannungsregler trotzdem für nahezu perfekte 3,3V.
 
So ich hab heute das 12V Netzteil bekommen und selbes Problem wieder. Inzwischen hab ich es auch oft via USB.
Zusätzlich zu dem DOIT Esp32 DevKit v1 hab ich mir auch noch ein AZ-Delivery ESP-32 Dev Kit C V4 bestellt, aber da gibt es genau den gleichen Fehler.

Also hab ich mal Putty angeschmissen und einfach mal per USB die Serial Connection ausgelesen.
Ganz oft hab ich folgende Meldung:
Screenshot_2020.05.18_16h49m59s_002_.png


Wenn ich das Board dann vom Strom trenne und wieder anschließe bekomme ich entweder wieder genau den gleichen Fehler oder es verbindet sich ohne Probleme.

Dazu gibt es auch auf Github zwei Issues:
https://github.com/esphome/issues/issues/432
https://github.com/esphome/issues/issues/455

Leider scheint es noch keine Lösung zu geben. Aber das könnte das Problem sein, warum sich das Board nicht mit meinem Wifi verbindet. Also komplett unabhängig von der Stromzufuhr. Ehrlich gesagt bin ich aktuell ein bisschen planlos, was ich da jetzt machen soll, weil so eine wirkliche Lösung scheint es für das Problem aktuell nicht zu geben. Habt ihr eine Idee, was ich hier noch ausprobieren könnte?

Ah und noch eins:
Wenn ich den Lüfter und den ESP32 beide gleichzeitig über Strom versorge und das PWM Signal von dem Lüfter an den GPIO Pin4 anschließe, kann ich den Lüfter zwar steuern, aber er geht nie ganz aus. Er dreht halt nur langsam. Wie kann ich dafür sorgen, dass er komplett ausgeht?

Hier meine ESPHome config:
https://gist.github.com/TheZoker/da132365f59e52eba4711409923b8569
 
Zurück
Oben