Si tu veux aller plus vite tu peux tester les deux fichiers de partitionnement joints à mon message #21 il sont prèts à l'emploi. (pas besoin de jongler entre hexa et décimal et recalculer les offsets qui sont les données essentielles pour le compilateur)
la ligne
lolin32.upload.maximum_size=2031616
exprime le nombre d'octets en décimal, contrairement au fichier partitions.csv ou la valeur est en hexadécimal
Pour la proposition de partitionnement 'minispiffs.csv' j'ai mis deux partitions de code (app0 et app1) dont la taille est 0x1F0000 en hexadécimal soit ,en décimal, 2 031 616 octets.
le partitionnement 'default.csv' est pour des mémoires de 4MB, il propose l'OTA avec deux partitions code de taille égale : 0x140000 en hexadécimal soit , en décimal , 1 310 720 octets
le partitionnement 'minimal.csv' est pour les mémoires de 2MB, il ne permet pas l'OTA (=pas de partition app1)
Non le programme ne se surcharge pas , s'il gère l'OTA il enregistre le code n+1 dans l'autre partition puis, si le chargement est OK, bascule l'ESP32 vers la partition du nouveau code. D'ou la nécessité de deux partitions de code jumelles pour bénéficier de l'OTA.
Pour partitionner une mémoire de 16MB on a le temps de voir !! J'ai l'impression le le moyen le plus rapide d'avoir cette capacité consisterait à partir d'une carte sans capot métallique, dessouder la mémoire flash et en souder une de capacité 16MB