I’ve compiled both and the difference is a single byte. So what is"modern" in the modern format, and when/why would I use it?
I think it explains it in the popup where you choose one or the other.
Only use legacy if you are using the ESPHome flash tool.
It doesn’t explain the difference- just which to use. I tried a couple of other comparisons and there is only one byte different from Legacy to Modern.
I used ESPHome Flasher on a test Wemos D1 Mini, and the program ran just fine whether I used the Legacy or the Modern format. I used https://web.esphome.io/ and it also worked just fine on the Legacy binary and the Modern binary.
So, what is so magic about that one byte that we need two binary formats?
No idea.
Try asking on the ESPHome discord server. The devs hang out there.
Are you saying that the firmware is byte for byte identical except for one byte, or that it is different size by one byte?
Same size, just one byte is different.
Are you using a esp8266?
For the ESP32 the sizes differ significantly
Almost everything here is ESP8266 based. I just don’t see the panacea for ESP32’s when ESP8266 devices do the same job, but cheaper.
Advantages:
Bluetooth
More ADC channels
Many more GPIOs
Hardware PWM
Multiple hardware UARTs
CAN bus
Touch inputs
More memory
Faster dual core CPU
Flash memory for storing and restoring states
All for very little extra cost.
I don’t bother with ESP8266’s any more.
I have a couple of ESP32 boards in my workshop. If I ever need any of those advantages, then I’ll use an ESP32.
@paddy0174 “Honestly, how bored are you, to check for such things?”
Not bored. I accidentally clicked on “Modern” format and the binary file installed using ESPHome Flasher and ran just fine
This time.
Legacy and Modern format are different.
Modern format erase everything before flash, including the NVS, while legacy format maintain the NVS and make sure it’s not altered during flash.
Usually, developers save important data in NVS. For example, the authentication keys of the device. If it is erased, the corresponding devices need to be reset, which is a trouble for the developer.
So, legacy format download is important for the developers, but it is not important for the end users.