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:
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.
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:
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. And don’t worry… all the boards passed the functional test shown below (video made for my assembler):
You’ll find awesome information/resources on esp8266.com and you are also welcome to meet its great community in #esp8266 on freenode.
As this board was made in a hurry, I apologize for the BoM!