Introduction: ESP-O-One : Making Your Own ESP Development Board!
Hey everyone! welcome to my instructable where I will show you how I made this ESP8266 01 development board which I like to call ESP-O-ONE.Since I started working with electronics and specially with the ESP boards have always found the ESP8266 01 Board highly underrated but with full of features and capabilities. So I went ahead and made all in one development board which contains an inbuilt programmer and access to GPIO pins of the ESP board along with programming and reset functionalities. With this board you can connect modules which support I2C communication such as OLED displays,accelerometers,temperature sensors,modules with one wire communication protocol and much more. The GPIO pins of the ESP can also be used as a digital input output interface to connect simple digital logic elements like LEDs, push buttons etc.
This is going to be a fun instructable so let's get started!
- ESP8266 01 board
- CH340G USB to serial converter IC
- 12 Mhz crystal
- Micro USB breakout board
- 4 pin female header pins
- A small switch
- AMS1117 3.3V regulator
- 100uF capacitors -2
- 22pf ceramic capacitors -2
- 1 Kilo ohm resistors - 3
- 2.2 Kilo ohm resistor- 1
- Veroboard of dimensions 5 cm by 5 cm
- Soldering iron and accessories
- Breadboard(and jumper wires) for testing
Step 1: Gathering All the Suppplies
Beginning the project make sure to collect all the required components and supplies along with you so that it is easier for you to get started .I have listed down all the required components in the previous that you can check that out and make arrangements accordingly.
Step 2: The Circuit Diagram
I have used the wildly popular easyEDA software to generate a rough schematic of my project which will give me an idea of the components which should be placed close to each other in order to shorten the solder traces and use minimal jumper wires
Step 3: Cutting the Veroboard to Shape
For mounting all the components I have cut out a veroboard piece of size 5 cm and 5 cm which is enough to fit in all the components and compact enough as to make the circuit small and easy to carry around.After cutting the boat to size I also give it earlier of Spray paint to make it look better.
Step 4: Testing Out the Circuit on Breadboard
Before moving ahead and soldering all the components on to the veroboard it is always a good idea to test the circuit on breadboard, so for this I grabbed a small piece of breadboard and all the basic components which were required to make a simple circuit which enabled me to upload the simple sketch to the ESP board.As you can see with the help of my DIY breadboard friendly esp8266 adapter I was able to set up the CH340 programmer and connected to the TX and Rx of the esp8266 so that the program can be uploaded onto the board. Make sure that TX of the programmer is connected to the Rx of the ESP and vice versa. Now since the esp8266 is a 3.3 volt operated board it is a good advice to use a voltage divider when connecting the TX of the programmer to the Rx of the ESP for which I have used a divider network of 1 kilo ohm and 2.2 kilo ohm which brings down the 5V logic to approximately 3.3V level.
If you want to know how I made this breadboard friendly esp8266 adaptor then you can go to the following link:
Step 5: The CH340 SMD to DIP Adapter Board
Since the Ch 340G USB to serial converter IC is only available in SMD package it is difficult to work with specially when making project on veroboard , so I made myself this SMD to DIP adaptor which can easily help me to test the CH340 board on a breadboard or on a veroboard. I have a video in which I have explained how I made this adaptor using a CNC milling machine. I'll also provide video link for this project in this step you can check it out if you wish.
During experimenting I accidentally broke one of the pins of the breakout board and so I had to use some feviquick to fix the broken the jumper pins
Build process here:
Step 6: Testing Out the I2C Communication
It is interesting to observe about the esp8266 is that it also supports I2C communication using GPIO0 and GPIO2 pins which can be configured as SCK and SDA and can be used to connect any other I2C device such as this oled display which I went ahead and tested on the breadboard. I have attached the code which are used in the example for your reference
Step 7: Components Placement
When making a mini or compact project it is very important to decide the placement of the component so that you can keep your connection short and simple and avoid using of excessive jumper wires. HereI've decided the placement of the components and I can easily adjust the position of the resistors if required make sure that the main components of a circuit as close to each other as possible
Step 8: Adding Micro USB Breakout Board and Crystal Oscillator
With the breadboard test successfully done and the position of the components decided it was now time to move ahead with the soldering process which I divided into three groups, the first group was in which I will be attaching the micro USB breakout board along with the crystal oscillator and the C340G Breakout board
Step 9: Adding the Programmer Breakout Board
Adding the CH340G programmer board along with the micro USB breakout board in such a way that the D plus and D minus pins of USB and programmer can be soldered close to each other and with saves us jumper wires and unnecessary long connections
Step 10: Adding the Power Supply Components
We know that the ESP8266 works on 3.3 volt logic level and applying 5 volts can seriously damage it, for this I am using the AMS1117 3.3 volt voltage regulator which can provide us with a steady 3.3 volts. I've also added filter capacitor to the input and output of the AMS1117 to give a clean and smooth voltage supply to the ESP as well as the programmer board.
I will also be adding a push button with the reset pin of the ESP board which will help me reset the board whenever I want the program to be executed again
Step 11: Adding the ESP Module Along With Status LED
And now it is time to solder in the heart of this project the ESP 8266 along with it I have soldered two LEDs with the TX and RX pins which will give me a visual representation of when a code is being uploaded. It is also helps me to debug during serial communication programs.Make sure to add a 1 kilo ohm current limiting resistor along with these LEDs
Step 12: Adding Up the Female Header and Programming Switch
Lastly I will be adding the 4 pin female header and the switch which will help me to toggle between programming mode and operating mode.The 4 pin header will give me access to the Vcc, ground which is the power supply along with GPIO0 and GPIO2 which are the input output pins for the ESP board.
When the switch is in the programming mode the GPIO0 is connected to ground which puts the ESP board in the programming mode.After successfully uploading the code we now flick the switch to operational mode and press the reset switch once in order to start the newly uploaded program
I have also attached an image of the connections that I've made underneath the breadboard. I have tried to keep the connections as small and compact is possible but in the end I had to use a few jumper wires and it did make the overall build a little bit messy.Also I made sure that there were no unnecessary solder joints or jumper cable connections which could otherwise lead to the failure of my circuit.
Step 13: Adding Spacers
Since the overal lveroboard connections and the solder joints got a bit messy I decided to add 4 spaces which will help me make sure that there is no unnecessary false contact of the bottom of the veroboard to any surface on which I keep my board on.
This is an optional step but will provide additional security from any false connections
Step 14: Build Process Done!
And after about three hours of soldering the build process is finally complete.I have also added a layer of tape underneath the board to secure the solder connections,It also makes the board look and feel good with respect to the aesthetics and the dimensions
Step 15: Testing the Board With Sample Programs
When it is again time to test our new ESP-O-One board with some sample programs to make sure that all of the build has been done correctly and the programmer is working fine.
To program the ESP board I am using a Micro USB to USB cable which will be helping me to connect the board with the laptop. I am using the arduino IDE to program the ESP board for which I have imported the ESP library on to the arduino IDE, selected the sample blink program and then selected the board as generic ESP8266. After selecting the proper com port I click upload. Make sure that the switch is in the programming mode before hitting the upload button. Alternatively, to put the esp8266 in programming mode you can power on the ESP, flip the switch to programming mode and press the reset once. This will also do the same thing.
Step 16: Final Words..
At the end I was very happy with the build of the board and I definitely enjoyed making the making process.I do feel that the esp8266-01 boards are highly underrated in terms of the performance and this was my attempt to make a complete development board out of this. I have a lot of projects in mind based upon this mode and of course there will be projects regarding IoT, I2C communications, Input output device interfaces and general microcontroller related applications.
I will also try projects integrating both of the arduino boards and this ESP development board
I hope you like this project and the build. Feel free to share your feedback in the comments section below don't forget to share this project with your friends and the community.
I am highly interested to know whether this project is feasible or not and if Yes, should I design a professional PCB for this circuit? What are your thoughts on this? Do let me know.
If you like what I make and want to hear more from me also follow me on Instructables and do subscribe to my YouTube channel where I've also made a complete building tutorial for this development board. Please check out on the video in the next step.
Till then, Take care and good day!