PlatformIO Community

Exporting for esp-web-tools

I’m going to build a [github action][1] which will build a project with PlatformIO and release the pieces of data to allow a web-based install direct to an ESP32/EDP8266 from the browser using esp-web-tools. (It may also be useful for me to extend PlatformIO’s pio run to produce a file/folder which holds the data needed for this, as others in this forum also use it for the [ESP32 download tool][2]

I’m looking for where I can find all the information I need for a [Manifest Definition][3], and would appreciate your help in finding the authoritative place to get it after running a pio run:

  • parts: The list of firmware parts to upload. The .pio/builds/{target}/idedata.json has the .extra.flash_images object which holds the standard parts for my ESP32 (bootloader_dio_40m.bin, partitions.bin, boot_app0.bin) — is this all the parts I’d need? (is the esp32.bin listed on the [example][3] necessary? The [answer here][2] implies I’m missing a part)
  • chipFamily: I can take a guess at this by looking at the same idedata.json in .defines and look for things that look like chip type, but is this more accurately defined elsewhere?
  • name: (ie. the name of the project) doesn’t appear to be [defined in platformio.ini][4], so use the name of the folder the platformio.ini is located in?

Any other advice here? I’m all for automating the build process as much as possible; I’d love to make it so people working with PlatformIO can help other people install their apps directly from websites with the addition of a single yaml file to their Github project!


Links, broken apart, because I’m new here and can’t post them all inline :pensive::
[1]: Github Actions: https:// docs .github.com/en/actions
[2]: Relevant post here: https:// community .platformio.org/t/export-of-binary-firmware-files-for-esp32-download-tool/9253)
[3]: Manifest Definition example: https:// github .com/esphome/esp-web-tools/#esp-web-tools
[4]: Relevant PlatformIO docs: https:// docs .platformio.org/en/latest/projectconf/section_platformio.html