Ah, jetzt verstehe ich deinen Post
Sorry, hatte es wohl nicht richtig gelesen.
Ja, 2.1 MB können reichen, aber da wird es schon eng aktuell. Zur Problematik kann ich leider nix beitragen. Custom-Partition hatte ich noch nicht.
Mit dem vergrößerten NVS kannst du dann mehr Karten anlernen? D.h. es klappt dann wie gewünscht?
if an NVS partition is truncated (for example, when the partition table layout is changed), its contents should be erased. ESP-IDF build system provides a idf.py erase_flash target to erase all contents of the flash chip.
Hmm. Also verkleinert hast du es ja nicht. Es ist allerdings so, dass die Daten im NVS in Namespaces liegen. Für RFID habe ich da einen eigenen. Weiß nicht, ob da noch was angepasst werden muss
Ich habe hier die Partition nvs nach app0 angeordnet und die anderen beiden Partitionen entfernt.
Wenn ich allerdings als Offset für app0 0x20000 wähle, funktioniert es nicht und der Espuino startet die ganze Zeit neu. Laut Dokumentation sollte das jedoch auch funktionieren:
Ich habe meinen Espuino nun mit folgender Partitionstabelle konfiguriert:
# 192KB for nvs, the rest is for the application
# Name, Type, SubType, Offset, Size, Flags
app0, app, factory, 0x10000, 0x3C0000,
nvs, data, nvs, , 0x30000,
Ich konnte das Backup der bisherigen Kartenzuweisungen einspielen und habe nun etwa 20 weitere Karten zugewiesen. Es scheint also nun zu funktionieren.
Mir ist dabei übrigens noch aufgefallen, dass die Umlaute in der backup.txt nicht korrekt dargestellt werden. Das Einspielen des Backups funktioniert dennoch und die Ordner mit Umlauten sind anschließend korrekt mit den Ordnern verknüpft.
Das wird ein Problem mit der Zeichenkodierung deines Editors sein. Der wird die Datei vermutlich als utf8 oder iso-8859-1 öffnen und dann passt das nicht. Mit cp437 sollte es passen. Das Thema ist so ein bisschen schwierig. Weil du kannst Files ja via ftp, via Web und direkt (einstecken der SD-Karte in den Computer) übertragen. Im letztgenannten Fall können wir das Encoding nicht beeinflussen - es ist cp437 (@Christian und @Harry haben das alles ausprobiert). Deswegen mussten wir für FTP und Web dann auch auf diesen Zeichensatz gehen.
Ansonsten: Danke für deine Infos. Ich werde dann auch mal einen Custom-Table aufnehmen. Ich weiß jetzt nur nicht, was ich mit OTA machen muss. Also dieses Feature wird ja immer mal angefragt. Vielleicht wird der Spaceim Flash aber auch gar nicht gebraucht, wenn man das File via SD per OTA aufspielt.
Danke für die Info. Ich hatte die Datei mit Notepad++ geöffnet. Bei der Kodierung habe ich dort nun OEM 852 ausgewählt. Jetzt werden die Dateinamen korrekt angezeigt.
Zur Partitionstabelle:
Vielleicht wäre es nicht verkehrt das Schema Huge App etwas abzuändern, aber alle Partitionen beizubehalten. Dann sollte ja auch OTA nichts im Weg stehen, oder?
Ich weiß halt ehrlich gesagt nicht so genau, was es für OTA braucht. Also normalerweise läuft das glaube ich so, dass man das hochlädt (per WLAN) - vermutlich landet es dann im Flash (als File). Und von dort wird es dann geflasht. Dieser Weg würde, abgesehen von ESP32-WROVER mit mehr Flash-Speicher, so bei uns auch eh nicht klappen, da das Image viel zu groß ist. Aber ggf. braucht es die OTA-Partition überhaupt nicht, wenn man das File eh von SD holt.
EDIT: Du hast in deinem neuen Layout aber Einstellungen erneut machen müssen (WLAN etc pp), oder? Weil NVS würde ja komplett überschrieben worden sein.
Und noch eine Frage: Mit welchen Webbrowser hast du den Re-Import gemacht?
otadata: Hier die steht die Info, welche App-Partition gestartet werden soll
ota_0: Erste Partition für eine Applikation
ota_1: Zweite Partition für eine Applikation
Bei einem OTA-Update wird die neue Applikation auf die unbenutzte ota_x-Partition geflasht und dann über die otadata-Partition die Informationen hinterlegt, dass ab sofort von der neu geflashten ota_x-Partition gestartet wird. Bricht das Update aufgrund eines Fehler ab, dann wird weiterhin von der bisherigen ota_x-Partition gestartet. Dieser Mechanismus stellt sicher, dass immer eine vollständige funktionierende Applikation vorhanden ist.
Der große Nachteil bei diesem Mechanismus ist der Platzbedarf. Beide ota_x-Partitionen müssen gleich groß sein. Bei dem aktuellen Feature-Umfang sind daher 4MB Flash mit OTA etwas knapp. Die WROOM- und WROOVER-Module gibt es auch mit 16MB Flash. Leider werden bei den Dev-Boards oftmals nur 4MB Flash verbaut.
OK, also ich hatte irgendwie gehofft, dass man das bei SD umgehen kann.
Puh, dann finde ich das Feature aufgrund der Größe aktuell etwas uninteressant. Weil wie du schon sagtest: Die meisten Boards verwenden 4 MB.
Aktuell wird ja die Partitionierung von huge_app.csv verwendet. Dabei wird ja fast 1MB für SPIFFS reserviert. SPIFFS wird bisher aber überhaupt nicht verwendet. Ist damit in der Zukunft etwas geplant, ansonsten könnte man sich das auch sparen und lieber die NVS-Partition vergrößern.
Es gab mal Vorschläge SPIFFs zu verwenden. Aus meiner Sicht verkompliziert man damit Dinge, wenn man ohnehin schon SD zur Verfügung hat. Insofern: Aus meiner Sicht könnte man SPIFFs entfernen.
EDIT: @tuniii Wollte eben schon wegen OTA nochmal zu Github was verlinken, weil da „jemand“ auch kürzlich was zu geschrieben hat. Aber das warst ja du - umso besser
@Alex Hast du dein Custon-NVS eigentlich noch laufen?
Habe mal in deinem Branch geschaut aber im aktuellen fehlt die CSV.
Weil ich habe mich gerade mal an deinem Custom-Partitions-Layout versucht und das funktioniert irgendwie nicht. In einer Bootloop lande ich nicht, aber der ESP32 startet einfach nicht.
Geht hier um ein 4 MB-Flash, da würde ich OTA jetzt mal ausklammern wollen. Benutze ich stattdessen huge_app.csv dann startet der ESP32 ganz normal. Habe auch mal das Flash gelöscht, aber bringt auch nix.
Am Offset 0x10000 muss immer der Anfang einer ausführbaren Partition (App oder Factory) liegen. Der Bootloader springt an diese Adresse und bei deiner Partitionierung würde er mitten im NVS landen und startet daher nicht.
@biologist Ja, das angepasste Partitionsschema mit größerer NVS Partition läuft bei auf zwei Geräten, die beinahe täglich genutzt werden. Auf beiden sind etwa 150 Karten zugewiesen.
Die Änderung ist nicht in master. Ich vermute, dass du es daher nicht gefunden hast.
Ich hatte beim ESPuino meines Sohnemanns mitunter mal das Problem, dass bereits gelernte Karten wieder „vergessen“ wurden. Mir ist ehrlich gesagt völlig unklar, durch was das ausgelöst wird/wurde. Bis du berichtet hattest, dass das NVS voll ist, dachte ich, dass das vielleicht der Grund sei und damit alte Einträge wieder rausfliegen. Quasi so round-robin-mäßig.