Für OTA braucht man mindestens 3 Partitionen:
- 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.