Blog  /  ESP-12E: A Low-Cost, Miniature Wi-Fi Module for Microcontrollers

ESP-12E: A Low-Cost, Miniature Wi-Fi Module for Microcontrollers

If you are a developer or engineer interested in IoT or projects involving data sharing between microcontrollers, Wi-Fi modules are a must-have in your PCB circuits. However, these components can be expensive, which will make your entire project costly from the start. The ESP-12E provides an affordable alternative, though, and this low price is possible because the module has a low-cost esp8266 microchip as its brains.

So, what is the ESP-12E, and how do you use it? Here is a detailed description of the module.

 

What is ESP-12E?

 

To understand what this module is, we must first look at the microchip that runs it. The ESP8266 is an affordable Wi-Fi microchip with built-in microcontroller capability and TCP/IP networking software.

 

ESP-12E

ESP-12E

Source: Wikimedia Commons.

 

However, the component does not have flash memory built-in, so a third-party manufacturer assembled it in a board with flash storage, creating various modules ranging from ESP-01 to ESP-14.

The ESP-12E is one of the most common modules in the range because it is a self-contained Wi-Fi networking solution with 4 MB of flash storage, enough space to program and store lots of code.

 

ESP12-E Module Pinout Diagram

 

The ESP-12E has 22 pins in total, but only 20 of them are active. They include:

 

ESP-12E pinout diagram

ESP-12E pinout diagram

Source: Wikimedia Commons.

 

  1. RST – For resetting the module
  2. ADC analog input pin (10-bit, 0 – 1V)
  3. EN – Enable pin (Active when high)
  4. GPIO 16 – General Purpose Input Output pin 16
  5. GPIO 14
  6. GPIO 12
  7. GPIO 13
  8. VCC – 3.3V power input (VDD)
  9. CS0 – SPI interface chip selection pin
  10. MISO – SPI interface MISO pin
  11. GPIO9
  12. GPIO10
  13. MOSI – SPI interface MOSI pin
  14. SCLK – SPI interface clock pin
  15. GND – Ground pin
  16. GPIO 15
  17. GPIO 2
  18. GPIO 0
  19. GPIO 4
  20. GPIO 5
  21. RXD0 – UART0 RXD pin
  22. TXD0 – UART0 TXD pin

 

Features and Electrical Characteristics

 

The ESP8266 chip runs on 3.3V and operates its Wi-Fi on the 2.4GHz frequency, not the newer 5GHz, so make sure to enable 2.4GHz on your access point.

Remember, the ESP-12E is primarily an ESP8266 chip with external circuitry to support storage capabilities, so most of the processor’s properties determine the characteristics of the module.

 

ESP8266 Chip

ESP8266 Chip

Source: Wikimedia Commons.

 

It has one ADC pin, a standby power consumption of less than 1mW, and the maximum current draw per pin is 15mA. Other features include:

  • IEEE 802.11 b/g/n wireless standard
  • +16 +/- 2dBm, +14 +/- 2dBm, and +13 +/- 2dBm for the power transmission of b, g, and n protocols, respectively
  • Onboard PCB antenna
  • PWM, programmable GPIO, UART, SPI, and SDIO 2.0
  • HTTP/ FTP/UDP/TCP, and IPV4 network protocols
  • TCP client 5-serial transmission (110 – 921,600 bps)
  • AES/WEP64/WEP128/TKIP encryption
  • -40°C to 125°C operating temperature

 

How To Use The ESP-12E Module

 

You will need a few materials to program and use the chip. These include:

  • A 5V power adapter
  • 3.3V regulator
  • Jumper wires
  • USB to UART serial module
  • Perforated or PCB (due to its high current-carrying capacity) dev boards
  • Arduino IDE

The module has a 2mm pitch, so the perforated or PCB dev boards should have a matching distance between the pins. With all the components in place, the first thing you need to do is to connect the power supply.

 

Power Connection

 

Make the following connections using the jumper wires.

 

ESP-12E power connection

ESP-12E power connection

Source: Wikimedia Commons.

 

  • 5V power supply to the 3.3V regulator (Vin)
  • 3.3V regulator (Vout) to the VCC, GPIO 2, and EN pins (High)
  • Power supply ground to the GND pin and GND in the 3.3V regulator

 

Programming Mode

 

To program the chip, you need to connect the USB – UART serial or FTDI module to enable communication with your computer via the USB port. Link these pins to begin programming.

 

ESP-12 Module Programming Mode Connection

ESP-12 Module Programming Mode Connection

Source: Wikimedia Commons.

 

  • GND (ESP) to GND (serial module)
  • GND (ESP) to GPIO 15 and GPIO 0 (both ESP)
  • RX (ESP) to TX ( module serial)
  • TX (ESP) to RX (module serial)

After making these links, plug in the serial module to your computer.

It is important to note that you should not connect the 3.3V pin in the serial module to the ESP-12E. Use an external power supply as described above because the ESP-12E consumes a lot of current and risks blowing your USB port if you draw power from the serial module pin.

 

Open a Serial Terminal

 

You must use a serial terminal to write the code for the ESP-12E, and the most commonly used one is Arduino. Download and install the Arduino IDE on your computer, then go to Tools>Ports and select the port where the terminal has identified the serial module.

On the bottom-right line-endings tab in the Arduino terminal, select Both NL and CR to enable the ESP-12E to receive and understand your commands by inserting a NewLine and CarriageReturn after each one.

 

Blinking LED code in the Arduino IDE

Blinking LED code in the Arduino IDE

Source: Wikipedia.

 

Post Data

 

The firmware in the ESP8266 is an interpreter for AT commands, so you need to use such instructions to test and set up the module.

 

AT command syntax

AT command syntax

Source: Wikimedia Commons.

 

If you want to program it, use this IoT project as an example to learn the ropes.

 

ESP 12E Applications

 

Once you learn how to program the module, you can use it in the following areas.

 

Smart network sensor

Smart network sensor

Source: Flickr

 

  • Weather station
  • IoT applications
  • Home appliances
  • Security ID tags
  • Wireless control systems
  • Toys and gaming
  • Home automation systems

 

Summary

 

There you have it! Though it might be a bit challenging for beginners to set up and use the ESP 12E, it is possible, and the steps above should guide you through the process. In the end, you will have an affordable wireless network connection solution for your project to help you develop and deploy more products faster.

If you have any questions, contact us for further information.