If you do not know what the ESP8266 is... oh boy. It is a cheap WIFI Uart module (google it).
I have been playing around with the ESP8266 for a few days now. While doing my testing I realized that most of the time my problems are faulty wiring. Yeah I know, noob right. Well what can I say, I am a noob. Anyhow it is frustrating trying to debug software problems while still having hardware issues.
This week while reading on the web found a service that can manufacture a PCB for $5 per square inch for 3 boards and it is made in the US. I am not in continental US but close enough. Also it says the part will be sent back in 12 days (more or less). The service is not important, the important is that my mind ran very quickly.
Would I be able to do a 1x1 inch pcb to interface my ESP8266 delicate 3.3V signals to my strong 5V Arduino ?..... CHALLENGE ACCEPTED!
After a few Eagle Cad iterations (about 3 or 4 in 2/3 days) I came up with a simple board that is suppose to be able to do that. BUYA! It shall be called "WifIco".
Ok all this sounds very quickly and it's because it has been. I didn't even mounted a breadboard prototype before ordering. This one goes all or nothing. For a while I have been wanted to do a pcb using smd components and this sounded like a good chance for it. And very important keeping the design on the $5 mark (there is not that much money to spare here you know).
- Power input of 5V
- RX and TX signals 5V friendly
- 3.3V regulated output
- Breadboard friendly pin out
- Space at the bottom for a mini usb port in case the device is firmware programmed and need a power input from a cell phone charger or something. Wanted a micro usb but I think I have salvaged a mini usb port someplace around
- GPIO0 and GPIO2 exposed (not 5V friendly, be careful)
- Connector to plug in the ESP8266 directly to the board.
On the bottom side there are two resistors that should be solder shut to pull RST and CHPD to high. They are just put there in case I needed to use the board for firmware upgrade or needed them. From the schematic capacitor values do not mean nothing. Should check on 3.3V regulator circuit guide lines for actual values. If input voltage is clean you may skip them ( but don't tell anybody I said that).
This is how WifIco will looks like (at least from the images from the OSHPark web site):
My eagle design files are here. All is on Public Domain licensing if anybody wonder. I do not need mention nor credit for nothing you do with this.
This may or may not work, in a few weeks I will know! If you don't ever build it or at least try it you'll never now.
I received an email from the manufacturing service that says, the board was sent to factory on Nov 10 and should be back from factory on Nov 20. After that I guess mailed back to me (+5 more days). My guess is that in best case scenario I will be posting on results back somewhere during December (I hope). Still I am exited about the success of this project and hope you are too.
Update 2 (Nov20):
I received a new email that says, board was received from factory and was shipped to me. This occurred on nov 19, 2014. Today is the 20th. Normally this things take anything from 2 days to 7 days to get here. As soon as I have it with me, the plan is to do a continuity test on the contacts and solder the parts for full testing.
Update 3 (December)
The board were shipped to me and received. I did my best soldering the components to the board. I made big errors on the silk screen. But important connections seems to be ok.
I soldered the components to the board as best as I could. and this how it looks like.
I am sending signals from an Arduino to the ESP8266 board and it seems to be receiving them ok. However it is not consistent when receiving communication from the ESP8266 back to the Arduino. My guess is faulty soldering on one of the transistors, but have not tested.
My Errors (for now):
1. Error in silk screen ( Vin is Vout, GND is not ground, TX is RX... )
2. Solder pads should be bigger to allow hand soldering correctly. Specially on Tantalum capacitors, they cover the entire pad so soldering is pain.
There is the issue that I should have tested the design before ordering the pcb but that is part of the adventure. It is a risk I had to take and do not recommend but do not regret.
Possible fixes I would do to this.
1. Fix Silk Sreen
2. Bigger solder pads
3. Change bottom usb connector to be micro usb.
3. Add a mounting hole if space available.
4. Do similar board for the ESP8266-03 board.
5. Add level shifting to digital IOs to make them 5v tolerant also.
6. Add smd switch in the bottom for firmware update mode.
There is so much to do with the board without actually making it bigger. I love adding features but is hard to do in so limited space.