ESP32: How to create one, solid firmware package that will include bootloader, etc. in a single file?

I’m looking for a method to generate a single, solid “firmware” package in a form of just a single file, that contains all components according to the partition table definition, including bootloader, and so on. The exact cause is, I’m having a remote ESP32 WROVER DEVKIT device that I can send just one file for flashing via remote esptool. At the moment, I need to reflash the device locally to embed:
bootloader_dio_40m.bin; partition.bin, *app0.bin and then finally firmware.bin that is the code.

Obviously, when I author firmware, then I can just send and flash application data starting 0x010000. But it would be so much easier to update all at once including bootloader, partition etc.

Is there any way to include it in “firmware.bin” during compilation (linking) phase?

Hi,

you are probably looking at the “flash download tools” :

By using this official tool you’ll be able to combine bootloader, partition table, application etc in one binary file.

    Giampaolo

Is there a way to create one complete firmware directly within platformio?
Espressif tool exists only for Windows, I use Linux on my private notebook.
I know, this thread is old, maybe something changed meanwhile inside platformio.

Edit:
I found this esptool option to merge binaries

https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/basic-commands.html#merge-binaries-for-flashing-merge-bin

Would be great, if this would be implemented directly in platformio as an additional build option.

1 Like