Introduction: Make Esp8266 Dev Board From Scratch

Hi All,
ESP8266 needs no introduction. It is the cheapest WIFI module available and one can find many interesting projects online. ESP8266 has many variants starting from ESP01 to ESP13 (getting added every few months) I got really excited watching few applications of ESP8266 and bought a ESP12E module

It was not easy to work with this module as the pins are not breadboard friendly or PCB friendly. I had to build a custom dev board to test it out. I could not afford to buy a ready to use ESP8266 dev board, as these are very expensive, in India. And there is no fun in it

To get started with this module, I had to pick information from several post/blogs etc. In this instructable I will consolidate all info, issues and their solutions, I discovered during build and testing.....

Step 1: What Do We Need ?


  1. ESP12E - ESP8266 Module
  2. FTDI RS232TL
  3. Double sided Prototype PCB
  4. 3.3 V Regulator
  5. Resister : 10k(4) 1K(1)
  6. Red Led
  7. Male and female Header
  8. Wires
  9. Push button
  10. On /Off Switch
  11. Capacitor - 10uF, 100uF
  12. 3 AA battery holder


  1. Soldering Iron, Flux, Soldering Wire

Step 2: Circuit Diagram

I referred both NodeMCU dev board and Adafruit huzzah board, come come up with a simpler design


  • ESP8266 works only on 3.3V. Using 5V or higher will damage this module
  • We need a 10uF Capacitor between Vcc and Gnd ( The Module draws currents which makes the input voltage drop from 3.3 to 2V. adding this capacitor maintains 3.3V
  • Always use an external power supply and do not use power from USB
  • I used both FTDI RS232TL USB to serial and CD340; both chips worked perfectly

Step 3: Build It

I used small pieces of copper wire (insulated) and soldered them to each pin of the ESP12E module. Note I did not solder all pins.

Tip : Use flexible or soft wire than, single core copper strain from LAN cable.

Be careful in soldering and donot short adjacent pins, as I did

I added female header pins for each pin and USB to serial converter, similar to Arduino Uno boards

Step 4: Programming : Choose Between Arduino IDE or NodeMCU ????

I tested

  • AT
  • NodeMCU
  • Arduino IDE

Link on How to Setup Arduino IDE for ESP8266

Well AT is good to start with but need Arduino or serial master control to execute anything basic on the module

Arduino IDE is easy to setup and many of us are familiar with. Easy to code. But for some reason does not save every time. I observed that partial data from previous code remained or flashing doesnot happen correctly. Apparently not very stable to work with....

I have attached a screenshot where I flashed using Arduino and NodeMCU boots :(

NodeMCU : Simple interface, but have to learn new LUA Scripting. Takes a while before i got little hang of it.

I could control my code and do tests

Step 5: Flashing Issues

Common Issues

  • Sync Chip Error
  • Com port Busy
  • Com closed

Solution : Add a switch to the external power supply, switch on and press flash at the same time

Step 6: Brick Your ESP8266

Another problem I got from Arduino was that the code was not correctly return to flash. and the module doesnot boot correctly. I bricked it.

Solution :

Arduino IDE cannot be used to fix things, set the serial baud at 74880 instead of 9600 or 115200, to see error logs. Google them and then try following

Connect the GPIO 0 to Gnd using Jumper and switch off the power supply, Now using ESP8266 flash download tool initiate flashing and switch on the power supply. One may have to try few times to get the timing right

If you brick

I exported the bin and flashed it using ESP8266 flashing software

Step 7: PlayTime

Classic Blink Code
Node MCU
Or Make your ESP8266 as WIFI Access Point

Step 8: Conclusion

  • Amazing chip but unstable may be in few months we will have stable or better chip which s cheaper
  • Using breakout board adapters helps reduce those fine soldering
  • One cannot flash ESP8266 too many (I do not have the count, I flashed about 30 times and then the filesystem doesnot let you flash anything ). Possible solution to replace flash memory