Chat freely about anything...

User avatar
By btidey
#83294 In the Arduino environment selecting the flash memory split, e.g. 4m/3m, selects the linker script file to be used. These are the ld files typically held under tools/sdk/ld

If you want to distribute a set of .bin files that support different memory / spiffs schemes then you can select each option in turn and do an export binary operation to get the corresponding bin. You can automate this either by using command line scripts or platformio.

These can then be flashed using either esptool or using OTA if the OTA function is already built into the pre-existing firmware.
User avatar
By LBussy
#83461 Thank you for your replies. Apparently, I fail at this particular forum and I was not notified my question had a response.

I am using PlatformIO rather than the Arduino IDE so I am not quite following the "how" of what you are describing. For instance, @quackmore, where exactly are you configuring that? I understand the concept you are describing but not the execution. Are you using that as a simple compiler macro? Where would those standards be defined as a reference? I've found a partition reference for the ESP32 but not a similar one for the ESP8266.

Since posting here last I have identified how to create a .bin file within PlatformIO, but not necessarily how to set the partition scheme which supports that.
User avatar
By quackmore
#83488 reference for ESP8266 (non-os-sdk) flash maps (chapter 4)

SPIFFS configuration reference:

in my example I showed you how I configured SPIFFS for non-os-sdk and that's not your case cause the sw you are using will do it for you

in your case:

I'm assuming that whichever sw you are using it will stick with non-os-sdk maps, this is why I told you that on your D1 mini:
the 3M spiffs partition starts at 0x101000
while the 1M spiffs partition starts at 0x201000
spiffs partition will have to end not after 0x3FB000 where the sdk configuration starts

if you get troubles downloading the spiffs image directly, you'll have to dig into their documentation or github repository looking for details

please keep up with the results
and good luck