What is the purpose of two OTA partition?

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 9:15 am

Hi ESP-IDF,

Is the second one always reserved for back-up purpose?

(Yes, I know I still not investigate enough time on google about this question. But I just wanna know it faster... :oops: )

Cheer

Gfast2

WiFive
Posts: 1205
Joined: Tue Dec 01, 2015 7:35 am

Re: What is the purpose of two OTA partition?

Postby WiFive » Fri Nov 17, 2017 9:41 am

You can't erase currently running app

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 10:11 am

WiFive wrote:You can't erase currently running app

Hi WiFive,

Thanks for short + clear answer. I believe what I'm not clear is:
Is that means: The Bootloader will never ever update the partition of the factory partition. but only update the contents of one of both ota partition. So what is the point two wast another 1M precious spi flash space? :D

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 10:27 am

Perhapse I just investigate too much time on these meaning less point:

1. I figured out the csv partition table in docu about Partition Tables do not have "," on each line. But the example partition csv file for spiffs, they have. why? Are both correct? :oops:

2. "Factory app, two OTA definitions" from the docu show the Type for ota partition is "0" and subtype is "ota_1" or/and "ota_2", but in another docu said:
An OTA data partition (type data, subtype ota)


It does make me... not sure if I understand everything correctly. :oops:

Cheers

Gfast2

WiFive
Posts: 1205
Joined: Tue Dec 01, 2015 7:35 am

Re: What is the purpose of two OTA partition?

Postby WiFive » Fri Nov 17, 2017 10:47 am

Factory will not be updated, but it is also not required. But it is insurance to be able to factory reset to a (hopefully) known stable firmware even after many ota updates.

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 11:00 am

WiFive wrote:Factory will not be updated, but it is also not required. But it is insurance to be able to factory reset to a (hopefully) known stable firmware even after many ota updates.

Hi WiFive,

It is a very good point to reserve the factory app. It let me feel we a making something really works for another 100 years. :lol:

As a more concrete expression, I write two partition csv setting for the same purpose, according to two different docus I mentioned above.
I will checkout if both of them works:
1. for ota updating
2. for spiffs partition filesystem accessing

Code: Select all

# Name,   Type, Subtype, Offset,  Size
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,
ota_1,    0,    ota_1,   ,        1M,
ota_2,    0,    ota_2,   ,        1M,
storage,  data, spiffs,  ,        0xF0000,


Code: Select all

# Name,   Type, Subtype, Offset,  Size
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,
ota_1,    data, ota,     ,        1M,
ota_2,    data, ota,     ,        1M,
storage,  data, spiffs,  ,        0xF0000,

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 12:12 pm

Hi I come back,

With partition table:

Code: Select all

# Name,   Type, Subtype, Offset,  Size
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,
ota_1,    0,    ota_1,   ,        1M,
ota_2,    0,    ota_2,   ,        1M,
storage,  data, spiffs,  ,        0xF0000,


I got error:

Code: Select all

W (201) SPIFFS: mount failed, -10025. formatting...


This error code is specified in "~/esp/esp-idf/components/spiffs/spiffs/src/spiffs.h" as "SPIFFS_ERR_NOT_A_FS", and then the task watch dog is triggered.

I think that is something wrong with "0xF0000".

cheers

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 12:28 pm

WiFive wrote:Factory will not be updated, but it is also not required. But it is insurance to be able to factory reset to a (hopefully) known stable firmware even after many ota updates.


Man can actually also remove this feature by:
If you want to conserve flash usage in an OTA project, you can remove the factory partition and use ota_0 instead.


RTFM ( :lol: ): Doc

User avatar
Gfast2
Posts: 107
Joined: Fri Aug 11, 2017 1:52 am

Re: What is the purpose of two OTA partition?

Postby Gfast2 » Fri Nov 17, 2017 12:48 pm

Ach!!!

Because:

0x10000 -> 64KB
0xF0000 -> 960KB

Which is no more available free space for the device (64KB + 1MB + 1MB + 1MB + 960KB > 4MB). So for my spiffs partition I just use "500KB" instead. Which let everything works again. :lol:

Code: Select all

# Name,   Type, Subtype, Offset,  Size
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 1M,
ota_0,    app,  ota_0,   ,        1M,
ota_1,    app,  ota_1,   ,        1M,
storage,  data, spiffs,  ,        500K,



CHEERS

Gfast2

Who is online

Users browsing this forum: Google [Bot] and 9 guests