Problem mit dem Upload - VCSBaseException (arduino-esp32.git#1.0.6)

Mit 1.0.6? Weil das lief bei mir auch noch. Ich musste jetzt aber auf die neue Version gehen, da die alte Version ja niemand mehr bauen kann, der den Kram nicht lokal hat. MQTT hatte ich gar nicht aktiviert, sondern nur halt Port-Expander und PN5180.

Also aus meiner Sicht ist langsam die Zeit gekommen, dass wir wechseln sollten. Aber auf jeden Fall muss der alte Branch noch kompilierbar bleiben. Ist halt einfach super ärgerlich mit diesen Deepsleep-Problemen.

Ja Master mit 1.0.6 läuft bei mir. Ich sehe jetzt noch nicht den Unterschied zu Deinen Settings.Habe nur den Portexpander und PN5180 aktiviert. Aber im Master schrammen wir auf wenige Bytes am verfügbaren IRAM Speicher.

Also aus meiner Sicht ist langsam die Zeit gekommen, dass wir wechseln sollten.

Das sehe ich auch so. Es sind ja so viele kleine Verbesserungen dazugekommen und der DEV Branch scheint stabil zu laufen.

Ich werde für den Master mal die Audiobibliothek und den IRAM Workarround (FastLED) festpinnen…

Nein, keinerlei Änderung.

mit HAL=7

Wird das nicht automatisch gesetzt?

Ich hatte jetzt versucht, manuell alle Libraries zu installieren, die ich nicht mittels PlatformIO direkt verlinken konnte (da über Github-URL absolut nicht geht). Leider scheinen die Versionen unterschiedlich zu sein. FastLED meckert über undefinierte SPI pins, NEOPIXEL kann aber auch erstmal aus sein.

In der ESP32-audioI2S gibt es kein setVolume(uint8_t&, int) sonder nur setVolume(uint8_t). Dabei sehe ich das bei Github. Habe dann esphome/ESP32-audioI2S@^2.0.7 geändert auf die aktuelle version esphome/ESP32-audioI2S@^3.0.0 und nope:

Library Manager: Installing esphome/ESP32-audioI2S @ ^3.0.0
UnknownPackageError: Could not find the package with 'esphome/ESP32-audioI2S @ ^3.0.0' requirements for your system 'windows_amd64'

PlatformIO kennt nur bis 2.0.7, da das ein Fork von schreibfaul1/ESP32-audioI2S ist… also händisch zip runtergeladen und in projektordner\lib gepackt, in platformio.ini auskommentiert und… scheint zu gehen. Mal gucken, ob ich es jetzt zum ersten mal auf den µC laden kann. Oh nein, der µC wird vom PC nicht mal erkannt :sob:

Okay, wenn man den reset Knopf gedrückt hält(!), wird er erkannt und bleibt vorhanden. Lasse ich los, ist er sofort(!) weg. Upload ging trotzdem/natürlich nicht. A fatal error occurred: Failed to connect to ESP32: No serial data received. Wie soll das auch klappen, wenn ich pausenlos resete?

Spannungen gemessen:

  • V_bat 3.3 V
  • V_bus 5 V
  • EN 5 V laut schmeatic mit R8 an V_bus → ok
  • reset 2.65 ↔ 0 V je nach Taster
  • paar Pins 2.65 V, viele 0 V, manche schwanken durch I/O. Die 2.65 V gehen auf ~3 V wenn ich reset drücke

Mal ne andere Anschlussleitung getestet?

Mitunter muss wohl ein Kondensator eingelötet. @tueddy kann dazu bestimmt was sagen, ich habe auf dem Mac da keine Probleme.

@Eheran1 Die Boards, die ich rausschicke, sind übrigens vorgeflasht. Allerdings für den PN5180, da ich nur diesen verwende.
Aber will heißen: Grundsätzlich sollte dein ganzer Aufbau auch jetzt schon starten. Bei mir ist er auf jeden Fall gelaufen. Weil ich schicke keine Sets raus, die ich nicht getestet habe.

Zunächst sollte geprüft werden ob das Board mit seiner seriellen Schnittstelle überhaupt in PIO erkannt wird (Hier COM4):

Unter Windows gibt es leider Timingprobleme beim Upload, der ESP32 geht nicht nicht den Uploadmodus. Abhilfe schafft ein Kondensator 100nF-0,47uF zwischen RESET und GND, das Thema wurde z.B. hier schon mal behandelt

1 „Gefällt mir“

Dann sollte er ein Wifi öffen und/oder via BT auffindbar sein? Beides ist nicht der Fall. Muss auf der SD-Karte irgendwas bestimmtes gespeichert sein außer ein paar random mp3, damit er „richtig hochfahren“ kann?

Mit dem Kabel (bzw. mit dem kompletten setup) kann ich andere USB-C µC mit dem Code flashen. Sind aber die falschen (siehe mein Beitrag hier), funktionieren daher nicht mit dem Code. Also Kabel, COM-port, compiling, … funktioniert (endlich!) alles.

Abhilfe schafft ein Kondensator 100nF-0,47uF zwischen RESET und GND

Habe 100 nF eingelötet. Jetzt wird der µC in keinem Zustand erkannt. Egal ob ich gedrückt halte oder nicht. Siehe Bild:

BT nicht, aber WiFi ja. Wenn das Develboard in die mini4L korrekt eingesteckt ist und auch eine SD-Karte vorhanden ist, die FAT32 formatiert ist, dann sollte das starten und einen Access Point aufspannen.

Ist das so korrekt? (SD ist FAT32)
Die LED_Chrg leuchtet rot und man hört ein leises Spulen-fiepen vom ESP32. Sonst passiert nichts.

Wenn ich ihn mit Netzteil am Batterieanschluss versorge, zieht der Aufbau 130 bis 150 mA, schwankend. LED_Chrg ist aus, Spulen-fiepen weg.

Wifi ist jetzt da! Das gibt es doch nicht. Kann mich mit der Weboberfläche verbinden, Daten eingeben, nach Neustart verbinden, sehe die MP3. Musik kann ich händisch starten! YESSS! Dann könnte ich so sogar den angepassten Code (z.B. mit MFRC522) über „upload“ hochladen. Gibt es dafür eine Anleitung zur Erzeugung der Binary (oder was auch immer man braucht)?

Ich vermute, dass der CH340C defekt ist. Ich werde den bei Gelegenheit mit einem von den anderen Boards tauschen. Wobei, warum sollte es dann mit 5 V nicht funktionieren? Quatsch.

Hier ist das Thema dazu Neues Feature: OTA-Update via WebGUI

Leuchten sollte die eigentlich nur, wenn ein Akku angeschlossen ist. Das Problem hatten wir hier letztens schon.

Die Binary wird durch VSC/Platformio erzeugt und dann geflasht. Aber dafür musst du dein Entwicklungssystem zum Laufen kriegen.
Wenn du mir sagst, welche Optionen du brauchst, dann kann ich dir eine Binary erzeugen.

VSC/Platformio läuft seit dem händischen Installieren von einigen libraries und dem Abändern der Guthub-URLs zu PlatformIO-„Direktverweisen“, wie oben beschrieben. Sieht jetzt so aus:

lib_deps =
	;https://github.com/schreibfaul1/ESP32-audioI2S.git#224373c
    ;esphome/ESP32-audioI2S@^3.0.0
    
	;https://github.com/madhephaestus/ESP32Encoder.git#61aef9c
    madhephaestus/ESP32Encoder@^0.10.2
	;https://github.com/knolleary/pubsubclient.git#2d228f2
    knolleary/PubSubClient@^2.8
	;https://github.com/peterus/ESP-FTP-Server-Lib#554959f
    peterus/ESP-FTP-Server-Lib@^0.14.1

	;https://github.com/tueddy/FastLED.git
	;https://github.com/me-no-dev/ESPAsyncWebServer.git#1d46269

	;https://github.com/me-no-dev/AsyncTCP.git#ca8ac5f
	me-no-dev/AsyncTCP@^1.1.1
    ;https://github.com/bblanchon/ArduinoJson.git@6.21.3
	bblanchon/ArduinoJson@^6.21.3

    ;https://github.com/pschatzmann/ESP32-A2DP.git#3b0cc1a
	;https://github.com/Arduino-IRremote/Arduino-IRremote.git#ed94895

	;https://github.com/kkloesener/MFRC522_I2C.git#121a27e
    kkloesener/MFRC522_I2C@^1.0

	;https://github.com/miguelbalboa/rfid.git#ba72b92
	;https://github.com/tuniii/LogRingBuffer.git#89d7d3e
	;https://github.com/tueddy/PN5180-Library.git#4a1f139
	;https://github.com/SZenglein/Arduino-MAX17055_Driver#75cdfcf

Die Frage ist, warum bei Versorgung mit 5 V der ESP32 nicht (korrekt) booted. Viele Sachen können das Problem an der Stelle ja nicht mehr verursachen. Der LDO regulator, Q1/2/3, paar Widerstände, Dioden, Kondensatoren. Vielleicht noch der TP5000. Unwahrscheinlich der CH340C. Könnte mal jemand korrekte Spannungen (bei 5 V Versorgung) an ein paar Stellen messen, damit ich das Problem genauer lokalisieren kann? Dabei möglichst ohne Peripherie zur Vergleichbarkeit oder nur mit µSD zur booten? Ich vermute irgendwelche Scherereien mit EN und reset, die sind bei Direktversorgung mit 3.3V auf einem anderen Spannungsniveau.
Pin 5 (V_out) des ME6211 Regulators sind tatsächlich nur 2.78 V. Ist das der Grund, dass der ESP32 nicht booten kann? Das geht beim halten von reset auf 3.0 V hoch, was erklärt, warum es genau dann „geht“. Pin 1 (V_in) sind 4.80 V und vor D3 sind es 5.03 V vom USB. Kann ich den Regulator testweise durch einen anderen, beliebigen austauschen? Oder muss der auch einen enable-pin haben, weil das irgendwie für den ESP32 wichtig ist? Oder vielleicht einfach parallel Netzteil/Akku mit 3.3V. Ich versuche mal weiter.

Könnte das auch ein verkonfigurierter CMX Flash-Speicher sein?

Also irgendwas hast du da gegrillt. Tatsächlich ist das, das weiß ich aus meinen Versuchen, so die Spannung (2,8 V), wo es langsam schwierig wird mit dem ESP32. Also da sollten mind. mal 3 V hinten rauskommen; besser halt 3,3 V.

Okay, geht jetzt wieder alles. D3 sowie U3 waren defekt. SS14 für D3 hatte ich noch rumliegen, für den regulator U3 habe ich jetzt vorerst einen AMS1117 per Kabel angebunden.

ME6211 für 3.3 V hätte ich hier noch liegen…

Wenn du mir den zukommen lassen kannst, wäre das schön. Ansonsten kann ich in ~2 Wochen welche bekommen.

OT: Wie kann ich die RFID tags jetzt scannen? Also wie komme ich an die Nummer? Sollte die Nummer automatisch in die Web-Oberfläche übertragen werden? Das passiert bei mir nicht.

Ja, die Nummer wird ins Webinterface gepusht, sobald die Karte aufgelegt wird.
Hast du den ESP32 jetzt selbst neu geflasht? Weil ich hatte mit PN5180-Support vorgeflasht. Das klappt mit nem RC522 nicht.

Okay, alles geht jetzt. Alle Probleme gefunden und behoben.

Ursprüngliche Ursache für meine Hardware-Probleme: Ich habe vermutlich anfangs beim Testen den ESP32 falschrum in die mini Platine gesetzt und mit Spannung versorgt. Dies hat folgendes zerstört:

  • Q1 auf der mini Platine (für SW_POWER3.3)
  • D3 auf dem D32 FePo
  • U3 auf dem D32 FePo
  • RC522

Diode ersetzen war nicht weiter schwer, Q1 habe ich nach dem Entfernen mittels Lötbrücke der Jumper vorerst überbrückt, bis ich irgendwann den Ersatz hier habe. Im Deepsleep ist der Verbrauch daher jetzt ca. 2x höher als mit Q1 und abgeschalteten 3.3V. Spannungsregler ist vorerst mit einem AMS1117 ersetzt.

RC522 funktionierte nicht, da Q1 einen zu hohen Innenwiderstand hatte und so nur <2 V vorhanden waren. Zusätzlich wurde der ursprüngliche RC522 geschrottet, weshalb es auch mit korrekter Spannung erst nicht ging. Neopixel konnte damit tatsächlich noch arbeiten, daher war das mit der geringen Spannung nicht so leicht ersichtlich.

1 „Gefällt mir“

Schön, dass es jetzt läuft!
Tja, ich habe sowas leider irgendwie früher oder später kommen sehen.
Bis vor kurzem habe ich den Briefversand immer mit eingestecktem Develboard gemacht. Wohl wissend, dass es natürlich suboptimal gepolstert ist. Halt so lange, bis mir ein User schrieb, dass er den Eindruck habe, dass das Develboard leicht verbogen sei und dies ggf. durch den Versand gekommen sei (gab aber funktionell keine Probleme). Ich bin dann kürzlich hingegangen und habe angefangen, das umzustellen, so dass es sicherer verpackt ist. Dann ist es halt aber nicht mehr eingesteckt. Das birgt natürlich das Risiko, dass es mit Versatz oder falsch rum oder gar beides eingesteckt wird.

Ich kann das Ganze nicht wirklich lösen. Außer ich sage, dass ich nur noch Paketversand anbiete. Da vermisse ich den Lolin32 ehrlich gesagt etwas, weil bei dem waren die Pinreihen asymmetrisch.

1 „Gefällt mir“

Könntest du bei der nächsten Version Pins zur Indexierung hinzufügen? Etwa an einem extra-Pin? Der kann regular in seine Buchse, das Gegenstück auf der anderen Seite ist jedoch eine weibliche Buchse, die „zu“ ist und somit ist der Indexierungs-Pin dort blockiert.