I want to burn the bootloader of esp8266. Assume I have esp8266 on esp12 in hand and an USB ISP programmer (or any other programmer like USBTinyISP). I (think I) know how to use the Arduino IDE to burn the bootloader (mainly it's by selecting board and the programmer), but how to wire the esp8266? Precisely I mean, "do I use the pins 12, 13, 14, and 15 as these are for SPI connection"?

Edit: I have seen Arduino microcontroller board of which the bootloader was burned, so I was wondering why not do the same for esp8266.

  • 1
    In your previous question on EESE electronics.stackexchange.com/questions/334758/… it was already explained to you that the esp8266 serial bootloader is there from the factory. There is nothing to burn. And if you're only going to ignore the responses you get, there is also no reason to continue posting in the SE system. Commented Oct 18, 2017 at 19:23
  • 2
    Why, after it has been explained to you four times by two different people that the idea does not apply do you persist with your edit in continuing to wonder about this? Commented Oct 19, 2017 at 7:03
  • @ChrisStratton Your response here is more beneficial as the question is more basic. This enriches the database of Stack Exchange. There, the question was more complex.
    – YoussefDir
    Commented Oct 19, 2017 at 7:09
  • and it's not wrong to listen to other answers from other people. With all respect.
    – YoussefDir
    Commented Oct 19, 2017 at 7:18
  • 1
    It's like "why I can't put gas in a Tesla?" Most cars need gas ...
    – user31481
    Commented Oct 19, 2017 at 8:30

1 Answer 1


The ESP8266 already has a bootloader to upload new firmware over UART. You don't need to burn anything, and you don't use SPI to program it.

AVR microcontrollers are programmed (aka flashed, or uploaded) using ISP (in-system programming) over SPI. They don't support programming over UART out of the box. To receive new firmware over the serial port, a bootloader is used. It is a piece of software that receives data from the UART and writes it to flash, overwriting the previous firmware.

Before you can do this, you need to write (aka burn) the bootloader firmware to the microcontroller. This can only be done using ISP, because

  1. if the chip is blank, there is no bootloader to receive the bootloader over UART
  2. if there is a previous bootloader that you want to replace, you can't rely on the bootloader for programming over UART either, because the bootloader would be overwriting itself.

The situation on an ESP8266 is completely different. Whereas on an AVR, ISP is the default method to flash new firmware, on the ESP8266, it is UART flashing. The ESP8266 already has a system built-in for UART flashing (just like an AVR has a system for ISP flashing), so you don't need to flash a software UART bootloader.

There is no ISP system inside of the ESP8266, so trying to do ISP on the HSPI port won't flash anything.

Read this: A Beginner's Guide to the ESP8266

  • do you mean that USB ISP and other programmers are of no use to esp8266 as they are for Arduino boards?
    – YoussefDir
    Commented Oct 19, 2017 at 7:19
  • @YoussefDir Yes, you need a USB-to-Serial converter, please read the link provided in my answer.
    – tttapa
    Commented Oct 19, 2017 at 8:58

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