Introduction: Development Board for ESP8266-ESP01
ESP01 is the smallest available package for the popular Espressif ESP8266 WiFi System on a Chip. It is often used to provide WiFi connectivity to other Arduino boards, but is quite capable in its own right. Its small form factor makes it especially handy if space is at a premium.
The ESP01 is somewhat finicky to work with in developing new circuits. The pins are in a 2x4 header format, so it can't be plugged into a standard breadboard. Four GPIO pins are exposed, but three have dual function. If GPIO0 is grounded at power on, the chip goes into the programming mode. GPIO1 is TX for the serial line, while GPIO3 is RX. Only GPIO2 is always available.
Unless the circuit only needs only one pin, pins have to be switched between programming and run modes. It's easy to misconnect a jumper cable and, as I've found to my chagrin, connecting your 8266 to anything other than 3.3V will fry it.
This Instructable shows how to make a development board for the ESP8266-ESP01 package. All the pictures show my prototype, but an actual PCB can easily be made from the Fritzing sketch.
The goal for the board was to have a complete package, so that whatever circuit is being developed won't need any additional power supply. It can be powered via 12V (CUI VXO78-1000) or USB (AMS1117-3.3V), selected by a switch. Assuming only one of the two power cables is connected, this switch can also be used as an on-off switch for the whole board.
Serial to USB is provided by the FTDI FT232RL board. To make the package more compact and less snaggable, I mounted the FTDI on a daughterboard to be parallel to the main PCB. It can be mounted vertically to simplify the work.
Three SPDT micro switches connect GPIO0, GPIO1 and GPIO3 either to the output header or respectively ground, FTDI RX and FTDI TX.
12V and 5V output headers are provided to power any circuit, wired in parallel to the board. They are not affected by the voltage selector switch. Board also provides 3.3V power output as well as 3.3V 15mA positive output header in case the circuit being developed needs a low power current for any digital logic.
Most of the parts are widely available, the links are where I got mine. These are not affiliate links, they are here just for your convenience. You will need:
ESP8266-ESP01: https://www.amazon.com/gp/product/B07H3G81TW $11.99 for 4 pcs
CUI Inc VXO7803-1000, 6V-36V to 3.3V, 1A: https://www.digikey.com/en/products/detail/cui-inc... $2.80 plus 10% tariff for US customers
AMS1117-3.3V: https://www.amazon.com/gp/product/B01HXU1NQY $5.99 for 10 pcs
Power supply note: power supplies that plug into a 1x3 header have three possible output pin configurations. Different 3.3V power supplies can be used, provided their output pins match one of the supplies on this list.
headers : https://www.amazon.com/gp/product/B07VNXL5BD $8.69 for 40 pcs each 40x1 male and female headers
spdt micro switches: https://www.amazon.com/gp/product/B07BD1SPYG $8.99 for 100 pcs
FTDI FT232RL: https://www.amazon.com/gp/product/B07XF2SLQ1 $9.88 for 4pcs
10K ohm resistor
220 ohm resistor
two wire terminals
70x50mm double sided PCB or 16x24 perfboard
Optional: 1x6 90degree header and 4x6 perfboard to mount the FTDI board horizontally
Step 1: Fritzing Sketch
I used Fritzing to design the PCB. The circuit is electronically straightforward, but routing was reasonably challenging, especially since I wanted to fit it on a 16x24 perfboard. You will need a double sided PCB if you decide to make one.
The sketch uses some private parts that I either couldn't find in default bins or online or didn't quite like the way they looked. They can all be found in my Fritzing parts repository: https://github.com/imageguy/Fritzing_parts
Step 2: Assembling the Board
If you make a PCB, the assembly is straightforward. To assemble the project on a perfboard, I used insulated wrap wire for longer leads, since there are a lot of places where the leads on the top and bottom layer cross and I wanted to avoid any short circuits.
The ESP8266, FTDI and both power supplies are plugged into female headers (2x4, 1x6, 1x3 and 1x3)
I glued a piece of thin foam as an insulator below the place for the FTDI board to insulate it from the board. While mounting the serial board on a daughterboard is somewhat of a pain, I found it a worthwhile investment - the board is flat, nothing sticks out that can be snagged or bent.
5V input terminal is connected to a USB connector, while 12V cable is connected to a barrel connector. You should only plug in one of those at the time.
If you will always use the same input voltage, you can just omit the unnecessary header and corresponding output wire terminal. The selector switch is then not really needed, but it might come useful as an on-off switch.
Note that the board uses a common ground i.e., all the ground pins on input and output are connected.
Step 3: Using the Board
Video shows the board driving a simple low power circuit with four switches. The board is powered via the USB cable. USB cable is connected to the FTDI serial to USB board, but the selector switches are flipped towards the output header. A simple blink Arduino sketch turns on each pin 0-3 and then turns them off.
If I make another version of the board, I'll make a bigger board to make the wiring easier. A bigger board will also accommodate bigger switches - micro switches are finicky to use.
You might elect to use an USB connector instead of attaching an USB cable to a wire terminal.
Participated in the