Page 1 of 1

How many binaries should I build?

Posted: Fri Sep 08, 2023 1:47 am
by Stockbeard
Hello, I am new to ESP32 development. I have created a tool for ESP8266 which I recently ported to ESP32.

My users are not always able to compile binaries by themselves, so I distribute compiled binaries that they flash to their device using GUI tools.

On ESP8266 I used to compile one binary which seemed to work for most users.

On ESP32, I have compiled a binary for my ESP32 Dev Module, which I then distributed. Some people complained that it didn't work at all for them, and it appears that it's because they have an ESP32-S2?

Again, I am very new to this ecosystem, but I'm trying to understand how many binaries I need to build in order to have compatibility for most devices. I'm using Arduino IDE, and I'm assuming (maybe wrongly) that I don't have to compile one version for every single board on the list, there has to be one (or two, or three) "lowest common denominator" that will be compatible with most models? My code doesn't (AFAIK) do anything that is device specific.

Would it be enough for example to compile one version for ESP32, one for ESP32-S2, and one for ESP32-S3? Is there some documentation that explains why some binaries are not compatible with some devices (different CPU architecture?)? This feels so convoluted compared to my ESP8266 experience... :oops:

Looking at Tasmota's binary releases ( http://ota.tasmota.com/tasmota32/release/ ), they have releases for 5 families of devices
32
32c3
32s2
32s3
32solo1

Would that be considered the right amount? Or are there ways to build a single binary that works on all ESP32* devices?

Or is the general expectation that distributing binaries is not "how" it should be done for ESP32, and my users should learn how to build binaries for their own devices?

Re: How many binaries should I build?

Posted: Fri Sep 08, 2023 4:26 am
by ESP_Sprite
No, that's about right. ESP32 nowadays consist of a few SoCs that sometimes are packaged a bit differently: the original ESP32, the -S2, the -S3, the -C2, -C3 and -C6 and nowadays the ESP32-H2 and the upcoming ESP32-P4. All these are so different that you need different binaries for all of them. In the Tasmota list, the 32solo1 is the only exception as it's effectively an ESP32 with one core knocked out: stuff built for an ESP32Solo1 will work on an ESP32 but not the other way around.

(Note that there are chips that don't look like they belong to any of these families, but if you check the datasheet they do: for instance an ESP8685 actually is part of the -C3 family.)

Re: How many binaries should I build?

Posted: Fri Sep 08, 2023 2:28 pm
by Stockbeard
Thanks!

Re: How many binaries should I build?

Posted: Fri Sep 08, 2023 4:03 pm
by lbernstone
I would skip the esp32-solo. Since the release of the cheaper S2, I think the only people that would be using it must have a pile of reclaimed chips in the bin (I am down to ~40).