A cleaner ESP8266-12 hardware setup

ESP8266 packaging issues

One of the first challenges to overcome when you get a bare module ESP8266-12 SoC is how to connect this unit to a circuit. It comes without header pins and the pin pitch is less than the standard 2.54 used on solder-less and copper breadboards. Clearly, it is not ready to use out-of-the-box like, for example, any of the Arduino options.

My first circuit used a 16-pin DIP package with short jumper wires soldered between the ESP8266 pin holes and the DIP. This assembly was then plugged directly on a solder-less breadboard. While this gave me a quick start into the ESP8266 world, the setup was messy and even worse – unstable.

Solder-less Breadboard

Disappointed and often frustrated by the poor performance of the setup, my next setup used a copper plated breadboard. The ESP8266 was mounted to the board using thin (28 AWG) bare wires. These wires were soldered between the ESP8266 through-holes and the breadboard pads. This was a vast improvement in terms of stability. I currently have a system that has been running for over 2 weeks now with no resets or system crashes. The real-time data collected with this system is displayed publicly on ThingSpeak for independent verification.

But with this setup, the tiny interface wires require a lot of time to initially assemble.

That’s where this adapter plate really shines…

Yes, it really made things easier when I stumbled upon a clean and inexpensive adapter for the ESP8266-7/12 modules. For just 28 cents (AliExpress), you get a PWB plate with pre-soldered mounting pads and a 10k pull-up connected to the chip enable (CH_PD).

A 10K resistor is also included that pulls-down GPIO15 to ground. This resistor is way to large to be of any value for that purpose. For proper boot operation, you must add a connection between GPIO15 and ground.

Finally, the fix is in – the pin labels for GPIO4 and GPIO5 have been corrected on this plate. No more confusion for that until now overlooked ESP8266-12 module design error.

ESP8266-12 adapter plate

The circuit has come together quite nicely. So far, it has proven to be a very dependable configuration. Boots without errors and flashes reliably the first time, every time. We shall see if this remains true as more the flash cycles are performed.

Fully assembled ESP8266 with adapter plate

This begs the question… Why not mount all the parts on a plate like this & eliminate the original carrier board?

A few design considerations

  • Notice the 0.1uF decoupling capacitor added close to the ESP8266 assembly. Positioning this essential capacitor there…directly across the ESP8266 VCC and Gnd pins, is absolutely critical for stable operation.


  • The header pins were mounted backwards so the longer posts are facing upwards. This will be useful should it be necessary to connect female jumpers directly to any ESP8266 pin.
  • The USB to serial adapter cable connections are split between two terminal sections. The right two terminals connect USB 5V and Ground. The left two terminals, serial transmit and receive, are only used when flashing the firmware. Once deployed, the left two terminals are disconnected and the 5V and ground connections are attached to a USB cable. This supports power sourced from a USB wall or car adapter as well as a USB battery.
  • The ESP serial receive pin has a 100 ohm series resistor included from the serial transmit source. In addition, a 3.3V zener diode clamps the input voltage into the ESP8266. Many ESP8266 users omit these parts. This is not advisable. Exceeding the specified input range will likely degrade the system performance and possibly introduce hard to find latent defects! For long-term reliable operation, these common, readily available components should be included in every interface circuit.

ESP8266-schematic - serial

  • An AMS1117 voltage regulator converts the 5V to 3.3V for the ESP8266 supply. This is mounted on the breadboard copper side of the breadboard so the heat sink built into the regulator can be soldered to the board.

Regulator Heat Sink

  • To minimize instabilities from voltage ripple, two 470 uF capacitors are used, one across the 5V source and one across the 3.3V ESP8266 supply.

ESP8266-schematic - power

In Conclusion

In my experience, while cheap, feature rich and full of promise, unwanted system resets, flash failures and crashes have been the curse when working with the ESP8266.

But there is hope…

This recently introduced adapter plate, along with the hardware interface features presented here will help mitigate these undesirable outcomes.

Hope you find this information useful…

Share This:
Social tagging: > >

13 Responses to A cleaner ESP8266-12 hardware setup

  1. Rene says:

    A little tip!

    On the bottom of the white PCB adapter you can solder the AMS1117 (SMD). The extra hole on the PCB can be connected to a power source. Then the Vcc pin has 3.3v.

    • Michael Harris says:

      Careful!!! The pads on the back of the carrier are not in the pin order of most AMS1117 or LM1117 regulators, specifically the center pad is Vin not Vout.

      • Garth says:

        The regulator is a XC6206P332A better known as a 6206A in SOT89 package. Pinouts are from left Vss, Vin and Vout. You will have to remove the middle resistor on the board to get it to work.

  2. Garth says:

    I think that the regulator should be a XC6206P332PR in SOT89 package. On these from left to right is Vss, Vin and Vout

  3. Jon says:

    I recently watched a video where a HT7333 regulator was used with this board.

    • TStef says:

      Yes, the HT7333 has a much lower quiescent current (4 uA as opposed to the 5 mA of the AMS1117). It's better suited for use with batteries since it drains significantly less energy.

  4. Yakov says:

    2mm to 2,54mm adapter board




  5. Sandip Savaliya says:

    Hellow sir,
    Nice blog first of all. i want to ask you some questions. i have ESP 8266 12e Wifi module, but somehow i am unable to download the program in my device. sometimes it is get uploaded, but due to some rst causes it is unable to run the output in my device. i’ve tried several methods and i have 3 Pcs of 12e modules and also FTDI232 and CP2102 programmers, and other required components, but i am still not successful to write the program and run the output in my wifi module. so please help me. and please send me a diagram and configuration information if possible to powerup my device, to flash the firmware, and to run the device and see the output. i have nodemcu flasher and espflasher both, and also have ESPlorer to run the device. i am stucked between. please help me out. thanks and regards.

    • facebook-profile-picture InternetOfHomeThings says:

      Thanks for your comment.

      Resets can be frustrating. Fortunately your 12e module includes input pull-ups, a power supply voltage regulator and serial link level shifters. My typical setup shown in this post required these components to be added. Of course, the sensors on the left side of the schematic or not necessary for ESP8266 operation.

      Here are a few things I would be sure to include to eliminate the possibility of undesirable module resets.

      1. Make sure you use a PWB with soldered connections for your circuit. DO NOT use a white breadboard with jumper wires as they are vulnerable to intermittent connections; resulting in resets.

      2. Use a large (470uF or larger) capacitor across the input power rails on your PWB. While the 12e can accept a range of input voltages, I assume you are using a 5V supply, probably from your USB to serial device.

      3. In addition to the pull-up resistor connected to your reset pin, add a 0.1 uF capacitor from the reset pin to ground.

      It is a good idea to start simple. Verify the basics are working first. You should make sure you can upload the basic AT firmware and verify you get the “OK” message out of the serial port before moving on to any other firmware uploads. My “Getting Started” article is here. Start with Step 3 as steps 1 & 2 are now obsolete.

    • TStef says:

      I've written a detailed tutorial on how to get the ESP-12E connected through and Arduino UNO. Replacing the UNO with the FTDI232 is simple enough (if you need more instructions on this, I can help you).

      Have a look and let me know if you need more help: https://www.instructables.com/member/Tstef/

      Also, give us a few more details on the rst — what do you see exactly in the serial monitor?

  6. TStef says:

    How would you go about adding a power switch to this circuit? Where would you place it? Thanks.

    • facebook-profile-picture InternetOfHomeThings says:

      It can be placed in series between the 5V USB cable output and the left 470uF capacitor or in series on either side of the LM117 regulator. I would not place a power switch after the 3.3V conversion as it could create circuit damaging transients.

      If the USB power source is a battery, switch the power when it enters the circuit on the left so there is no current drawn when the switch is in the "power-off" position (open).


  1. Inspiration: ESP8266 WiFi - a few links - Experimental Avionics

Leave a Reply