I have an ESP8266 (ESP-12F), which I flashed with ElegantOTA, a variation of ArduinoOTA with just a different interface. I never managed to flash anything else, so it's a bare OTA I flashed using a dedicated programmer. The device has not even pins for further flashing.

The ESP is already in a device that I would like to avoid opening, and I would like to avoid soldering pins and flashing locally the ESPhome firmware (which is also configured for future OTA).

I'm not sure the bootloader or whatever is used to self-flash the chip is compatible. How can I do it?

Or should I just open the ArduinoOTA webpage, upload a ESPhome firmware and go on?

  • if you can load a new firmware, load a new firmware. make sure it works before hand, but an image is an image.
    – dandavis
    Oct 16, 2019 at 15:48
  • I thought that different bootloaders use different techniques for replacing the running one. For example, one may write the new one in the second half of the flash and run it from there, but they could also write the firmware file in the second half, then copy it back to the first "already running" area. But ok, if it's compatible, I'll do it.
    – FarO
    Oct 16, 2019 at 16:25
  • well i've definitely used different firmwares with different OTAs and not had a problem. It feels dirty, i'll give you that. I suppose it's possible to fail and I just got lucky, and i'm just some guy on the internet not guaranteeing your money back, but afaik, you don't really need to worry about boot-loaders on ESP8266s.
    – dandavis
    Oct 16, 2019 at 16:31
  • @dandavis at the end I compiled a minimal ESPhome firmware, with only OTA and wifi captive portal, and I tried to upload it (300 KB, more or less). "Space is not enough". I also tried to compile a minimal BasicOTA from the Arduino suite, and I got a binary of the same size and the same error message. I have to flash using the pins.
    – FarO
    Nov 12, 2019 at 8:42

2 Answers 2


I've found that when a flash fails with a space error, I've usually specified the wrong flash size option in Arduino (under Tools->Flash Size). Depending on the version of Arduino you're using, try picking the one with "No SPIFFS" or FS:none that matches the size of your flash memory. Once you make that change, recompile and reupload.


I compiled a minimal ESPhome firmware, with only OTA and wifi captive portal, and I tried to upload it (300 KB, more or less).

Initially I got the error "Space is not enough", but then after rebooting the ESP8266 and trying again, it worked.

So as said by dandavis, different firmwares are compatible in regard to OTA capabilities and it's possible to cross-flash.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.