First steps with ESP-09

      2 Comments on First steps with ESP-09

When I received my ESP-09 I had to learn that – in contrast to boards like NodeMCU and WeMos D1 mini – is it much more complicated to get it running. With it´s size of about 1 cm by 1 cm it is really tiny. Since there are no pins attached you have to solder wires to it´s tiny solder pads on the bottom side. In addition there is no USB connector and voltage regulator.

ESP09 Pinout (top view) and minimum wiring

ESP09 Pinout (top view) and minimum wiring (dont´forget to attach 3,2 cm antenna cable!)

First you want to solder a wire to VCC and CH_PD (If CH_PD is not connected to VCC the ESP won´t start). After that you have to solder wires to the other pads. Since there is no antenna on board you have to solder one to the ANT pad. A 3,2 cm long ordinary wire will do the job.

I guess these solder joints won´t win a beauty contest...

I guess these solder joints won´t win a beauty contest…

Prior to powering up the ESP09 you have to configure the correct boot mode. This is done by setting the levels of GPIO 0, 2 and 15 during reset/powering up. See the table below to determine which GPIO has to be set to which level.

To switch levels you have to change the configuration and reset or reboot the ESP. A reset will be performed when RST is set to LOW.

boot mode CH_PD RST GPIO0 GPIO2 GPIO15
(Mode 1)
Run program
(Mode 3)
3.3 V HIGH HIGH or

HIGH = Connect with 10kOhm pull up resistor to VCC
LOW = Connect with 10kOhm pull down resistor to GND

Now you can connect your ESP to your PC with a USB to TTL converter. I chose a cheap chinese one with a CP2102 chip since you can use it with 3.3 V and 5 V. To enable communication via USB you have to connect 3.3V with VCC, GND with GND, TXD with URXD and RxD with UTXD.

Now plug in the converter to a free USB port. In PuTTY you have to set the connection speed to 74880 baud and enter the COM-Port of the converter.

ESP8266_Putty_1ESP8266_Putty_2Click the “Open”-Button to open the terminal and perform a reset. You can connect RST to GND (release to restart) or temporarily disconnect the converter.

Now you should see a boot message.


Boot mode (3,x) indicates that a progamm saved in the flash chip will be executed. If the ESP8266 returns a boot mode (1,x) it expects that you upload a program via UART (serial) connection.

ESP09 boot mode 1

ESP09 boot mode 1

ESP09 boot mode 3

ESP09 boot mode 3

  • If you see cryptic characters you should try to change the baud rate (9600, 57600 and 115200 are promising candidates).
  • If you see othe boot modes than 1 or 3 you should check if you connected the right wires or if you have any imprecise solder points.
  • If you receive no message at all and the TX/RX-diodes of the USD-to-TTL modul blink after reset/restart of the ESP you might have selected the wrong COM port.
  • If you receive no message and the TX/RX-diodes of the USD-to-TTL do not blink after reset/restart of the ESP you might have connected the wrong wires or you have a faulty ESP-Module.

ESP09 COM9 - PuTTYIf you see boot mode (3,x)close the terminal. Open a new one with 9600 baud and type AT followed by  CTRL+M + CTRL+J . Your ESP should answer with OK if the AT-Firmware is installed on the device. My ESP did not answer. 🙁

If you are in th esame situation you have to select boot mode (1,X) (see table) and upload a new firmware.

ESP8266 flasher

ESP8266 flasher

I failed trying to upload the new firmware with the Arduino-IDE so I chose  ESP8266 flasher. It just needs this firmware and the info which  COM-ports should be used.

After you have uploaded the new firmware you have to change PIN 0 to HIGH (or let it float). Now the ESP should answer to AT commands and you can upload other sketches with the Arduino IDE…

Where I found all this information:

The hardware I used:

ESP-09 bought @ Aliexpress (~2€)

USB-TTL-Converter bought @ Aliexpress (~2 €)




2 thoughts on “First steps with ESP-09

  1. Tck

    Thanks for this, I’m fairly well versed using esp modules but it’s time for real prototypes, I’m thinking of the esp 09 due to its size. Your guide is the best I found, btw, did you deploy the 09 in anything? How many of the gpios are truly usable, let’s say for pwm or turning LEDs?

    1. wordpress Post author

      I have build a time lapse controller prototype. It just needs to switch two optocouplers.

      I think GPIO 0, 2, 15 should not be used for anything else than setting the run mode.
      GPIO 12, 13, 14 are safe to use. I haven´t tried to use the serial pins for anything else yet..

      I thought the ESP09 was a nice toy since it´s so tiny but in most cases I think it is easier to use an ESP03, ESP07, ESP11, ESP12 or ESP13 module in my projects since I do not have to take care of the correct antenna length / layout.

      Another downside of the ESP09 is that you can´t use deep sleep since you do not have access to GPIO16!


Leave a Reply

Your email address will not be published. Required fields are marked *