Make Esp8266 Dev Board From Scratch
by Amit_Jain in Circuits > Wireless
17552 Views, 51 Favorites, 0 Comments
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.....
What Do We Need ?
Material
- ESP12E - ESP8266 Module
- FTDI RS232TL
- Double sided Prototype PCB
- 3.3 V Regulator
- Resister : 10k(4) 1K(1)
- Red Led
- Male and female Header
- Wires
- Push button
- On /Off Switch
- Capacitor - 10uF, 100uF
- 3 AA battery holder
Tools
- Soldering Iron, Flux, Soldering Wire
Circuit Diagram
I referred both NodeMCU dev board and Adafruit huzzah board, come come up with a simpler design
VERY IMPORTANT
- 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
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
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
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
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
PlayTime
Classic Blink Code
Arduino
Node MCU
Or Make your ESP8266 as WIFI Access Point
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