Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ESP32 programming: does flash size matter? #6473

Answered by Jason2866
mrengineer7777 asked this question in Q&A
Discussion options

We are developing for ESP32-WROOM-32UE. I noticed Arduino core assumes a flash size of 4MB. What happens if I try to program an 8 or 16MB version? Will that cause issues later with OTA updates?

IDE: VSCode with PIO
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip

You must be logged in to vote

Arduino core does not assume an flash size. The real flash size is patched (from esptool.py) in the magic header of the bootpartition.bin file when flashed. The flash partioning is defined via the partition.csv
(you can define yourself, the ready made ones are just suggestions).
As long two App partitions exists in the partition.csv and the are big enough to store the firmware every device (no matter of flash size) can be updated via OTA.
For project Tasmota we have a partition manager script which (can be loaded at runtime) and change the partition size. So we can provide firmwares with a partition scheme for 4M flash usage. This firmware can be flashed on every device with 4MB and all d...

Replies: 1 comment 2 replies

Comment options

Arduino core does not assume an flash size. The real flash size is patched (from esptool.py) in the magic header of the bootpartition.bin file when flashed. The flash partioning is defined via the partition.csv
(you can define yourself, the ready made ones are just suggestions).
As long two App partitions exists in the partition.csv and the are big enough to store the firmware every device (no matter of flash size) can be updated via OTA.
For project Tasmota we have a partition manager script which (can be loaded at runtime) and change the partition size. So we can provide firmwares with a partition scheme for 4M flash usage. This firmware can be flashed on every device with 4MB and all devices with more flash. With the partition manager the unused flash space (for >=8MB devices) can be assigned to the 2 App partitions and the spiffs storage partition

You must be logged in to vote
2 replies
Comment options

mrengineer7777 Mar 23, 2022
Collaborator Author

I think I understood everything except

With the partition manager the unused flash space (for >=8MB devices) can be assigned to the 2 App partitions and the spiffs storage partition

But it sounds like I can safely flash a 4MB (default) partition scheme to a 8MB device, and OTA will still work. Is that correct?

Comment options

I think I understood everything except

With the partition manager the unused flash space (for >=8MB devices) can be assigned to the 2 App partitions and the spiffs storage partition

But it sounds like I can safely flash a 4MB (default) partition scheme to a 8MB device, and OTA will still work. Is that correct?

Yes, correct

Answer selected by mrengineer7777
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet

AltStyle によって変換されたページ (->オリジナル) /