This instructable will show you the first steps in order to use and test an ESP8266 ESP-12F module.

I put here just the thinks to know... mainly also to rembember myself what I did.

This will show only how to do a first connexion and to test the module with a serial USB connected to a computer and use of Arduino IDE Serial Monitor.

Step 1: Parts Needed

The parts needed are:

  1. ESP-12F Module from ebay for example around 2.31USD
  2. An USB to serial TTL UART Module (like CP2102 from ebay for exemple): 1.24USD
  3. A 3.3V Power supply like MB102 from ebay: two for 1.67USD
  4. An optional ESP-12 adapter like this one from ebay: 3 for 1.20USD

Step 2: Setup the Power Supply

The ESP8266 is a 3.3V device. So setup all the pins of the power supply to 3.3V (on bot sides) and use only the green marked pins in the pictures. Do not use the 2 pins markend in red (5V).

Step 3: Solder the ESP-12F on the Adapter

It is now time to solder the ESP-12F on the adapter. The 2mm pitch of the ESP-12F is big enough to solder with a solering iron.

Start by soldering the ESP on the adapter.

Then solder the pins.

Please notice that this adapter has already:

  • a 10k resistor pull-up for EN (CH_PD) pin
  • a 10k pull down-resistor for GPIO15

Step 4: The ESP-12F

ESP- 12F WiFi module is developed by Ai - thinker Team. It contains a ESP8266 and 4MB external SPI flash.

I have found here the datasheet of the module. This datasheet describes all the pins but also the PIN Mode.

Modes are:

  • UART (for programming): GPIO0 - low, GPIO2 - high, GPIO15 - low
  • Flasg boot (for running the flashed software): GPIO0 - high, GPIO2 - high, GPIO15 - low

Another PIN not to forget is EN (also named CH_PD on other devices). This need to be pulled high in order the device to work.

Step 5: Wire

Wire as follow:

  • Power GND / CP2102 GND / ESP-12F GND / ESP-12F GPIO15
  • Power 3.3V / ESP-12F VCC / ESP-12F GPIO0 / ESP-12F GPIO2 / ESP-12F EN
  • CP2102 RX / ESP-12F TX
  • CP2102 TX / ESP-12F RX

Some connections done here to VCC should not be done directly but with a pull-up resistor.

See my next Instructable.

Step 6: Start and Test With Putty

Connect CP2102 to computer and identity COM port.

Start putty and connect to the COM port with speed 74880 bauds.

Power un the power supply.

Some data will be displayed. This data is from the ESP8266 startup itself.

The data looks like :

ets Jan  8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8

Now switch the baud rate to 115200. Restart ESP-12F

This time the data displayed comes from the embeded AT commands software. Data looks like:

Garbage caracters
Ai-Thinker Technology Co. Ltd.

You can start type AT commands.

After each ENTER press also Control-J

Example AT

You will get:

AT version: 1 2016 20:04:45)
SDK version:
Ai-Thinker Technology Co. Ltd. Dec 2 2016 14:21:16

Step 7: Arduino IDE

Close putty if not done already.

Start Arduino IDE, choose COM port (Tools>Port) and run Serial Monitor (Tools>Serial Monitor)

With Arduino IDE Serial Monitor set speed 74880 and restart ESP.

You will get output looking like:

ets Jan  8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 1856, room 16 tail 0 chksum 0x63 load 0x3ffe8000, len 776, room 8 tail 0 chksum 0x02 load 0x3ffe8310, len 552, room 8 tail 0 chksum 0x79 csum 0x79
2nd boot version : 1.5 SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 32Mbit(512KB+512KB) jump to run user1 @ 1000
rf cal sector: 1017 rf[112] : 00 rf[113] : 00 rf[114] : 01
SDK ver: compiled @ Jul 1 2016 20:04:35 phy ver: 972, pp ver: 10.1

With Arduino IDE Serial Monitor set speed 115200 and "Both NL & CR" at bottom right of the screen.

You will se also garbage then:

Ai-Thinker Technology Co. Ltd.

Now you are ready for last step.

Step 8: AT Commands

The full reference ot AT commands is on expressif website or a short reference here.

Here is a short list:

  • AT
    • returns OK
  • AT+GMR
    • returns version
  • example:
    • AT version: 1 2016 20:04:45)
    • SDK version:
    • Ai-Thinker Technology Co. Ltd. Dec 2 2016 14:21:16 OK
    • displays current Acces point mode
    • sets acces point mode.
      • 1 : station mode
      • 2 : softAP mode
      • 3 : softAP + station mode

Here is an example:

Set Dual Mode


List acces points

+CWLAP:(3,"TOTO 34556",-00,"50:00:01:d3:10:46",6,10,0)



List IP adresses


Make a http request

1st connect


Make the request

GET / HTTP/1.0

> Recv 20 bytes

And the response is

+IPD,471:HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: <a href="http://www.google.fr/?gfe_rd=cr&ei=MR6WWPuYDIvu8weQxKbwCw" rel="nofollow"> http://www.google.fr/?gfe_rd=cr&ei=MR6WWPuYDIvu8w...</a>
Content-Length: 258
Date: Sat, 04 Feb 2017 18:32:17 GMT 

<HTML>Some html here</HTML>

Step 9: Ressources

Please find attached some ressource files: the ESP-12f datashet and my Fritzing schematics.

<p>Hi, thanks for this. I'm using micropython myself, but the hardware setup is the same. I think you forgot to pull up the RST pin. 10 kohm should do and optionally a switch to GND for quick reboot of the device. I recommend to include pull down/resistors in your schematic, to avoid confusion to newcomers (and accidental short circuits!).</p><p>Thanks!</p>
<p>Great first instructable. You should enter this into the Epilogue contest.</p>
<p>Thanks, I've entered this in the Epilogue contest.</p>

About This Instructable




More by flav1972:ESP-12F: Flashing AT Firmware ESP-12F: ESP8266 Module - Minimal Breadboard for Flashing ESP-12F: ESP8266 module - connection test 
Add instructable to: