ESP-12E \ ESP-12F Adapter PCB for Breadboard

This page contains set of ESP-12E \ ESP-12F adapter PCB design files. Presented PCB allows to plug ESP-12E(F) module into breadboard, making your design tests more convenient. Solution is created under KiCad 5.0.2 environment. Source KiCad project and Gerber files are available on GitHub:

[ ESP-12-E(F) Breadboard Adapter PCB ]


Gerber files can be downloaded from this site as well: [ ESP-12E(F) Adapter PCB: Gerbers ]
KiCad source project files are also available here: [ ESP12-E(F) Adapter PCB: KiCad Project Files ]

ESP-12E connectivity schema

ESP module needs to be powered up by 3.3V rail. Also there is a need to make sure 3.3V rail can provide sufficient amount of current (otherwise ESP module will be constantly rebooting). In order to use this module the following connection schema can be assembled:

Schema above represents the way how ESP module should be connected in order to execute application. In case of application needs to be flashed into ESP chip - the corresponding GPIO 0 pin needs to be pulled down to ground:

C1 100nF capacitor is responsible to keep RST line stable. In case of SW1 button click - C1 will be discharged and RST line will be pulled to ground, which will cause ESP chip to reboot. Set of 5K resistors is presented here to create corresponding ESP GPIOs pull-up\pull-down configuration. All necessary details about different pins configuration modes you can find on ESP-12E\F module documentation:
[ PDF: ESP-12E Specification ]
[ PDF: ESP-12F Specification ]

ESP-12E application building, flashing and executing. Workflow details with ESP manual reset option.

Presented PCB design does not offers auto-reset ESP feature. Hence, before each flash\run application step, chip reset needs to be performed manually. Flashing shell scripts below allow to make manual reset step between build cycles. The first shell script sample will erase ESP memory. Memory clean-up is an optional step - it can be triggered before actual application flashing into ESP chip:

# Please update parameters below in accordance with your TTY\Pip\Python\EspSDK configuration
PORT=/dev/serial/esp8266
PYTHON=/usr/bin/python2.7
ESP_TOOL=~/.local/bin/esptool.py
FW_BIN_DIR=~/esp8266-dev-kits/esp-native-sdk/bin

if [ ! -c $PORT ]; then
  echo "ERROR: No USB tty device found"
  exit 1
else
  echo "INFO: Using USB tty device: $PORT"
fi

echo
echo "INFO: Erasing Flash Memory... "

$PYTHON $ESP_TOOL --chip esp8266 --port $PORT --baud 115200 --before no_reset --after no_reset erase_flash

if [ $? -eq "0" ]; then
  echo "INFO: Done Erasing. Please reset your ESP module before the next step."
else
  echo "ERROR: Unable to complete \"Erase Flash Memory\" step"
  exit 1
fi

And the following shell script will flash actual application (please note to update parameters PORT, PYTHON, ESP_TOOL, FW_BIN_DIR based on your specific SDK configuration - as described at ESP introduction page here):

# Please update parameters below in accordance with your TTY\Pip\Python\EspSDK configuration
PORT=/dev/serial/esp8266
PYTHON=/usr/bin/python2.7
ESP_TOOL=~/.local/bin/esptool.py
FW_BIN_DIR=~/esp8266-dev-kits/esp-native-sdk/bin

if [ ! -c $PORT ]; then
  echo "ERROR: No USB tty device found"
  exit 1
else
  echo "INFO: Using USB tty device: $PORT"
fi

echo
echo -n "INFO: Flashing Firware... "

$PYTHON $ESP_TOOL --chip esp8266 --port $PORT --baud 115200 --before no_reset --after no_reset write_flash --flash_freq 20m --flash_mode dio --flash_size detect --verify 0x000000 "$FW_BIN_DIR/eagle.flash.bin" 0x010000 "$FW_BIN_DIR/eagle.irom0text.bin" 0x3FB000 "$FW_BIN_DIR/blank.bin" 0x3FC000 "$FW_BIN_DIR/esp_init_data_default_v08.bin" 0x3FE000 "$FW_BIN_DIR/blank.bin"

if [ $? -eq "0" ]; then
  echo "INFO: Done Flashing. Please pull-up GPIO0 pin and reset your ESP module to run the application."
else
  echo "ERROR: Unable to complete \"Flash Memory\" step"
  exit 1
fi

All of these steps can be configured as corresponding Eclipse build targets:

Below is the full build\flash sequence presented. It can be used for ESP12-E(F) modules with manual reset option:

•   A Build ESP application using ESP SDK tools. Output binaries should be automatically placed to: [PATH TO SDK]/bin/ folder
•   B Pull-down GPIO 0 to GND
•   C (optional) ESP chip manual reset
•   D (optional) Trigger 'image_erase' Makefile target in order to erase ESP memory before actual application flash
•   E ESP chip manual reset
•   F Trigger 'image_flash' Makefile target in order to flash actual ESP application
•   G Pull-up GPIO 0 to 3.3V
•   H ESP chip manual reset - It will start the application