This project is submitted for

Description

The ESP-07 and ESP-12 (as all other modules with the ESP8266) are quite powerful wifi modules. There is now also the possibility to program them via the Arduino IDE, which makes you get an wifi enabled Arduino like thing for only 3$! but the bare Module are not as handy as a Arduino. This project will fixed that (at least for me). During the Project I want to desing a PCB to mount these wifi modules on to get easy acces to all IOs. Further on the PCB will provide power supply and programming tools.

Details

Introduction / Motivation

My experience with the ESP modules started with the ESP-01 module. First only with the simple AT-Commands over the serial interface. Later, when it was available, I started to use the Arduino IDE for ESP8266. For the ESP-01 I had developed an small #ESP-01 Breakout Board.

The board was on homebrew PCB and only uses the ESP-01. So the PCB and soldering was not good nor professional looking this way, but it works. But the IOs of the ESP-01 were quite limited. So I came up to design I new PCB for the "bigger" modules (they use all the same chip).

Some advantages of the modules with a custom PCB :

easy and ready to use

as simple as an Arduino, but:- faster CPU- wifi!- more memory

not much more expensive

Features

(I only writing here about the newer rev2 - rev1 was similar but in some aspects different. It has also fewer features)

Based on my experiments with my ESP-01 breakout board this board has the following features:

User LEDs: RX, TX, Power and GPIO2 LEdis available on the boardRX, TX, and Power LEDs kan be en/disabled via a Jumper to save power

Jumper to connect IO16 and reset (need for deepsleep?!)

New with rev 2.2

optional compatibility to the NodeMCU boards

mini OR micro USB

polarity of power jack changed. now the centre pin is positive

nice three row pin headers for direct servo connection

now also FTDI-pinheader possible to connect external USB-Sertial board

Power supply

I wanted to make a very flexible power supply. Beside there different power sources, you can assemble two different regulator settings. As power source the USB-Power, an external DC-Voltage or a lipo battery can be used.

When connecting the Device via USB to a PC USB-Power can be used. You can also connect normal power to the Device via the USB connector.

For the lipo Battery there is some charge and protection circuit prepared on the PCB. For charging a MCP73831 is used. As lipo Protection a used a DW01-P. In rev2 there is now also a load sharing circuit (source) available. The battery must me connected to 100mil pin header on the PCB.

The third way to Power this device is the 2,1 mm power jack. The center is positive. (There is is mistake on Revision 2.1 or earlier: The Center Pin is negativ!!!) This is the same Jack used in most Arduinos. Beside the Power Jack there is alternative a 100mil pin header.

The power source is selected automatically via schottky diodes.

For the main voltage regulator there are two options:1. Standard LDO (AMS1117-3.3 easy to use totally common regulator datasheet)2. Switch mode regulator (LM3671MF-3.3 much more efficient datasheet)

There are SMD jumper onboard to select one of them. Additional there is another small LDO. It can be used optional to power only the USB to serial converter. But the USB to serial converter can be also powerd from the main voltage regulator.

Adjusting the battery charging current

To set or adjust the charging current to different batteries you must select an suitable value for R8. The equation for the current is (according to the data sheet):The units are kOhms for R8 and mA for the calculated current. [MCP73831/2 data sheet p. 15]

Case

While the first revision has no case, only screw holes to mount the PCB somewhere (and these screw holes were to small) . I decided to make a case for the second revision. First I was thinking about a off the shelf case like this. But This was to small and I could not find one with is big enough but not to big. On the other hand most cases are non transparent and you will hide all your work. So I came up with the "Sick of Beige Cases" . This is nothing more than two transparent acrylic sheets screwed on both sides of your PCB. So I designed nice custom acrylic sheets for my modules....

Project Logs

This project is quite old now. And at least for me it is some kind of finished now. I do have have enough board for myself. At least if I do not give away to much boards boards in the future. And they are working fine. I did made some small changes after the last revision (rev2.2). I think the biggest issue was a wrong pin-mapping on the UART header. I decided now to publish the (maybe final) version including eagle files under CC BY-NC-SA. So you can now, if needed, make adjustments yourself. Please post some pictures if you do so.

Here are some renderings of the rev2.3 boards:

I will not order this revision for myself now. So if you use the files please consider that they are "untested". You can find the files in the bitbucket repository.

I did finalize rev2.2. Because I'm nearly out of boards. I think I will also order this board soon. Main improvements over rev2.0: - header for external serial adapter - power rails - optional compatible to the node-mcu boards - mini or micro USB

As soon as I ordered the boards you will also find the gerber files in the bitbucket. This time I will try some Chinese manufacturer outside of dirtypcbs. An the board will be green (like in the render).

As I did mentioned today I did made a mistake. The Centre pin of the power jack is negative. So the power Jack of boards of revision 2.1 or earlier (there is no completed newer revision yet) is not compatible with the power Jack used on the Arduino Uno. The documentation was also wrong on this. I did change the details section and added it to the errata of rev2 and rev2.1. A wrong power supply do not destroy the board because there are reverse polarity protection diodes.

So with this I fix (I hop all) issues of rev2.0 . I also added support for micro USB. So an micro OR mini USB connector can be used now. Not both at the same tme, because they are mounted at the same place.

You can fin the Gerber files in the Bitbucked repository. I will not order rev2.1 board fore myself yet. First I do have enough of rev2.0 and I will add other stuff before I do order a new revision.

Today I soldered the first revision board with battery management. it works and now I can use this for of grid operation. This board is also soldered with the switching regulator. This is much more efficient so less battery power get wasted.

On the last picture you can also see the stack up of the case quite good.

I did not thought about licensing so far. But, as I also added in the repository, the license is now BY-NC-ND 3.0. I will maybe change this to a more open license in the future (specially for old revisions).

So far there are no eagle files public available. But you can find the gerber files. At least the gerber files of the latest revision are ok. I used the same for manufacturing.

If you want to reuse this project or parts of it and need eagle files for that please contact me again.

I love your project! It's not just well thought-through and flexible but also beautiful.

I've been working with the ESP modules for the past couple of months and soldering their 2mm pads seems to be my limit. How do you solder all the small parts like the micro usb connector to your board?

This is where youtube is super helpful. Watch a bunch of videos and practice on some scrap boards and SMD components. For the most part, the key is a lot of flux, use more solder than you think you need, and then use copper braid to take off the excess.

Thanks!As Jarrett also said there are a lot of videos on Youtube (I would recommend Dave Jones's one - channel: eevblog). With some practice and flux it not difficult. For boards like this it works with a classical soldering iron or hot air/ solder paste. I use normally the hot air station because it is much faster and you can easily solder even samller parts.

Hi!, how do you manage to power the ESP only with USB? Doing some testing on my bench when I power the ESP-12 with 5v directly from my PC usb port (using a 3.3 regulator), when I try to connect to a wifi network it drains around 200mA (that is normal according to the datasheet) and my PC fuses cut the power since it cannot handle that much.

I had no problems with powering it via USB yet. Although I did no longtime test with powering it from an PC. But to my experience 200mA is OK for at least some USB-ports.Most times I do power it from a lipo battery (charge/protection circuit is built in) or an external Power supply. On my board there is a additional power Jack to power the board from an external source.

Did you add some capacitors to your setting to buffer the supply voltage a little bit?

Well I do not have all parts (I soldered most for the prototypes). But for a version without battery support and the LDO as main voltage regulator, I do have all parts except the ESP module. I am on vacation till Monday, so my next reply will be after Monday.

my boards arrivwd today. They look beautiful. The missing track is easy to fix and I've already done so. Just waiting on the ch340g chips and crystals and I'll be ready to go. Thanks for your great design work.

totally overlooked the external antenna connector - good :) I've made a more reduced version yesterday, but was a bit overwhelmed when I saw that there is an http://esptool.py way to program it, an arduino way and a nodemcu way - I want to check if they work fine with each other. My board features the ESP-01 and ESP-12 footprint, because I want to use both kinds - and no on board serial, just an ftdi header. I want to recheck all that before I order 10 boards. So far any breakout board with an antenna I've seen has no ground/copper under the antenna or even takes the antenna outside the design.