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

Hier die durchgeführten Schritte:

  1. Visual studio code installieren
  2. Extensions installieren (PlatformIO, EspressifIDF, GitLens, C/C++ extension pack)
  3. Auf meinen PC geclont mit git clone https://github.com/biologist79/ESPuino.git
  4. Passendes Environment ausgewählt lolin_d32_pro_sdmmc_pe für mini-Platine + D32 FePo
  5. Settings angepasst (Fehler tritt aber schon bei 4. auf)
  6. Upload klappt nicht.
  7. Nach unendlich vielen Problemen, die bei Google nirgendwo hin führen, alles nochmal neu installiert. Dann konnte EspressifIDF auch endlich fertig eingerichtet werden, das klappte vorher nicht. Änderte am Problem jedoch nichts.

Folgender Fehler kommt, wenn ich das Environment auswähle oder den Code kompilieren will:

Resolving lolin_d32_pro_sdmmc_pe dependencies...
Tool Manager: Installing git+https://github.com/espressif/
arduino-esp32.git#1.0.6
git version 2.41.0.windows.1
Cloning into 'C:\Users\Ich\.platformio\.cache\tmp\pkg-installing-f489m04r'...
Note: switching to '46d5afb17fb91965632dc5fef237117e1fe947fc'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
[... % gehen hoch ...]
Updating files: 100% (2092/2092), done.

VCSBaseException: VCS: Could not process command ['git', 'clone', '--recursive', '--depth', '1', '--branch', '1.0.6', 'https://github.com/espressif/arduino-esp32.git', 'C:\\Users\\Ich\\.platformio\\.cache\\tmp\\pkg-installing-f489m04r']

Hat jemand irgendeine Idee, was es damit auf sich haben könnte oder wie ich die dependencies direkt installieren kann?

Gehe mal in die platformio.ini und ersetze mal „1.0.6“ durch „release/v1.0“
Den Branch 1.0.6 gibt es offenbar nicht mehr.

Ansonsten gehst gleich auf den dev-Branch. Mache zuvor deine Änderungen rückgängig. Dafür musst du links auf Branch-Symbol klicken und dann, siehe Bild, auf Pfeil zurück neben dem +.

Du wirst dann gefragt, ob du deine Änderungen wirklich löschen willst.

Im Anschluss klickst du links unten auf „master“ und wählst dort „dev“ aus. Das sieht im Anschluss dann so aus, wie auf dem folgenden Bild:

dev-Branch

Nun machst du deine Änderungen erneut und lässt die Sachen kompilieren.

Puh, also da haben wir jetzt ein Problem, weil der Master-Branch kompiliert nicht mehr:

/Users/torsten/.platformio/packages/toolchain-xtensa32/bin/…/lib/gcc/xtensa-esp32-elf/5.2.0/…/…/…/…/xtensa-esp32-elf/bin/ld: .pio/build/complete/firmware.elf section .iram0.text' will not fit in region iram0_0_seg’
/Users/torsten/.platformio/packages/toolchain-xtensa32/bin/…/lib/gcc/xtensa-esp32-elf/5.2.0/…/…/…/…/xtensa-esp32-elf/bin/ld: IRAM0 segment data does not fit.
/Users/torsten/.platformio/packages/toolchain-xtensa32/bin/…/lib/gcc/xtensa-esp32-elf/5.2.0/…/…/…/…/xtensa-esp32-elf/bin/ld: region `iram0_0_seg’ overflowed by 24 bytes
collect2: error: ld returned 1 exit status
*** [.pio/build/complete/firmware.elf] Error 1

@tueddy Was hattest du da nochmal gemacht? Ne Lib modifiziert oder?
Also ich denke es ist an der Zeit, dass man den Dev-Branch mal zum neuen Master-Branch macht, jedoch muss der derzeitige Master-Branch irgendwie noch kompilierbar bleiben, weil es gibt ja doch viele Leute, die haben das Deepsleep-Problem, wenn sie auf Arduino2 wechseln.

Edit: Ich mache das jetzt erstmal so, dass ich Bluetooth deaktiviere per Default. Dann klappt’s wieder.

  1. Änderungen Rückgängig machen.
  2. Auf dev branch gehen.
  3. Warten… warten… viel wird installiert - anders als früher.
  4. VCSBaseException: VCS: Could not process command ['git', 'clone', '--recursive', 'https://github.com/schreibfaul1/ESP32-audioI2S.git', 'C:\\Users\\Ich\\.platformio\\.cache\\tmp\\pkg-installing-3yhlukai']
    :face_with_peeking_eye:

Vielleicht Clean all machen vorher.
Ja, im Dev-Branch wird einiges geladen.

Was meinst du mit „clean all“?

Links in den Optionen, wo man auch kompiliert, hochlädt etc pp.

  1. „Full Clean“ in PlatformIO
  2. Verbleibende Ordner löschen, wie von PlatformIO gemeldet, in C:\Users\Ich\ESPuino\.pio\build
  3. Build bricht ab, selber Fehler:
Resolving lolin_d32_pro_sdmmc_pe dependencies...
Library Manager: Installing git+https://github.com/schreibfaul1/ESP32-audioI2S.git#224373c
git version 2.41.0.windows.1
Cloning into 'C:\Users\Ich\.platformio\.cache\tmp\pkg-installing-89zknaur'...
VCSBaseException: VCS: Could not process command ['git', 'clone', '--recursive', 'https://github.com/schreibfaul1/ESP32-audioI2S.git', 'C:\\Users\\Ich\\.platformio\\.cache\\tmp\\pkg-installing-89zknaur']

Kann ich ESP32-audioI2S händisch installieren?

1 „Gefällt mir“

Mir ist ehrlich gesagt unklar, was der Fehler ist.

Ich habe gerade die dependencies wie folgt geändert:

lib_deps =
	;https://github.com/schreibfaul1/ESP32-audioI2S.git#224373c
    esphome/ESP32-audioI2S@^2.0.7
	;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

Ich hatte es eins nach dem anderen getestet, erst nach dem Ersetzen des github Links mit dem Link zum PlatformIO-dependency (Beispiel ESP32Encoder) wurden die jeweiligen libraries installiert. tueddy/FastLED.git gibt es dort jedoch nicht, dafür einige andere FastLED libraries. Da ich nach dem Schrittweisen ändern zum Problemlösen ein grundlegenderes Problem um PlatformIO und dessen Interaktion mit github vermute, stoppe ich an der Stelle mit dem Vorgehen.

Ist mir ehrlich gesagt unklar, woher diese Probleme kommen. Also man kann die Libs, wie du es gemacht hast, aus dem Platformio-Repository holen, wie du es auch gemacht hast. Aber das ist für uns hier nicht zielführend.
Kannst du mit git denn außerhalb von Platformio diese Libs einzeln auschecken mit git? Sehe ich hier auf jeden Fall zum ersten Mal das Problem.

Wenn du mir beschreibst, wie ich das versuchen kann, mache ich es.

git clone (git-url)

Wenn ich ein neues Fenster öffne (CTRL + Shift + N), dort clone git repository..., dann https://github.com/schreibfaul1/ESP32-audioI2S.git reinkopiere und einen Zielordner auswähle funktioniert alles.

Also ich kann den aktuellen Master erfolgreich kompilieren und hochladen. Beim Wechsel Der Umgebung vom DEV zum Master bekam ich auch mehrere Fehlermeldungen von PlatformIO und habe dann diese Schritte durchgeführt:

  • PIO beenden
  • Das Verzeichnis .pio im Projektordner gelöscht
  • Das Verzeichnis C:\Users<Benutername>\.platformio gelöscht
  • Beim Start zieht sich PIO dann Alles neu. Achtung: Das dauert ein wenig!
  • Kompiliert und hochgeladen

@Eheran1 Klappt es dann?
@biologist Du bekommst ja den Fehler das der IRAM Speicher voll ist. Ich habe mit HAL=7 (Lolin D32 pro + PE + SD-MMC) + MQTT aktiv getestet und bekomme keinen Überlauf. Falls wir noch länger mit dem Master unterwegs sind (oder auch für Archivierung) sollte zmindest noch die Audio-Bibliothek festgepinnt werden…

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.