I have switched my project to ESP-07S from ESP-07 in order to get the bigger flash size. 07 has 1 MB and 07S has 4MB.
But no matter what I have done the compiler output indicates that it thinks my device has only 1MB flash.
I have been using PlatformIO for this project, so now I wonder if it uses a different compiler than vanilla Arduino IDE or if there is some other issue that is common between Arduino IDE and PlatformIO, which blocks 75% of flash from being used on ESP-07S?
FYI here is the ending output from a build on esp07s:
Linking .pio\build\esp07s-OTA\firmware.elf
Retrieving maximum program size .pio\build\esp07s-OTA\firmware.elf
Checking size .pio\build\esp07s-OTA\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [===== ] 49.1% (used 40240 bytes from 81920 bytes)
Flash: [===== ] 45.7% (used 477069 bytes from 1044464 bytes)
Notice the last part: "from 1044464 bytes"
I have asked on the PlatformIO forum and got this at the end of a reply:
Unbeknownst to me, while the ESP has 4MB of flash, it is only capable of running a 1MB program
There are a few issues on the web about this fact, which I was unaware of, but it seems that the hardware is the problem here, it has 4MB FLASH on board, but only 1 MB can be used for program code. (Less the size of the bootloader, around 4KB apparently!)