{"id":12948,"date":"2017-01-09T19:28:45","date_gmt":"2017-01-10T00:28:45","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=12948"},"modified":"2023-04-11T22:14:32","modified_gmt":"2023-04-12T02:14:32","slug":"easyesp-1-rapid-prototyping-development-board-esp8266","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/easyesp-1-rapid-prototyping-development-board-esp8266\/","title":{"rendered":"EasyESP-1: A rapid prototyping and development board for ESP8266"},"content":{"rendered":"<p><strong>EasyESP-1<\/strong> is a rapid prototyping development board for the low-cost, WiFi-enabled ESP8266 microcontroller. With an onboard USB-to-Serial converter pre-installed, EasyESP-1 does not require\u00a0any additional hardware to download your application firmware to the ESP8266 chip. The ESP module used in this development board is ESP-12E. All the I\/O pins are broken out to 0.1\u201d female headers for easy access, as well as to standard Grove connectors for connecting Grove sensors and other compatible modules. The 180-point breadboard further facilitates experimenting and testing of external circuits. You can buy EasyESP-1 from our <strong><a href=\"https:\/\/www.tindie.com\/stores\/rajbex\/\" target=\"_blank\" rel=\"noopener noreferrer\">Tindie Store<\/a><\/strong>. Non US buyers can also get it from <strong><a href=\"https:\/\/www.elecrow.com\/cde82664e.html\" target=\"_blank\" rel=\"noopener noreferrer\">Elecrow<\/a><\/strong>.<\/p>\n<div id=\"attachment_12951\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12951\" class=\"size-full wp-image-12951\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP1.jpg\" alt=\"EasyESP-1 development board\" width=\"800\" height=\"714\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP1.jpg 800w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP1-580x518.jpg 580w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><p id=\"caption-attachment-12951\" class=\"wp-caption-text\"><em><strong>Fig. 1: EasyESP-1 development board<\/strong><\/em><\/p><\/div>\n<h3><strong>List of features<\/strong><\/h3>\n<ul>\n<li>Easy access to all GPIO pin through female headers and Grove connectors<\/li>\n<li>On-board USB-UART chip for easy programming and debugging<\/li>\n<li>180-point breadboard for experimenting with test circuits<\/li>\n<li>On-board 3.3V (800 mA) regulated power supply<\/li>\n<li>Two tact switches for user inputs, and one output LED<\/li>\n<li>Slide switch to enable\/disable auto Wake Up feature during Sleep mode<\/li>\n<\/ul>\n<div id=\"attachment_12950\" style=\"width: 2123px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP_Features.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12950\" class=\"size-full wp-image-12950\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP_Features.jpg\" alt=\"EasyESP-1 features\" width=\"2113\" height=\"1740\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP_Features.jpg 2113w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP_Features-580x478.jpg 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/EasyESP_Features-1024x843.jpg 1024w\" sizes=\"auto, (max-width: 2113px) 100vw, 2113px\" \/><\/a><p id=\"caption-attachment-12950\" class=\"wp-caption-text\"><em><strong>Fig. 2: EasyESP-1 features<\/strong><\/em><\/p><\/div>\n<p><em><strong>Power supply<\/strong><\/em><\/p>\n<p>The ESP8266 module operates at 3.3V power supply. The EasyESP-1 derives the 3.3V power supply for the ESP12E module from the USB port or an external 5V DC input using the SPX3819 low-noise LDO voltage regulator. The maximum current capacity of the LDO is 500mA. There is a power select (PS) slide switch (see <strong>Fig. 2<\/strong>) to switch between the USB and the external 5V power supply options. During programming, the EasyESP board is connected to the PC\u2019s USB port, so it is convenient to use the USB power supply.\u00a0The PS switch must be in the USB position in order to use\u00a0the USB power source. If you need to use an external power supply for any reason, you will need a regulated +5V DC with minimum current rating of 500mA (1A recommended) and with a 2.1mm male output power plug. The external power supply plugs into the input DC barrel jack next to the PS switch. Note that the PS switch must slide to the EXT position in this case.<\/p>\n<p><strong>Note:<\/strong> Remember, the external DC input should be a regulated +5V.<\/p>\n<p><em><strong>CP2102 USB-UART bridge<\/strong><\/em><\/p>\n<p>EasyESP-1 uses Silicon Labs\u2019 CP2102 USB to serial bridge device on board for uploading user applications to the ESP module. It also allows the users to use a serial terminal program (such as serial monitor on Arduino IDE) on a computer for debugging. Drivers for this USB-UART bridge device can be downloaded from <a href=\"https:\/\/www.silabs.com\/products\/mcu\/Pages\/USBtoUARTBridgeVCPDrivers.aspx\"><strong>Silicon Labs website<\/strong><\/a>.<\/p>\n<p><em><strong>I\/O peripherals<\/strong><\/em><\/p>\n<p>The I\/O pins of ESP12E module are broken out to 0.1\u2033 pitch female headers (J3), as well as to\u00a0multiple grove connectors. The ESP12E I\/O pins that are available on the board are RST, D0-D8, Tx, Rx, and analog input pin AN.\u00a0The built-in ADC of ESP8266 has 10-bit resolution and can accept an input voltage ranging from 0 to 1.0V. In order to expand the range of input analog voltage to 3.3V, EasyESP-1 incorporates a simple 2-resistor voltage divider network as shown in <strong>Fig. 3<\/strong>.<\/p>\n<div id=\"attachment_12949\" style=\"width: 602px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/ADC_circuit.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12949\" class=\"size-full wp-image-12949\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/ADC_circuit.jpg\" alt=\"A resistor divider network increases the range of ADC input to 3.3V.\" width=\"592\" height=\"440\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/ADC_circuit.jpg 592w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/ADC_circuit-580x431.jpg 580w\" sizes=\"auto, (max-width: 592px) 100vw, 592px\" \/><\/a><p id=\"caption-attachment-12949\" class=\"wp-caption-text\"><em><strong>Fig. 3: A resistor divider network increases the range of ADC input to 3.3V<\/strong><\/em><\/p><\/div>\n<p>The two user tact switches (<strong>SW1<\/strong> and <strong>SW2<\/strong>) and one user LED (<strong>LD1<\/strong>) are also accessible through female headers (<strong>J3<\/strong>). The tact switches output are pulled up \u201cHigh\u201d during default conditions. When they are pressed, the corresponding <strong>J3<\/strong> pins (<strong>SW1<\/strong> and <strong>SW2<\/strong>) turn \u201cLow\u201d. Similarly, <strong>LD1<\/strong> is configured as active high, which means when the <strong>LD1<\/strong> pin of <strong>J3<\/strong> is connected to logic \u201cHigh\u201d, the <strong>LD1<\/strong> LED turns on. All ESP12E I\/O pins, user tact switches and LED, and power supply pins are arranged in a 2\u00d712 header (<strong>J3<\/strong>). The <strong>AN<\/strong> pin is also accessible through <strong>U5<\/strong> grove connector. In ESP8266, I2C is implemented by bit-banging, and as such, any two I\/O pins can be configured as I2C bus. However, to make it easier for the users, the EasyESP-1 board provides three I2C grove connectors (I2C1, I2C2, and I2C3) that are hard-wired to <strong>D1<\/strong> (SCK) and <strong>D2<\/strong> (SDA) pins. A close-up picture of just the I\/O section of EasyESP-1 is\u00a0given\u00a0in <strong>Fig. 4<\/strong>.<\/p>\n<div id=\"attachment_12952\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/IOsection.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12952\" class=\"size-full wp-image-12952\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/IOsection.jpg\" alt=\"A 2\u00d712 female header (J3) and grove connectors provide access to the ESP12E I\/O pins and the user switches and LED.\" width=\"590\" height=\"1045\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/IOsection.jpg 590w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/IOsection-367x650.jpg 367w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/IOsection-578x1024.jpg 578w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-12952\" class=\"wp-caption-text\"><em><strong>Fig. 4: A 2\u00d712 female header (J3) and grove connectors provide access to the ESP12E I\/O pins and the user switches and LED<\/strong><\/em><\/p><\/div>\n<p>It should be noted that EasyESP-1 uses the same I\/O indexing as used by <a href=\"https:\/\/nodemcu.readthedocs.io\/en\/master\/en\/modules\/gpio\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>NodeMCU<\/strong><\/a>. This does not match with internal GPIO indexing. For example, pin D1 is actually mapped to internal GPIO5. If you use\u00a0Arduino IDE for programming EasyESP-1, you can access this pin in both\u00a0ways. For instance, digitalWrite(D1, LOW) and\u00a0digitalWrite(5, LOW)\u00a0will\u00a0both do the same thing, writes out logic \u2018low\u2019 to D1 pin. Following diagram describes the pin mapping between EasyESP-1 Dx and ESP8266 internal GPIOs. Note that <strong>TX<\/strong> and <strong>RX<\/strong> pins can also be called\u00a0for normal I\/O operation by addressing\u00a0them as\u00a0<strong>D10<\/strong> (GPIO1) and<strong> D9<\/strong> (GPIO3), respectively.<\/p>\n<div id=\"attachment_12953\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/pin_mapping.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12953\" class=\"size-full wp-image-12953\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/pin_mapping.jpg\" alt=\"EasyESP-1 I\/O pin indexing vs ESP8266 internal GPIOs\" width=\"590\" height=\"389\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/pin_mapping.jpg 590w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/pin_mapping-580x382.jpg 580w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-12953\" class=\"wp-caption-text\"><em><strong>EasyESP-1 I\/O pin indexing vs ESP8266 internal GPIOs<\/strong><\/em><\/p><\/div>\n<p><em><strong>Wake Enable switch<\/strong><\/em><\/p>\n<p>For low-power applications, ESP8266 can be put into deep sleep mode during idle conditions.\u00a0In order for the ESP8266 to automatically wake up from sleep mode after a certain interval, the <em>XPD\/D0<\/em> pin (which is also GPIO16) must be tied to the ESP8266\u2019s reset line. In EasyESP-1 board, this can be easily done by sliding the <strong>Wake Enable<\/strong> switch to <strong>EN<\/strong> position.<\/p>\n<p><strong><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/rapid-ESP8266_V1rev5.zip\">Download EasyESP-1 Eagle CAD files<\/a><\/strong><\/p>\n<h3><a href=\"https:\/\/www.tindie.com\/products\/rajbex\/easyesp-1-prototyping-board\/\" target=\"_blank\" rel=\"noopener noreferrer\">Buy EasyESP-1 from our Tindie Store<\/a><\/h3>\n<h3><strong><a href=\"https:\/\/www.elecrow.com\/cde82664e.html\" target=\"_blank\" rel=\"noopener noreferrer\">International buyers visit here<\/a><\/strong><\/h3>\n<div id=\"attachment_12962\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/Setup6.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-12962\" class=\"size-full wp-image-12962\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/Setup6.jpg\" alt=\"ESP8266 experimenting made easy with EasyESp-1\" width=\"800\" height=\"631\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/Setup6.jpg 800w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2017\/01\/Setup6-580x457.jpg 580w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><p id=\"caption-attachment-12962\" class=\"wp-caption-text\"><em><strong>ESP8266 experimenting made easy with EasyESP-1<\/strong><\/em><\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>EasyESP-1 is a rapid prototyping development board for the low-cost, WiFi-enabled ESP8266 microcontroller. With an onboard USB-to-Serial converter pre-installed, EasyESP-1 does not require\u00a0any additional hardware to download your application firmware to the ESP8266 chip. The ESP module used in this development board is ESP-12E. All the I\/O pins are broken out to 0.1\u201d female headers for easy access, as well as to standard Grove connectors for connecting Grove sensors and other compatible modules. The 180-point breadboard further facilitates experimenting and testing of external circuits. You can buy EasyESP-1 from our Tindie Store. Non US buyers can also get it from<\/p>\n","protected":false},"author":1,"featured_media":12959,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1603,1044,1464,437,1467],"tags":[1559,1602],"class_list":["post-12948","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp8266-tutorials","category-esp8266","category-featured","category-products","category-projects","tag-esp8266-development-board","tag-iot-development-board"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/12948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=12948"}],"version-history":[{"count":9,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/12948\/revisions"}],"predecessor-version":[{"id":15135,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/12948\/revisions\/15135"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/12959"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=12948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=12948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=12948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}