Close
0%
0%

ESP-01 & ESP-03 Breakout

Breakout board for ESP8266 ESP-01 & 03 modules

Similar projects worth following
This is a combination breakout and programmer board for an ESP8266 (models ESP-01 & ESP-03). It's designed to take input (from an FTDI chip) using the UART protocol (i.e. Tx & Rx lines), as well as input power regulation. Includes switches to reset and enter programming mode.

Goal: Provide a simple-to-use programmer for ESP8266 modules similar to Adafruit Huzzah ESP8266 module.

Usage: Solder all components on, including your choice of ESP-01 or ESP-03. Insert UART connection into header at end of board. S1 will reset the board. To program board, hold S2 while hitting S1. S3 will select between 3.3V and 5V input on Vin (towards the ESP module is 5V).

See linked GitHub repo for schematic, BOM & layout

Overview

For this project, I had a very simple goal: be able to easily program the ESP8266 modules. Since I bought a few different varieties, I wanted this board to be compatible across as many as possible.

Goals

  • Program ESP8266
  • Access all possible communication lines to ESP8266, preferably on a breadboard
  • Provide regulated 3.3V power to ESP8266
  • Create a small and cheap board that could be used standalone or integrated into other projects
  • Buttons to enter programming mode, or to reset

Schematic

This schematic was created using NI MultiSim. It was modeled on Adafruit's Huzzah ESP8266 board, though with several changes, such as:

  • Switch to change between regulated and unregulated power
  • Omitted several parts of Adafruit's board that I considered unnecessary (diode protection, etc)

Schematic Summary

ESP-01/03 Breakout Schematic

The schematic should be read nonlinearly. Signals come in through J1 at the bottom right (Vin, TxD, and RxD). Vin then runs through a switch to select between 5V (or greater) and 3.3V (pre-regulated) input power. Essentially, this switch (S3) acts as a voltage regulator bypass. U2 is the 3.3V regulator, which is stored in C3.

Next, the bottom left section sets several lines to their default values, using pull-up and pull-down resistors.

  • GPIO16 (Reset) is pulled high except when the reset switch (S1) is closed, which sets it to ground and will reset the ESP8266.
  • GPIO0 is pulled to ground when S2 is closed to enter programming mode. This needs to be pushed on reset. Note: LED1 will light when S2 is pushed to provide feedback.
  • GPIO2 is pulled high.
  • CH_PD (Chip power down) is pulled high to keep the chip on under normal situations. This can be pulled low to put the chip in its power down state.
  • GPIO15 is pulled low.
The remaining sections are simply input and output to the ESP8266 chips. The positions of the lines roughly correspond to their actual position on the chip.

BOM

Version 1.0 of the BOM (corresponding to v1.0-1.5) can be found at GitHub

Layout

Version 1.5 OSHPark Renders

The layout was made using NI Ultiboard. This is version 1.5. The board size is 1.60"L by 1.0"W.

Building

Here you have your choice of ESP-01 or ESP-03 module. If you have an ESP-03 module to mate with this board, you can simply solder its castellated pads onto the provided solder pads in the provided U1 section. If you have an ESP-01, you solder a 2x4 female header onto the provided pins in the center of the board, and then plug the ESP-01 into it in the orientation denoted on the board.

This is probably a challenging soldering build due to the small feature size of the components. There are many 0805 (8 mil by 5 mil) and 0603 (6 mil by 3 mil) components, which take a steady hand to solder, but should still be doable.

I highly recommend doing the SMD components first, and then adding the thru-hole headers on later.

I will update this section once I have the board and components, and can actually put the board together.

Future Improvements

In future versions, there are several things that I would like to do to continue this project:

  • Minor improvements to layout, such as labeling and clarity. (completed in v1.5)
  • Add Breakouts for other ESP modules
  • Create breakout variant with micro USB connector and USB-> Serial chip such as CH340G so a separate serial chip isn't needed. Unfortunately, this will add size to the board, as well as making the board more difficult to solder.

  • 1 × ESP-01 (optional) ESP8266 through-hole variant.
  • 1 × ESP-03 (optional) ESP8266 Surface Mount variant.
  • 1 × LD1117AS33 3.3V 1A Regulator (SOT223 package). Power Management ICs / Linear Voltage Regulators and LDOs
  • 4 × ERJ-3GEYJ103V 10k Resistors (Fixed) / Thick Film Surface Mount (0603). R1-R4
  • 1 × ERJ-3GEY102V 1k Resistor (Fixed) / Thick Film Surface Mount (0603). R5

View all 13 components

  • Updates Coming Soon

    drewrisinger07/12/2015 at 20:43 1 comment

    I just got back from vacation, and am looking at ways to improve this project and its documentation on this page. Currently on the list:

    • Posting pictures of finished boards
    • Adding build instructions
    • Getting feedback on ways to improve the boards to make them easier to use/more useful.
    • I will also post links to the OSH Park site where you can buy your own boards to put together, as well as a digikey BOM (or maybe just Excel BOM) premade with all the parts you'll need to create one of these.

    If you have anything you'd like to see from this project, let me know and I'll try to document it/incorporate it.

  • Boards Built

    drewrisinger06/18/2015 at 02:30 3 comments

    Well, today I finished testing and building both versions of the board (using both the ESP-01 and ESP-03 chipset). I managed to do both with the default tip on a WESD51. Ugh, that tip is so big when I'm trying to do SMD soldering. Needless to say, a new tip is on the way.

    The ESP-01 version works perfectly, no modifications needed. I did make a rookie mistake, however. I was originally trying to blink an LED off of pins 12 and 14. It took me about 15 minutes to realize that those pins aren't available because I'm using an ESP-01, which only breaks out a few pins. To clarify this issue, I'm going to make some changes to the board next time to mark which pins correspond to the ESP-01 variant.

    The ESP-03 version needed a bit of work. I initially saw it boot fine, but it seemed impossible to get it to restart. I found online that supposedly the CH_PD pin needed to be connected to Vcc, which I hadn't done. When I tried doing that, I couldn't get the chip to reset using the method used for the ESP-01. After a little experimentation, I found that I could reset the chip (with the fewest amount of changes and maximum compatibility) by tying together the RESET and CH_PD lines. A little bit of soldering work later, and the board now works perfectly.

    So after the first trial run, my list of changes for future are:

    • Tie together CH_PD and RST on the board.
    • Label which breadboard pins correspond to ESP-01 and ESP-03.
    • Figure out some easier way to space the reset & program buttons. They work, but are hard to push if you have large fingers
    • Do some testing to see if I need the 3.3V/>4.2V switch at all. Would be nice if I could eliminate it, which would shrink the board and drive down cost by almost $1.
    • Switch Resistor/Capacitor pads from wide version to normal version. For initial production I used the wide version, because it's always easier to go bigger than to shrink (see my DrDAC project for proof). But this makes it harder to get the SMDs on straight, and they'll look nicer if all aligned.

    Random last thought: If you're tinning SMD pads, ONLY TIN 1/2. Otherwise you'll end up with too much solder on, and then you can't melt both pads, and then the package ends up at a funky angle vertically, and not flat to the board. So just tin one.

    I'll post pictures later...

  • Layout v1.5 Complete

    drewrisinger05/26/2015 at 03:53 0 comments

    Well, after fixing the ground plane issue, I decided to make major revisions to the layout and labeling of my board, creating a higher-quality, more useful board in the process.

    First, an obligatory changelog:

    • Remove ground plane under antenna
      • This was previously addressed in my last post. But here it's actually complete!
    • Change size of board to 1.0"W by 1.6"L.
      • This was to accommodate the full length of the ESP-01 board, which would previously just out over the edge of the board. I decided that this would add robustness for a marginal loss of size and cost (the cost is an extra $0.30 per board at OSH Park).
    • Change to layout of components.
      • This was partly in response to the changed board size, but also just to make it easier to solder and visualize the path of everything on the board. Additionally, this meant fewer vias, and a cleaner look overall, with more open space.
      • This also allowed more space for...
    • Mounting Holes. For number 2 standard sized US screws (0.090" hole).
      • I think this will allow my board to be more useful in a variety of different projects, and allow for permanent standalone installations.
    • Label switches with their function, and S3 with the direction for each input voltage level
    • Labels for ESP-01 Headers
    • Clearer Logo Graphics.
      • Cause as much as I love pixel art, I love for my work to be at a higher quality even more.

    Read more »

  • Oops... Ground plane problems

    drewrisinger05/23/2015 at 22:58 0 comments

    Well, I just realized today that the ground plane of my board extends under the antenna of both the ESP-01 & ESP-03 that my board is targeting.

    As someone with RF experience will tell you (which includes myself, believe it or not considering this dumb mistake), a ground plane will reflect the RF energy from the antenna (see the Wikipedia article on ground planes). Which is great if you're trying to receive the signal. If you're trying to transmit the signal, it won't be able to go through the ground plane, which can wreak havoc when you don't know where your receiving WiFi antenna is.

    So, I'm currently in the process of redesigning the board to counter this problem. Since I needed to make this change, I decided to fix some of my other qualms I had about the board (such as spacing of pin headers, layout, grouping switches, etc), and make the layout more uniform. I'm also planning on adding mounting holes, since I'm looking at expanding the size of the board to accommodate the full length of the ESP-01 board (on the previous version, it would overhang the edge of the board, which could possibly leave it unprotected depending on the situation.

    I'm also adding labels to make the operation of the board more transparent.

  • Board Rev 1.0

    drewrisinger05/23/2015 at 03:20 0 comments

    So the boards have been sent out to OSH Park for manufacturing (as of 2am last night/this morning). Current size is around 1.36"L x 1"W, which might be able to be shrunk a little more in future revisions.

    Read more »

View all 5 project logs

  • 1
    Step 1

    This will be updated/created when I get the boards back from OSH Park.

View all instructions

Enjoy this project?

Share

Discussions

warhawk-avg wrote 03/01/2019 at 05:45 point

Nice!!!!
Ordered 10 boards using your gerbers from JLCPCB for $5....can't wait to get em in
Great job and great design!

  Are you sure? yes | no

jmcservv wrote 07/02/2016 at 20:45 point

Do you think u do version 2 ? , i need a breakout board for esp03 ,, shall i use vers 1.5? 

  Are you sure? yes | no

jmcservv wrote 07/02/2016 at 20:45 point

Do you think u do version 2 ? , i need a breakout board for esp03 ,, shall i use vers 1.5? 

  Are you sure? yes | no

Arthur Maroulier wrote 08/23/2015 at 17:20 point

Hi, any news on this project? 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates