A Development Board for the ESP8266-03

A Wifi platform for $3... who wouldn't want to play with it?


For the last few weeks we have been seeing a lot of awesome projects built around ESP8266 Wifi modules:

esp8266 modules These modules come in different shapes and colours and can be purchased from the internet for 3 dollars only.
They are therefore cheap enough to enable many Internet of Things applications like monitoring your home temperature and activity all year round (if you ever need to do that).
And at this price, you're actually better off directly soldering the complete board on your existing PCB rather than integrating each of its components, as it would result in a higher board cost (for less than 10k platforms produced) and possible RF related problems.

The ESP8266 modules come with a pre-loaded firmware that will accept some commands through their UART interface (connect to wifi, open udp socket, send data to this IP...). Moreover, since Espressif recently released their SDK you can now load your own custom programs using the existing bootloader. To launch this bootloader you just have to connect some IOs to GND in a specific order.

However, anyone wanting to develop a project involving dozens of Wifi nodes has to start from somewhere, eg make a prototype of their future platform. That is why I developed this development board, so the prototyping stage is as simple as possible.
As you can see in the picture below the dev board breaks out all the ESP8266-03 IOs, includes a 3.3V LDO, a USB to UART converter, some logic and a button to automatically start the bootloader.

esp8266 dev board pinout
With the included breadboard solder free prototyping is therefore made possible!
You'll notice that there aren't any through hole components, so you may put double sided tape on the board's back if you need to stick it somewhere. Have a look at the extremely simple schematics:

esp8266 dev board schematics
The LDO can provide up to 1A which is more than enough for the ESP8266 that supposedly needs around 230mA max.

Let's talk about the "bootloader logic". The exact sequence to launch the esp8266 in bootloader mode is to connect CH_PD to GND, connect GPIO0 to GND and finally release CH_PD to 3.3V while GPIO0 is still low.
The SW1 switch is directly connected to CH_PD with a pull-up to 3.3V. When it is not pressed no current flows through the P-Mosfet Q1 and the Q2 N-Mosfet gate is at 0v because of C2 leakage current. This is why the ESP8266 will normally boot when connecting your USB cable.
When pressing SW1 current will flow through Q1 and will therefore charge C2. As Q2's gate is high level (i'm over simplifying here) current will flow through Q2 and GPIO0 will be tied to GND. When releasing SW1 CH_PD will then go back to 3.3V but GPIO0 will stay low for a few ms while C2 discharges (also because of its leakage current). Rebounds aren't a problem as this sequence will just repeat. In short: press the button, the ESP8266 jumps to the bootloader.

The FT230X is a (genuine... aha) USB to UART adapter. CBUS0->3 can be programmed as GPIOs or indicators using the dedicated FTDI application. If you populate R8 with a 0 ohm resistor you could actually have it start the bootloader jumping procedure.

Finally, there are 1k resistors on all the ESP8266-03 pins. They are meant to protect users from making short circuit mistakes and might enable 5v inputs using the esp8266 internal protection diodes (do it at your own risk).

I felt lucky when designing this board and directly launched in production a small batch of 20 units that you can purchase on tindie while they are still available. If not, back orders are enabled! I wish I could offer you a cheaper price but assembly costs are a bit expensive when you order such a small quantity.

You'll find awesome information/resources on esp8266.com and you are also welcome to meet its great community in #esp8266 on freenode.

In the mean time here are all the resources you need to replicate this project (CERN licensed): kicad solution & BoM & lib

As this board was made in a hurry, I apologize for the BoM!


1. On Friday, November 28 2014, 13:11 by Mitek

Hello, good pcb but can you add limpkins_lib.lib to kicad.rar ?


2. On Friday, November 28 2014, 13:45 by Jean-Philippe Rey

Thanks for this post. The ESP8266 surely is going to be widely deployed in IoT projects! That is a good idea to offer such a development board.
May I recommend people to use the Docklight terminal instead of Realterm, as it can store preconfigured commands, which is a VERY useful feature when communicating with a modem (or at least with AT commands)

3. On Friday, November 28 2014, 18:30 by limpkin

@Mitek : done!

4. On Friday, November 28 2014, 22:34 by Ty

Well its gone from $3 to $30 so what good is that to the IoT- Clown

5. On Saturday, November 29 2014, 00:07 by limpkin

@Ty : this is a development board that contains components that you will never use anymore once you deploy your final product. You can guess that my primary objective was to keep costs down when producing this board :).

6. On Saturday, November 29 2014, 16:10 by bermerlin

Is it powered from the USB port? Where is VCC coming from in the schematics?

7. On Saturday, November 29 2014, 16:20 by limpkin

@bermerlin : it is!

8. On Saturday, November 29 2014, 18:37 by John

Do you plan to build more of these. I think $30.00 is a very good deal

9. On Sunday, November 30 2014, 20:49 by limpkin

@John : Yes! the new batch should be ready in the middle of december...

10. On Friday, December 5 2014, 15:35 by John

What is the easiest way to have this wifi module connect to any password protected wireless router? i.e. use it as a wifi temperature sensor, we probably will not have a keyboard or a screen with it in order to minimize the BOM. We can't hard code the password and SSD in it since everybody's password is different. Any suggestion? Thanks!

11. On Friday, December 5 2014, 19:05 by limpkin

@John : use a USB OTG cable with my board to send the password?

12. On Sunday, December 7 2014, 11:10 by up

There is no gpio18 on the esp-03 module. It's gpio16.

13. On Sunday, December 7 2014, 11:26 by limpkin

@up : damn unreadable internet pictures... thanks for the info!

14. On Tuesday, December 9 2014, 14:15 by Kevin

Thanks for your post, looking forward to having my dev board delivered. A stupid question though, how does my ESP8266 physically connect to the dev board without soldering?


15. On Wednesday, December 10 2014, 07:12 by limpkin

@Kevin : why do you mean by __your__ ESP8266? The dev board already includes a ESP8266-03

16. On Monday, December 22 2014, 15:33 by Frank

nice board can you give me an advice what a kind of mosfet's (Q1 and Q2) you are use?

17. On Friday, April 17 2015, 22:57 by Sundar

How do I use the GPIOs 12 - 16?
I am using the frankenstein firmware and have got the gpio command there.
I am able to turn off/on GPIOs 0 and 2. I can't seem to make the other GPIOs toggle.

Not sure if frankenstein has issues in operating with those GPIOs.
Any help would be much appreciated.

18. On Friday, April 17 2015, 23:36 by Sundar

My bad. I did not configure GPIO12 - 16 as FUNC_GPIO before using them.
Once their functionality is set as GPIO I can toggle those GPIOs too!

19. On Wednesday, May 27 2015, 07:40 by JP


what would be the simplest way to Reset the board (without switching to bootloading mode).
Can I bring one the pins to Gnd or something like that?


20. On Friday, May 29 2015, 15:54 by limpkin

@JP : Hi! I'd recommend unplugging/replugging the usb cable.

21. On Tuesday, July 28 2015, 09:57 by Vlad

One question if you replace the ft230 with ft231 could you use the DTR line to cause the board to enter in programming mode ?

22. On Tuesday, July 28 2015, 15:11 by limpkin

@Vlad : Wikipedia seems to suggest that this signal is enabled when the terminal is opened. You could therefore use that trick to enter programming mode but wouldn't be able to read debug comms without restarting the platform...

They posted on the same topic

Trackback URL : https://www.limpkin.fr/index.php?trackback/198

This post's comments feed