Introduction: Breakout Board for ESP 8266 01 With CP2102
Note: This project was done by a group of Singapore Polytechnic Students
(Author: William Tan). The tools and components were provided by our FYP supervisor Mr Teo Shin Jen.
Hello everyone, I'll start by talking about my motivation for making this breakout board for the ESP 01. It's simple, actually: I was looking at making a simple solution for flashing my programs onto the ESP 01 without having to connect the CP2102 USB to Serial Adapter via breadboarding it, as the connections would be rather haphazard. Without further ado, let's start with this little project!
Step 1: What You'll Need:
1. Software to monitor output from the ESP
Essentially a debugging tool. For those of you who have the Arduino IDE preinstalled, simply launch Serial Monitor by choosing the port which the CP2102 appears on. If it doesn't appear, look under Device Manager, and install the relevant drivers for it from there. When configured correctly, there will be an option to select it (mine appeared as COM3), but without a name. Select the appropriate Baud Rate, and you're good to go.
2. ESP 8266 Type 01
The star of the show.
3. Female Headers
We'll be needing these to plug the ESP 01 and CP2102 into.
4. Male Molex Headers (2 pin)
These will be used to connect the power supply and other peripherals to the breakout board.
5. 2 pin Male Header (single row)
This is used for a jumper which sets the ESP 01 into bootloader mode, allowing us to flash it.
6. Push Button
This is used to reset the ESP 01. (Shorts the RST pin to GND)
Voltage Regulator Segment:
a) 1 x 100 uF (25V)
b) 1 x 47 uF (16V)
a) 1 x 390 Ω (1/4 W)
b) 1 x 270 Ω (1/4 W)
a) 1 x LM317
Step 2: Circuit Diagram
Now, hold your horses before you start asking me what this unconvential circuit diagram is, since it isn't a circuit diagram.
Essentially, it's my own method of visualising how the components should be laid out on a stripboard, as I find it rather difficult to translate a design from a circuit diagram to the step of physically laying it out.
For extra information regarding what the symbols mean, do refer to the legend attached in this step!
Points to note:
1. I have included a LM317 because I do not wish to use the 3.3V output from the CP2102, lest the high current draw of the ESP fry it.
2. The LM317 is a linear regulator, and is incredibly inefficient when it comes to higher current loads. Thus, a word of advice: use this board only to flash programs to your ESP 01 (the ESP does not draw a lot of current when being programmed), and do not use it for prototyping, as this design is not meant to handle the large current which the ESP 01 draws when at full load. This will cause the LM317 to produce a lot of heat, and may damage your components.
3. Regarding point 2, a better solution for this would be to use a switching regulator, much like this: (http://www.dimensionengineering.com/products/de-sw033), which is a voltage regulator which I use in the prototyping version of this breakout board.
4. Configuration of GPIO 0 pin:
Do note that when the GPIO 0 pin is connected to GND upon startup, this causes the ESP8266 to enter its flashing mode, which prevents it from being used normally. Hence, a solution which I used (inspired by: https://www.instructables.com/id/An-inexpensive-IoT-enabler-using-ESP8266/step6/Flashing-the-firmware-to-the-module/) was to create a jumper that shorted GPIO 0 to GND when connected. When in normal use (e.g. monitoring the Serial output via the CP2102), the jumper can be removed.
Step 3: Schematic
Sorry for the delay in uploading the schematic! I've added some extra connectors for breaking out the TX/RX pins, along with the GPIO pins. Enjoy!
Step 4: Done!
If you've done it correctly, you should now be able to see your ESP within the Arduino environment via Serial Monitor!